aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG1085
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG6359
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG3778
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcomp_README21
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ21
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG806
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcompext_README15
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG404
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG216
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxproxy_README14
-rw-r--r--doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ27
-rw-r--r--doc/_attic_/XOrg69_documentation_files/BUILD324
-rw-r--r--doc/_attic_/XOrg69_documentation_files/ChangeLog.X.org20262
-rw-r--r--doc/_attic_/XOrg69_documentation_files/LABEL265
-rw-r--r--doc/_attic_/XOrg69_documentation_files/README180
-rw-r--r--doc/_attic_/XOrg69_documentation_files/README.crypto64
-rw-r--r--doc/_attic_/XOrg69_documentation_files/RELNOTES1091
-rw-r--r--doc/_attic_/XOrg69_documentation_files/nx-X11_extras_README17
-rw-r--r--doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_COPYRIGHT39
-rw-r--r--doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_README12
-rw-r--r--doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_BuiltInAtoms329
-rw-r--r--doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_CHANGES17
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_CHANGELOG.X.original1088
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_cross.def.X.original33
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_host.def.X.original1023
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_iPAQH3600.cf.X.original112
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sun.cf.X.original50
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sunLib.tmpl.X.original122
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_svr4.cf.X.original24
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_drivers_dri_common_glcontextmodes.c.X.original10
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_main_context.c.X.original103
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_Xpoll.h.in.X.original67
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_extensions_XKBsrv.h.X.original14
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ChkIfEv.c.X.original59
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ConnDis.c.X.original319
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_IfEvent.c.X.original13
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_MaskEvent.c.X.original13
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_OpenDis.c.X.original96
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_PeekIfEv.c.X.original14
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Pending.c.X.original30
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XKBMAlloc.c.X.original84
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlib.h.X.original30
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibAsync.c.X.original41
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibInt.c.X.original1165
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlibint.h.X.original59
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_cmsProp.c.X.original14
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xau_AuRead.c.X.original62
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Glyph.c.X.original547
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Xrender.h.X.original39
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xt_NextEvent.c.X.original42
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_font_fontfile_encparse.c.X.original22
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_xtrans_Xtranssock.c.X.original1133
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2.c.X.original11
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2swap.c.X.original11
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_Imakefile.X.original11
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_xf86glx.c.X.original70
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_Xext_security.c.X.original315
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_dixfonts.c.X.original86
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_pixmap.c.X.original18
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_fb_fbtrap.c.X.original12
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdamage.c.X.original138
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdispatch.c.X.original1036
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdixfonts.c.X.original892
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXevents.c.X.original648
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXextension.c.X.original70
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglxext.c.X.original118
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyph.c.X.original160
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphcurs.c.X.original121
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphstr.h.X.original59
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiexpose.c.X.original116
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiglyph.c.X.original156
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmitrap.c.X.original65
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiwindow.c.X.original53
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicture.c.X.original615
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicturestr.h.X.original42
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXproperty.c.X.original358
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXrender.c.X.original948
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXresource.c.X.original426
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXshm.c.X.original373
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXwindow.c.X.original561
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXxvdisp.c.X.original266
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_include_dixstruct.h.X.original12
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_WaitFor.c.X.original271
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_auth.c.X.original271
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_connection.c.X.original48
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_log.c.X.original136
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_oscolor.c.X.original214
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_utils.c.X.original250
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xdmcp.c.X.original59
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xprintf.c.X.original75
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_panoramiXproto.h.X.original195
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.c.X.original72
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.h.X.original144
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randrproto.h.X.original658
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_registry.h.X.original67
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrcrtc.c.X.original48
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrdispatch.c.X.original15
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrmode.c.X.original39
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrscreen.c.X.original107
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrxinerama.c.X.original72
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_render_renderedge.c.X.original10
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_cursor.c.X.original12
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_select.c.X.original13
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxKillSrv.c.X.original21
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxLoad.c.X.original443
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_xkbDflts.h.X.original24
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_charproc.c.X.original40
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_main.c.X.original42
-rw-r--r--doc/_attic_/nx-X11_vs_XOrg69_patches/randr.NX.diff2704
-rw-r--r--doc/libNX_X11/lcUniConv/8bit_tab_to_h.c535
-rw-r--r--doc/libNX_X11/lcUniConv/README11
-rw-r--r--doc/libNX_X11/lcUniConv/cjk_tab_to_h.c1071
-rw-r--r--doc/libNX_X11/symbols/libNX_X11::symbol-usage_internally.txt9413
-rw-r--r--doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxagent.txt3288
-rw-r--r--doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxcompext.txt2613
-rw-r--r--doc/libNX_X11/symbols/libNX_X11::symbols.txt1263
-rw-r--r--doc/nxagent/README.keystrokes113
-rw-r--r--doc/nxagent/README.keystrokes.debug27
-rw-r--r--doc/nxcomp/DXPC_re-licensed_debug_784565.mbox3769
-rw-r--r--doc/nxcomp/README.on-retroactive-DXPC-license269
-rw-r--r--doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdfbin0 -> 73621 bytes
-rw-r--r--doc/nxcompext/symbols/nxcompext::symbol-usage_internally.txt1089
-rw-r--r--doc/nxcompext/symbols/nxcompext::symbol-usage_nxagent.txt351
-rw-r--r--doc/nxcompext/symbols/nxcompext::symbols.txt102
-rw-r--r--doc/nxproxy/README-VALGRIND39
125 files changed, 79544 insertions, 0 deletions
diff --git a/doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG
new file mode 100644
index 000000000..ffbbe0a61
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nx-X11_CHANGELOG
@@ -0,0 +1,1085 @@
+ChangeLog:
+
+nx-X11-3.5.0-2
+
+- Fixed TR0202420. XKB utility functions wrote out of bounds.
+
+- Upgraded RandR server extension to version 1.2.
+
+nx-X11-3.5.0-1
+
+- Opened the 3.5.0 branch based on nx-X11-3.4.0-4.
+
+- Updated copyright to year 2011.
+
+nx-X11-3.4.0-4
+
+- Fixed TR06H02359. Removed compiler warnings.
+
+nx-X11-3.4.0-3
+
+- Updated copyright to year 2010.
+
+nx-X11-3.4.0-2
+
+- Fixed TR04G02208. Added a path to rgb file.
+
+nx-X11-3.4.0-1
+
+- Opened the 3.4.0 branch based on nx-X11-3.3.0-7.
+
+- Updated copyright to year 2009.
+
+nx-X11-3.3.0-7
+
+- Fixed TR08G02257. The maximum client condition was reached because
+ available fd exhausted. This bug was caused by a function in font
+ library not closing the file before a return on error breaking the
+ flow of normal execution.
+
+- Fixed TR06G02225. The implementation of Xvprintf() has been reviewed
+ to work on more platforms. Previous implementation caused a failure
+ in the build of keyboard map on some platform like Solaris 8 and 9.
+
+nx-X11-3.3.0-6
+
+- Fixed TR03G02198. Reimplemented Xvprintf() in Xserver/os to handle
+ the case in which vsnprintf returned -1.
+
+- Returning from _XSeqSyncFunction() and _XReply() if an I/O error is
+ detected.
+
+nx-X11-3.3.0-5
+
+- Fixed TR01G02163. Signals need to be blocked before the call to
+ fork() in the Popen() utility.
+
+- Fixed TR01G02164. Trapezoid data need to be validated before use.
+ This issue was the same of CVE-2007-2437.
+
+nx-X11-3.3.0-4
+
+- Enabled the code resetting the Xlib buffer if an IO error occured.
+
+nx-X11-3.3.0-3
+
+- Fixed the search path for the XKB base directory.
+
+nx-X11-3.3.0-2
+
+- Fixed TR10F02116. The X11 agent could enter an indefinite wait state
+ if connection to X display is broken and libX11 output buffer is not
+ empty.
+
+nx-X11-3.3.0-1
+
+- Opened the 3.3.0 branch based on nx-X11-3.2.0-2.
+
+nx-X11-3.2.0-2
+
+- Imported patch fixing issues from X.Org security advisory, June
+ 11th, 2008: Multiple vulnerabilities in X server extensions. CVE
+ IDs: CVE-2008-1377, CVE-2008-1379, CVE-2008-2360, CVE-2008-2361,
+ CVE-2008-2362.
+
+nx-X11-3.2.0-1
+
+- Opened the 3.2.0 branch based on nx-X11-3.1.0-6.
+
+nx-X11-3.1.0-6
+
+- Modified Xserver Imakefile to link the Xfixes library.
+
+nx-X11-3.1.0-5
+
+- Disabled the terminate action, just in case the TerminateServer
+ symbol is binded to a non default key sequence.
+
+nx-X11-3.1.0-4
+
+- Imported patch fixing issues from X.Org security advisory, January
+ 17th, 2008: Multiple vulnerabilities in the X server. CVE IDs:
+ CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428
+ CVE-2007-6429 CVE-2008-0006.
+
+nx-X11-3.1.0-3
+
+- Moved a variable definition placed in _mesa_make_current().
+
+nx-X11-3.1.0-2
+
+- Fixed TR10E01924. A crash could occur in _mesa_make_current().
+
+- Initialized after_ret variable in _XcmsGetProperty().
+
+nx-X11-3.1.0-1
+
+- Opened the 3.1.0 branch based on nx-X11-3.0.0-37.
+
+nx-X11-3.0.0-37
+
+- Changed the Xserver Imakefile to link against Xcomposite on the
+ Cygwin platform too.
+
+nx-X11-3.0.0-36
+
+- Fixed TR07E01806. Modified host.def to build GLX code with symbol
+ __GLX_ALIGN64 defined on Solaris platform.
+
+nx-X11-3.0.0-35
+
+- Flush explicitly the NX link before entering the select() in the
+ WaitForReadable() and WaitForWritable() routines.
+
+nx-X11-3.0.0-34
+
+- Changed the agent Imakefile to link to the Xcomposite library.
+
+nx-X11-3.0.0-33
+
+- Fix the NX_TRANS_WAKEUP stuff in WaitForSomething() to not over-
+ ride a valid timeout.
+
+- Check if the requesting client is gone in the XFixes functions
+ sending the cursor events.
+
+nx-X11-3.0.0-32
+
+- Define DDXOSVERRORF and DDXOSFATALERROR symbols on Sun.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+nx-X11-3.0.0-31
+
+- Make SmartScheduleStopTimer() visible outside Xserver/os/utils.c
+ so that it can be called by the agent. Export the declaration in
+ dixstruct.h.
+
+nx-X11-3.0.0-30
+
+- The OsVendorVErrorFFatal flag is set to 1 if the function pointed
+ by OsVendorVErrorFProc is called due to a fatal error.
+
+- Give the possibility to the agent to redirect the standard error
+ during a Popen() or a System() by setting the OsVendorStartRedir-
+ ectErrorFProc and OsVendorEndRedirectErrorFProc function pointers.
+
+nx-X11-3.0.0-29
+
+- Changed the default message printed on a fatal server error. The
+ new message is:
+
+ Error: Aborting session with 'Error text...'.
+
+- Hacked LogVWrite() to force all fatal error messages to have an
+ uppercase initial. Also remove the trailing newline and the full-
+ stop, if present.
+
+nx-X11-3.0.0-28
+
+- Corrected the typos in the ChangeLog.
+
+nx-X11-3.0.0-27
+
+- Fixed the cleanup of the X_RenderCompositeText16 padding bytes.
+
+- More code cleanup in the NX changes to the Xrender library.
+
+- Changed host.def to build the freetype and fontconfig libraries
+ if the agent server is also built. Freetype is built as a shared
+ library: this avoids the link error on 64 bit platforms.
+
+nx-X11-3.0.0-26
+
+- Applied the following security patches, from the X.Org security
+ advisory, April 3rd, 2007 "Multiple vulnerability in X server,
+ libXfont and libX11":
+
+ xorg-xserver-1.2.0-xcmisc.diff
+ xorg-libXfont-1.2.7-bdf-fontdir.diff
+ xorg-libX11-1.1.1-xinitimage.diff
+
+nx-X11-3.0.0-25
+
+- Added the missing *.X.original file for ChkIfEv.c and Xlib.h.
+
+nx-X11-3.0.0-24
+
+- Changed Xrender to clean up the padding bytes in XRenderComposite-
+ Text functions.
+
+- Added function XRenderCleanGlyphs() cleaning the padding bytes in
+ the data section of RenderAddGlyphs requests.
+
+nx-X11-3.0.0-23
+
+- Removed the additional parameter from the call to NXTransFlush()
+ in _XReply().
+
+- Call NXTransExit() on AbortServer() (called by FatalError()) to
+ give the proxy a chance to shut down the NX transport.
+
+nx-X11-3.0.0-22
+
+- Moved the replacement of XCheckIfEvent() ChkIfEv.c with the name
+ XCheckIfEventNoFlush().
+
+nx-X11-3.0.0-21
+
+- Set BUFSIZE to 8192 bytes. While the output buffer size can be
+ configured by setting the XLIBBUFFERSIZE in the environment (see
+ OpenDis.c), this constant is still used when reading from the
+ socket.
+
+nx-X11-3.0.0-20
+
+- If set, the handler pointed by _NXDisplayWriteFunction is called
+ after that more data is written to the display connection.
+
+nx-X11-3.0.0-19
+
+- Added a RejectWellKnownSockets() stub to make possible to compile
+ the agent when the NX transport is disabled.
+
+- Added more useful logs to _XWaitForWritable().
+
+nx-X11-3.0.0-18
+
+- Changed Imakefile of X11 and Xserver in order to build nxcompshad
+ just before the NX agent server.
+
+- Changed Imakefile in Xserver to add NXdamage.o to NXAGENTOBJS.
+
+nx-X11-3.0.0-17
+
+- Changed host.def in order to build Xdamage and Xrandr libraries.
+
+- Changed host.def in order not to build NXWin.
+
+nx-X11-3.0.0-16
+
+- Changed host.def in order to build Xtst as a shared library.
+
+nx-X11-3.0.0-15
+
+- Changes to comply with nxcompshad library.
+
+- Changed configuration to statically build Xtst library.
+
+- Restored parser directory under Xserver/hw/xfree86.
+
+nx-X11-3.0.0-14
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Added file COPYING.
+
+- In nx-X11/programs and nx-X11/programs/Xserver/hw/xfree86, removed
+ files and directories not needed to build servers.
+
+nx-X11-3.0.0-13
+
+- Changes aimed to link servers with static versions of Xdmcp and Xau
+ libraries.
+
+nx-X11-3.0.0-12
+
+- Added references to implented FR in the ChangeLog.
+
+- Removed nx-X11/fonts and nx-X11/doc directories. They are not needed
+ for building the NX components.
+
+nx-X11-3.0.0-11
+
+- Updated the copyright notices to year 2007.
+
+nx-X11-3.0.0-10
+
+- Applied the following security patches:
+
+ x11r6.9.0-cidfonts.diff
+ x11r6.9.0-dbe-render.diff
+ x11r6.9.0-geteuid.diff
+ x11r6.9.0-mitri.diff
+ x11r6.9.0-setuid.diff
+
+nx-X11-3.0.0-9
+
+- Merged the NX changes to X11 with the X11R6.9.0 version of X.org.
+
+nx-X11-3.0.0-8
+
+- Changes to build Xshadow library when building X11.
+
+- Changes to Xserver Imakefile to link Xshadow library.
+
+- Changes to host.def in order to build on old distributions.
+
+nx-X11-3.0.0-7
+
+- Imported changes up to nx-X11-2.1.0-2
+
+- Fixed TR08D01485. Updated rgb file paths validation in order to
+ support Ubuntu distribution.
+
+- Added Xtst to libraries to be linked by nxagent.
+
+- Changed Xpm Imakefile to build a shared library on Solaris.
+
+- Fixed build error on Solaris in xtrans.
+
+- Changed host.def not to build Xnest server.
+
+- Changed Xserver Imakefile to link nxaccess library.
+
+nx-X11-3.0.0-6
+
+- Added the path of nxaccess library to the server link command.
+
+nx-X11-3.0.0-5
+
+- Implemented FR10C01079 and FR10C01080. The merge of NX changes to
+ the X.org code is complete.
+
+- Merged changes in config/cf. The NX-*.def files have been dismissed.
+ Main platform dependent configurations have been moved to host.def.
+
+- Removed *.reference files from config/cf.
+
+- Fixed compilation for Cygwin platform.
+
+nx-X11-3.0.0-4
+
+- Imported all changes up to nx-X11-2.0.0-32.
+
+- Cleaned up lib/zlib directory.
+
+- Added missing file programs/Xserver/os/utils.c.NX.original.
+
+- Updated the copyright notice to year 2006.
+
+- The pointer to the display buffer is reset after an I/O error.
+ This prevents leaving the buffer in an inconsistent state if the
+ error occurs inside _XFlush().
+
+- Removed the modifications to the Xrender library. The cleanup of
+ the padding bytes is now performed by the NX transport.
+
+- NX uses the updated ZLIB from its build tree, so Imake.tmpl will
+ now assume that the platform as ZLIB unless otherwise stated.
+
+- The path of the SecurityPolicy file is searched and validated at
+ runtime.
+
+- Added the _X11TransSocketProxyConnInfo() function to Xtranssock.c
+ It returns the pointer to the XtransConnInfo private, if it is a
+ valid _NXProxyConnInfo structure.
+
+- The above function is used by OpenDis.c to detect if the NX trans-
+ port was requested on the display and avoid spurious error messa-
+ ges in the case of a connection failure.
+
+- Added NXmiwindow.o to the NXAGENTOBJS in the Xserver's Imakefile
+ and imported NXmiwindow.c in nxagent. This allows us to check the
+ pointer to the pOldClip region in miSetShape() before going on
+ freeing it.
+
+- The path of the XKB base directory and of the xkbcomp comand is
+ validated at runtime.
+
+- Also added a check to verify the validity of the rgb file path.
+
+- Added NXresource.o to NXAGENTOBJS in the Imakefile of nxagent. We
+ need this to a assign a resource to the pixmaps and other server
+ objects which need to be enumerated at reconnection. Some objects,
+ being created by the X server and not by the clients, don't pass
+ through the resource assignment process operated by the dix. To
+ ensure that all objects get a resource, we add a resource at the
+ time the object is created and temporarily assign the resource to
+ the server client. If the dix later assigns the resource to a va-
+ lid client, the resource is removed from the server client's list.
+
+- The display block handler registered by the client is called in
+ WaitForReadable() and WaitForWritable() before every select(),
+ not only upon entering the function. The reason is that more
+ data can be possibly produced for the NX link by the proxy it-
+ self and, when setting the flush policy to deferred, the client
+ may not have the chance of flushing the NX link.
+
+- Fixed a bug in XkbUseExtension() that caused Xlib to query the
+ presence of the XKEYBOARD extension multiple times. This partial-
+ ly implents the FR01D01275. The complete implementation required
+ modifications to the X11 agent, implemented in nxagent-2.0.0-33.
+
+- Updated to comply with the new NXTransFlush() interface.
+
+- Both nxwin and nxagent now read the X authority file by using an
+ fopen() instead of the system command 'cat'.
+
+- Removed NXmiwindow.o from the NXAGENTOBJ list. The agent will now
+ use the original miwindow.c.
+
+- Added some additional logs in Xtranssock.c to follow the creation
+ and removal of the X server's Unix listener.
+
+- Avoided the sleep of 5 seconds forced by Xtransutil.c if the dir-
+ ectory where the Unix listener is created is not owned by root.
+ This sleep is not executed on Cygwin (where the X socket can be
+ hardly owned by root) but may delay the startup of the agent if
+ the user chose a different NX_TEMP directory. Furthermore, it is
+ unclear what real benefits such sleeps are intended to bring to
+ the security of the X server. This can be controlled by defining
+ the NX_TRANS_SLEEP directive in Xserver/os/Imakefile.
+
+- Added NXmiexpose.o to the NXAGENTOBJ.
+
+- Ensured that _X11TransSocketCloseConnInfo() now initiates the NX
+ shutdown by calling NXTransClose().
+
+- Corrected a misplaced #else that made SocketUNIXConnect() skip a
+ block if the connection was not to the NX transport.
+
+- Updated to comply with the new NX function prototypes introduced
+ in nxcomp-2.0.0-31.
+
+- Moved the most important Xtranssock.c modifications into separate
+ functions.
+
+- Ensured that the modifications enabling the internal connections
+ to the proxy are compiled only when the TRANS_CLIENT directive is
+ defined.
+
+- Solved a bug that prevented the X11 socket to be deleted at the X
+ server shutdown. This needs further tests.
+
+- Added nxcompext to the link of nxagent, now that the dependency
+ of libX11 from nxcompext is removed.
+
+- Improved the Xtranssock routines to never loop through the array
+ of connection info.
+
+- Added a congestion flag to the connection info structure and a
+ function querying the transport and reporting if a change in the
+ congestion state has occurred. The code is currently not enabled,
+ because instead of polling the transport, we let the proxy notify
+ the changes in congestion state by using the callback. The code
+ can be used in future to extend the library, for example, by add-
+ ing some counters tracking the bandwidth usage of the socket con-
+ nection, so that we can make the congestion notifications work
+ even with a plain X11 connection.
+
+- Profiled the routines in XlibInt.c to reduce the number of calls
+ to the error predicate function provided by the client.
+
+- Fixed the nxcompext build problem that caused make World to fail.
+
+- Added a 'CONF' target to the X11 and Xext Imakefiles so that the
+ configure script is not run if the config.status exists.
+
+- Added the _NXDisplayBlockHandler hook. The function is called by
+ Xlib before blocking. The parameter says if Xlib is going to wait
+ for more input or because it needs to write to the display socket.
+ The client can use the hook to perform any internal operation that
+ may require some time to complete. The user, though, should not
+ try to read or write to the display inside the callback routine.
+
+- Removed the outdated NX_TRANS_PROCESS, NX_TRANS_THREAD and NX_TR-
+ ANS_INCLUDE defines.
+
+- Reverted the lib/Xext Imakefile to the original XF86 version and
+ moved the build of the nxcompext library among the libX11 depend-
+ encies.
+
+- Corrected the lib/X11 Imakefile so that a new build of nxcomp and
+ nxcompext is not attempted if the libraries are up-to-date.
+
+- Removed the unused display buffer and image cleanup functions.
+
+- Reverted the PutImage.c file to the original XF86 version.
+
+- Added the _NXDisplayErrorPredicate function in XlibInt.c. It is
+ actually a pointer to a function called whenever Xlib is going to
+ perform a network operation. If the function returns true, the
+ call will be aborted and Xlib will return the control to the ap-
+ plication. It is up to the application to set the XlibDisplayIO-
+ Error flag after the _NXDisplayErrorPredicate returns true. The
+ function can be used to activate additional checks, besides the
+ normal failures detected by Xlib on the display socket. For exam-
+ ple, the application can set the funciton to verify if an inter-
+ rupt was received or if any other event occurred mandating the
+ end of the session.
+
+- Modified XIfEvent(), XMaskEvent() and XPeekIfEvent() to check the
+ _NXDisplayErrorPredicate function and return immediately if the
+ function returns true.
+
+- Modified _XWaitForReadable() to never enter the loop if the dis-
+ play is broken.
+
+- Corrected a make problem on Windows that caused the nxcomp and
+ nxcompext libraries to be referred with the wrong name, with the
+ result that a new configure and make was attempted at each build
+ attempt.
+
+- Merged all the changes to os, Xext, xkb, dix.
+
+- Changed host.def to build only the agent server.
+
+- Merged the changes to Xtranssock.c
+
+nx-X11-3.0.0-3
+
+- Merged the changes to lib/X11. Restored original PutImage.c and
+ ClDisplay.c files.
+
+nx-X11-3.0.0-2
+
+- Created a directory named 'reference' to keep files that are chan-
+ ged during the development of nx-X11 since the 1.5.0-16 to 2.0.0-32
+ version. These files will be removed as long as the differences are
+ merged to the 3.0.0 version. When all differences are merged, this
+ directory will be removed.
+
+nx-X11-3.0.0-1
+
+- Opened the 3.0.0 branch based on the nx-X11-2.0.0-9. The 3.0.0
+ branch will now support the migration toward the X.org tree. Due
+ to time concerns, the 2.0.0 branch is going to be based on the
+ same nx-X11 as the 1.5.0.
+
+nx-X11-2.0.0-9
+
+- Modified the agent link arguments to explicitly include the NX
+ libraries.
+
+- Disabled the Xinerama extension to avoid further clashes with
+ the redefinition of GC in Xlib.
+
+- Added os/libos.a at the end of the agent link.
+
+nx-X11-2.0.0-8
+
+- Moved the declarations of _NXEnable* and related structures from
+ Xlibint.h to NXlibint.h.
+
+- Added provision for building the agent. This can be controlled by
+ setting NXAgentServer to YES in host.def.
+
+- Setting the NXUpgradeAgentServer variable to YES in the host.def
+ file will make the agent assume that it is being built in the new
+ environment. This variable is normally unset when building in the
+ 1.5.0 tree.
+
+nx-X11-2.0.0-7
+
+- Fixed a problem on AMD64 due to the size of the area pointed by
+ the argument of _X11TransBytesReadable(). BytesReadable_t is long,
+ at least on Linux, while the ioctl() requires a pointer to an int.
+ The original _X11TransBytesReadable() function simply calls the
+ ioctl() by passing the pointer that is provided. NXTransReadable(),
+ instead, was correctly returning the value assuming a pointer to
+ a long, but this crashes some applications, among them xterm. Now
+ NXTransReadable() follows the same schema of the ioctl() call and
+ stores the result assuming a pointer to an int.
+
+- Removed the outdated NX_TRANS_PROCESS and NX_TRANS_THREAD code.
+
+nx-X11-2.0.0-6
+
+- Made xterm work with the NX transport. This required small changes
+ to the Xt toolkit's and the xterm's files to let them use the NX
+ aware select(). This is useful to test the NX transport until the
+ nxagent server is integrated.
+
+- When the transport is gone _X11TransSocketBytesReadable() returns
+ EPIPE. This makes the client become aware of the closure of the
+ connection.
+
+- Added a call to NXTransDestroy() in XCloseDisplay().
+
+- The exit() function in XlibInt.c causes a call to NXTransExit().
+
+- Merged changes to dix/pixmap.c, xkb/xkbDflts.h, mi/Imakefile.
+
+- Removed unneeded changes and files containing patches already in
+ the latest X.org distribution: dix/dispatch.c, fb/fbcompose.c, fb/
+ fbgc.c, xkb/ddxList.c, font/fontfile/dirfile.c, font/fontfile/
+ encparse.c, font/fontfile/fontfile.c, font/FreeType/fttools.c,
+ Xrender/FillRect.c, Xrender/Picture.c.
+
+nx-X11-2.0.0-5
+
+- Changes to the lib/X11/Imakefile to cleanly build the tree. This
+ is obtained by creating a link to the Xcomp library in exports/lib
+ without having to modify the programs' Imakefiles.
+
+- Finished merging the NX changes in the lib/X11 files.
+
+- Merged the CHANGELOG with the one from the 1.5.0 tree.
+
+nx-X11-2.0.0-4
+
+- Merged the NX changes in most Xtrans and lib/X11 files.
+
+nx-X11-2.0.0-3
+
+- Temporarily disabled the use of the MMX extensions in the Xserver's
+ fb code to successfully compile with GCC 4.
+
+nx-X11-2.0.0-2
+
+- Imported the *.NX.reference and *.XF86.reference files that will
+ be needed for the merge. These files are the *.original from the
+ 1.5.0 tree. They will be removed as long as the merge advances.
+
+nx-X11-2.0.0-1
+
+- Created the 2.0.0 branch based on X.org the 6.8.99.16 snapshot.
+
+nx-X11-1.5.0-16
+
+- Added the missing *.XF86.original and *.NX.original files.
+
+nx-X11-1.5.0-15
+
+- Made the nxagent server use select() instead of poll() on Solaris
+ so that it can leverage the new NX transport.
+
+- Moved the NXTransFlush() call to _XReply().
+
+nx-X11-1.5.0-14
+
+- Added the 'synchronous' parameter in the _XWaitForReadable() call
+ to NXTransFlush().
+
+nx-X11-1.5.0-13
+
+- Removed the log entry in XlibInt.c on calling the NXTransFlush().
+
+nx-X11-1.5.0-12
+
+- Changed XlibInt.c and utils.c to call NXTransExit().
+
+nx-X11-1.5.0-11
+
+- Changed XlibInt.c to comply with the new NXTransFlush() interfa-
+ ce introduced in nxcomp-1.5.0-42.
+
+- Cosmetic changes to messages printed for debug.
+
+nx-X11-1.5.0-10
+
+- Ensured that all calls to _XIOError() are followed by a return.
+
+- Put exiting the client program in the case of an I/O error under
+ the control of the _NXContinueOnDisplayError flag. If set, the
+ I/O error routine will simply return, leaving to the application
+ the responsibility of checking the state of the XlibDisplayIOEr-
+ ror flag.
+
+- Added some checks whenever a read or write is performed on the X
+ connection, so that we can exit the I/O loop if the X channel is
+ gone. It is likely that more work will be needed when trying to
+ support XTHREADS enabled connections. This should not be a pro-
+ blem for now, as the default is still to quit the application un-
+ less the _NXContinueOnDisplayError flag is explicitly set.
+
+nx-X11-1.5.0-9
+
+- Removed the references to the cygipc library in NXWin. Now use the
+ cygserver daemon to provide the MIT-SHM extension.
+
+- Fixed an error in the UseCygIPC definition.
+
+- Changed the cygwin.cf file to avoid redefinition of the BuildGlxExt,
+ XWinServer and BuildGlxExt symbols.
+
+nx-X11-1.5.0-8
+
+- Added provision for deferred writes in the NX transport. When en-
+ tering _XWaitForReadable() we must ensure that data is flushed to
+ the proxy link.
+
+- Added the UseCygIPC define to NX-Cygwin.def.
+
+- Updated the NoMachine copyright notice on the modified files.
+
+nx-X11-1.5.0-7
+
+- Added the GLX extension in NX-Sun.def.
+
+- Added some more logs in WaitFor.c.
+
+nx-X11-1.5.0-6
+
+- Modified Xlibint.h and XlibInt.c to remove the _NXFlushSize para-
+ meter. New agents run the NX transport in-process, so we don't get
+ any benefit from increasing the display buffer size.
+
+- Modified NX-Darwin.def to not build the NXDarwin server. Since the
+ 1.4.0 version the NXDarwin server is unsupported and the NX client
+ for the Mac requires that the Apple X server is installed.
+
+- Changed NX-Linux.def to avoid the warning due to "SharedLibGLw"
+ being not defined.
+
+nx-X11-1.5.0-5
+
+- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs
+ and avoid including mfb/libmfb.a.
+
+- Added the GLX extension in NX-Linux.def. This provides unaccelera-
+ ted support in nxagent, with GLX operations translated into core X
+ protocol primitives.
+
+- Fixed x-X11/programs/Xserver/GL/dri/Imakefile to look in ../../hw/
+ /xfree86/os-support/bus for includes.
+
+nx-X11-1.5.0-4
+
+- Avoid calling NXTransSelect() if the transport is gone, so that we
+ don't have to wait until the timeout.
+
+- Added the "-fno-strict-aliasing" option to linux.cf when compiling
+ with a GCC version >= 4. In the words of Stefan Dirsch: "The opt-
+ ion, which is default since gcc 3.1, can result in wrong code when
+ the gcc warnings related to it are ignored. And as there are seve-
+ ral warnings in X11 related to it, it has been disabled for X11
+ from the beginning. This didn't change for gcc4, so it still needs
+ to be used."
+
+- Added more logs in XlibInt.c and utils.c. A warning is printed if
+ the SmartScheduler is initialized.
+
+nx-X11-1.5.0-3
+
+- Started integration of nxcomp with the X libraries. The Xtrans
+ code creates an internal connection to the nxcomp library instead
+ of a child proxy process.
+
+- Changed Xpoll.h and XlibInt.c to replace the standard Select
+ with a version giving NX a chance to check its own descriptors.
+
+- Implemented the NXTransReadVector() and the NXTransWriteVector()
+ functions to replace READV() and WRITEV().
+
+- Implemented memory-to-memory communication with the NX proxy by
+ making use of the NXTransAgent() interface.
+
+nx-X11-1.5.0-2
+
+- We think that the way LoadAuthorization() is working is wrong.
+ It doesn't reset the list of stored authorizations before reading
+ the new cookies. Our take is that if a new auth file is to be
+ read, the only cookies that are to be accepted are those that are
+ in the new file, not those in the file -plus- those that have
+ been in the file in the past. Furthermore, if the list can't be
+ read or it is empty, it should assume that it ignores which co-
+ okies are valid and thus it should disable any access. Your mile-
+ age can vary. A less draconian approach could be to leave the old
+ cookies if the file can't be read and remove them only if the
+ file is empty.
+
+ Adding the cookies without removing the old values for the same
+ protocol has an important implication. If an user shares the co-
+ okie with somebody and later wants to revoke the access to the
+ display, changing the cookie will not work. This is especially
+ important with NX. For security reasons, after reconnecting the
+ session to a different display, it is advisable to generate a
+ new set of cookies, but doing that it is useless with the current
+ code, as the old cookies are going to be still accepted. On the
+ same topic, consider that once an user has got access to the X
+ server, he/she can freely enable host authentication from any
+ host, so the safe behaviour should be to reset the host based
+ authenthication at least at reconnection, and keep as valid only
+ the cookies that are actually in the file. This behaviour would
+ surely break many applications, among them a SSH connection run
+ inside a NX session, as ssh -X reads the cookie for the display
+ only at session startup and does not read the cookies again
+ when the auth file is changed.
+
+ Another bug (or feature, depending on how you want to consider
+ it) is that if the authority file contains entries for different
+ displays (as it is the norm when the authority file is the default
+ .Xauthority in the user's home), the X server will match -any- of
+ the cookies, even cookies that are not for its own display. This
+ means that you have to be careful when passing an authority file
+ to nxagent and maybe keep separate files for letting nxagent find
+ the cookie to be used to connect to the remote display and for
+ letting it find what cookies to accept. If the file is the same,
+ clients will be able to connect to nxagent with both the cookies.
+ This bug obviously affects any X server, also the real X server
+ running on the workstation, so it is common to see nxagent being
+ able to connect to the X server even if no cookie matches the
+ real display.
+
+- Added a check in lib/Xau/AuRead.c to prevent the fread() call to
+ be interrupted by SIGCHLD while reading the auth file. Due to the
+ way the old code worked, this could lead to the server enabling
+ local host access to the display. This problem had been identified
+ in the past. We just found that all the code dealing with reading
+ the auth file was affected. The code calls sigprocmask() to block
+ the signal (though it leaves some other calls unprotected) but the
+ SIGCHLD was not included in the set.
+
+- Added SIGCHLD to the set of signals that are blocked when reading
+ the authorization file.
+
+- As I was at it, I changed the path to the SecurityPolicy file. A
+ few Linux ditributors ship the file in $LIBDIR/xserver, a few only
+ in /etc/X11/xserver, most others in both places. It seems that
+ those who ship in $LIBDIR/xserver do also in /etc/X11 but the op-
+ posite is not true, so I switched to /etc/X11.
+
+nx-X11-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nx-X11-1.4.1-2
+
+- Set parameter UseCygIPC on cygwin conf file in order to force the
+ build of MIT-SHM estension.
+
+- Removed some spurius object file.
+
+nx-X11-1.4.1-1
+
+- Opened the 1.4.1 branch.
+
+nx-X11-1.4.0-8
+
+- Changed DefaultFontPath and DefaultRGBDatabase in
+ NX-Cygwin.def.
+
+nx-X11-1.4.0-7
+
+- Imported dispatch in nxdarwin package, in order to let
+ nxdarwin being able to detect new client connection.
+
+- Changed the Xpm Imakefile to make also .a static library
+ on Solaris. To link nxviewer and nxdestkop staticaly.
+
+nx-X11-1.4.0-6
+
+- XInput extension enabled on MacOSX.
+
+- Added some missing backup files of the original XFree86
+ package.
+
+nx-X11-1.4.0-5
+
+- Changed the mi Imakefile in order to let xfree86 servers use
+ the normal mi extension initialization for the XInput exten-
+ sion.
+
+- XInput extension enabled on Solaris.
+
+nx-X11-1.4.0-4
+
+- Removed the RejectWellKnownSocket for the cygwin and
+ MacOSX environments that doesn't use the Xtransport library.
+
+nx-X11-1.4.0-3
+
+- Changed the implementation of the reject method in the
+ Xtransport library, now close any new incoming connection
+ immediately without reading or writing to it.
+
+nx-X11-1.4.0-2
+
+- Implemented a reject method in the Xtransport library,
+ this function accept and close every connection attempt,
+ on the specified listening socket.
+
+- Added the new function RejectWellKnownSocket to the os
+ connection code.
+ This function use the new transport reject function on
+ all listening socket.
+
+nx-X11-1.4.0-1
+
+- Opened the 1.4.0 branch.
+
+- Removed forgotten nxagent-1.3.2-20 directory.
+
+nx-X11-1.3.2-9
+
+- Prevents NX Darwin server going through the reset. On Darwin
+ we found that the it is not possible to get the correct key-
+ board layout unless it is set on the local machine, before
+ the NX session is started, by using xmodmap. As we set the
+ keyboard locally, we must prevent the X server to reset, or
+ we would loose any local configuration.
+
+nx-X11-1.3.2-8
+
+- Removed action associated to keysym XK_Terminate_Server. This
+ could cause agent to be terminated when pressing shift + back-
+ space if using the default US keyboard mapping.
+
+- Disabled the remaining debug logs in lib/X11/PutImage.c
+
+nx-X11-1.3.2-7
+
+- Fixed the wrong programs/Xserver/Imakefile in 1.3.2-6 package.
+
+nx-X11-1.3.2-6
+
+- Changed the define from NX_CLEAN_IN_PLACE to NX_CLEAN_INPLACE.
+ Definition of symbol is now placed in the Imakefile.
+
+- The new _NXEnableCleanInplace Xlib variable does control which
+ algorithm is used to clean the images. Setting NX_IMAGEINPLACE
+ in the environment will activate the in-place cleanup.
+
+- The default value of _NXEnableCleanInplace is -1. Leaving it to
+ a value <= 0 disables use of CleanInplace.
+
+nx-X11-1.3.2-5
+
+- Patch in config/cf/sun.cf. Fix for libfontconfig compilation
+ during gmake Everything on Solaris.
+
+- Patch in lib/X11/Imakefile. Fix for nxcomp compilation during
+ gmake World on Solaris.
+
+nx-X11-1.3.2-4
+
+- Image cleanup is now performed by using NXCleanInPlaceImage from
+ nxcompext. This function saves a buffer copy by cleaning the
+ padding bytes in the same buffer provided by the caller. Note that
+ to prevent memory violations in the case the image was allocated
+ in a static buffer, the function will temporarily redefine the
+ SIGSEGV handler. The former handler is restored before returning
+ to the caller. This can potentially affect some multithreaded
+ clients. Is to be decided if the function is safe enough to be
+ included in the production release.
+
+nx-X11-1.3.2-3
+
+- More debug logs in programs/Xserver/xkb/ddxLoad.c.
+
+nx-X11-1.3.2-2
+
+- Added NXmiwindow.o to NXAGENTOBJS in programs/Xserver/Imakefile.
+ File was not linked into the resulting nxagent. This solves the
+ problem of missing repaints in CDE and other Xt applications.
+
+nx-X11-1.3.2-1
+
+- Added some debug logs in programs/Xserver/xkb/ddxLoad.c. Function
+ XkbDDXCompileKeymapByNames is called by OpenOffice to read the
+ keyboard configuration whenever a drop-down menu is accessed. It
+ seem to always fail with the following error:
+
+ The XKEYBOARD keymap compiler (xkbcomp) reports:
+ > Error: Can't find file "unknown" for geometry include
+ > Exiting
+ > Abandoning geometry file "default"
+
+- Opened the 1.3.2 development branch.
+
+nx-X11-1.3.1-12
+
+- Fixed a problem in xkb/ddxLoad.c on Solaris where Pclose was
+ always returning an error code despite the fact that command
+ was executed properly.
+
+nx-X11-1.3.1-11
+
+- Changed default GCC flags from '-O2 -fno-strength-reduce' to
+ -O3. No platform where NX is targeted is currently using a
+ GCC 2.x affected by the -fno-strength-reduce bug. Note also
+ that nxcomp is already compiled with -O3 since 1.1.1, so it
+ can be considered safe.
+
+nx-X11-1.3.1-10
+
+- Imported an updated fbcompose.c file from XFree86-4.3.99.902.
+ This fixes "uninitialized value" problems reported by Valgrind.
+
+- Fixed further buffer overflows by updating the following file
+ with recent versions coming from the XFree86-4.3.99.902 tree.
+
+ nx-X11/lib/font/fontfile/dirfile.c
+ nx-X11/lib/font/fontfile/encparse.c
+ nx-X11/lib/font/fontfile/fontfile.c
+
+- Fixed a possible buffer overflow in lib/font/FreeType/fttools.c.
+ Verified that the change is already in the XFree86 4.4.0 CVS.
+
+nx-X11-1.3.1-9
+
+- Fixed Xserver/Imakefile which was still referencing NXpixmap.o.
+
+nx-X11-1.3.1-8
+
+- Imported an updated fbgc.c from XFree86-4.3.99.902. This fixes
+ some minor problems reported by Valgrind.
+
+- A major problem was reported by Valgrind about reading after
+ the block allocated in fbCreatePixmap from AllocatePixmap. The
+ file pixmap.c has been modified so that 4 bytes are added to
+ the pixmap buffer at any new allocation. This quick hack should
+ solve the problem for both nxagent and the NXWin server. Further
+ investigation is planned for the next release.
+
+- Fixed Xtranssock.c to compile on Solaris where struct sigaction
+ doesn't have the sa_restorer member.
+
+nx-X11-1.3.1-5
+
+- Renamed the NX-sun.def configuration file to NX-Sun.def.
+
+- Renamed the non-standard NX_iPAQ_XServer and NX_Zaurus_XServer
+ symbols to NXiPAQXServer and NXZaurusXServer.
+
+- Added the missing sun.cf.XF86.original file in config/cf.
+
+- Added the missing empty file host.def.XF86.original in the
+ same directory.
+
+- Added initialization of sa.sa_mask when setting sigaction()
+ for SIGCHLD. The problem was reported by Valgrind running
+ nxagent.
+
+- Removed an unused block of code from WaitFor.c. The code had
+ been commented out in previous versions.
+
+- Removed the non-standard colon at the end of version in this
+ CHANGELOG.
+
+- Removed the spurious spaces in this CHANGELOG.
+
+nx-X11-1.3.1-4
+
+- Added a little workaround to the top Imakefile intended to
+ hide the makedepend warnings about non portable whitespaces
+ in sources.
+
+nx-X11-1.3.1-3
+
+- Fixed compilation problem with nxagent-1.3.1-13.
+
+nx-X11-1.3.1-2
+
+- Changes in NX-sun.def configuration file for Solaris to allow
+ compilation of the XKB extension.
+
+nx-X11-1.3.1-1
+
+- Opened the 1.3.1 development branch.
+
+nx-X11-1.3.0-6
+
+- Original output buffer size in stock XFree86 is 2048. We try
+ to reduce context switches and help stream compression by
+ increasing the maximum size of the buffer 8192. _NXFlushSize
+ determines when the display buffer is actually flushed. It is
+ set by default to 4096 but agents should set it to 0 if they
+ want to disable early flush.
+
+- Added the _NXLostSequenceFunction function pointer to let NX
+ agents suppress the error message and modify the default Xlib
+ behaviour when out-of-order sequence numbers are received.
diff --git a/doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG
new file mode 100644
index 000000000..0a82773f4
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nx-X11_programs_Xserver_hw_nxagent_CHANGELOG
@@ -0,0 +1,6359 @@
+ChangeLog:
+
+nxagent-3.5.0-9
+
+- Fixed an issue with cursor position set in XTest extension.
+
+nxagent-3.5.0-8
+
+- Fixed TR01J02646. Performance issues with cairo version 1.12.
+
+- Fixed TR01J02667. Changes to mouse sensitivity couldn't be forwarded
+ to NX client host although -noignore was among extra options.
+
+- Fixed TR05J02705. Agent ignore WarpPointer requests.
+
+- Fixed TR05J02706. Suspended sessions could not be recovered using
+ a client form a different version.
+
+- Fixed TR05J02703. Agent failed because of missing checks on source
+ drawables in the render code.
+
+nxagent-3.5.0-7
+
+- Fixed TR10I02622. Corrected function searching for icon file.
+
+nxagent-3.5.0-6
+
+- Fixed TR10I02621. Avoided explicit call to XMapWindow() at recon-
+ nection stage.
+
+- Fixed TR10I02620. Solved error in default visual set up.
+
+- Fixed TR10H02390. Get the actual remote key code for CapsLock and
+ NumLock.
+
+nxagent-3.5.0-5
+
+- The NX agent failed to resize its own window to fit the desktop size
+ in shadow sessions. TR07I02561 is now fixed also in shadow mode.
+
+nxagent-3.5.0-4
+
+- Fixed TR07I02530. Solved a buffer overflow occurring when the '-fp'
+ option value exceeds 1024 characters.
+
+- Extended list of the available screen geometries.
+
+nxagent-3.5.0-3
+
+- Fixed TR08I02572. Upgraded RandR extension to version 1.2.
+
+- Fixed TR07I02561. The NX agent failed to resize its own window to
+ fit the desktop size.
+
+nxagent-3.5.0-2
+
+- Fixed TR0502449. Initialized font server path even if font server
+ connection fails.
+
+nxagent-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxagent-3.4.0-16.
+
+- Updated copyright to year 2009.
+
+- Fixed TR0302438. Added a check in function exporting property in
+ order to handle the case looking up an atom name returns a null
+ pointer.
+
+nxagent-3.4.0-16
+
+- Updated copyright to year 2011.
+
+nxagent-3.4.0-15
+
+- Added reference to fixed TR11H02405.
+
+nxagent-3.4.0-14
+
+- Reverted fix for TR03H02335 implemented in nxagent-3.4.0-6. The
+ emulation of right click by Control key + left click introduces
+ issues for some applications changing the reaction to the left click
+ depending on the state of Control key. Issue reported in TR03H02335
+ affects Apple laptop touchpads having a single button acting as
+ left button: on those devices the right button can be emulated by
+ a double-fingered tap (using two fingertips simultaneously).
+
+nxagent-3.4.0-13
+
+- Fixed TR12H02414. Exported property must be split if ChangeProperty
+ request exceeds 262140 bytes.
+
+- Reset AllScreens option at reconnection time if full screen mode
+ have to be automatically turned off.
+
+nxagent-3.4.0-12
+
+- If one of the two full screen modes is active ('one screen' or 'all
+ screens') both keystrokes Ctrl-Alt-F and Ctrl-Alt-Shift-F change the
+ mode back to 'windowed'.
+
+- Fixed TR11H02405. XRenderFreePicture is called only for pictures
+ that were actually created on the X server side.
+
+- Ctrl+Alt+f switch fullscreen to all monitors, while Ctrl+Alt+Shift+f
+ does it to one monitor only.
+
+- If the fullscreen option is enabled at the startup, session starts
+ in the fullscreen mode on all monitors.
+
+- Added a call to XReparentWindow in the nxagentSwitchAllScreens().
+
+- Corrected focus and grab when switching to fullscreen on
+ all monitors.
+
+- Removed a compile warning e deleted some unused variables.
+
+- Removed nxagentPointerAndKeyboardGrabbed variable.
+
+- Use the override redirect attribute to switch to fullscreen to all
+ monitors instead of send _NET_WM_FULLSCREEN_MONITORS hint to the WM.
+
+- Added nxagentMinimizeFromFullScreen(), nxagentMaximizeToFullScreen()
+ and nxagentCreateIconWindow().
+
+- Removed check on EnterNotify to grab the keyboard in fullscreen
+ mode not only if mode is 'NotifyNormal'.
+
+nxagent-3.4.0-11
+
+- Corrected switching between viewport mode and resize mode.
+
+- Fixed TR04H02340. Keycode is correctly translated in shadow sessions
+ also if the remote X display is using evdev.
+
+nxagent-3.4.0-10
+
+- Handled XGrabKeyboard() return value.
+
+- Fixed TR10D01512. NumLock and CapsLock keys are now synchronized
+ between local and remote.
+
+nxagent-3.4.0-9
+
+- Fixed TR06H02362. No icon was swown in the task bar.
+
+- Fixed keyboard grab in fullscreen mode.
+
+- Fixed compiler warnings.
+
+nxagent-3.4.0-8
+
+- Grab the keyboard in fullscreen mode on EnterNotify only if mode is
+ 'NotifyNormal'.
+
+- Yield control in the dispatch loop in case we stop the smart sche-
+ duler timer while waiting for a reply from the remote display.
+
+nxagent-3.4.0-7
+
+- Fixed TR08D01478. The communication with the compiz window manager
+ by means of the _NET_WM_PING property was not handled properly.
+
+- Fixed a type mismatch in XKB events on 64 bit platforms.
+
+- Moved grab/ungrab keyboard from focus in/out event to enter/leave
+ notify event.
+
+- Removed nxagentIconWindow because it's not longer used.
+
+nxagent-3.4.0-6
+
+- Fixed TR09F02102. Problem was with pointer buttons map.
+
+- Fixed TR02H02327. Some KeyRelease events was discarded.
+
+- Fixed up Num and Caps locks.
+
+- Fixed TR03H02335. Emulated right mouse button for Mac clients.
+
+- Added utilities to print info about internal and remote windows.
+
+- Fixed TR01F01995. Solved a picture resource leak by destroying remo-
+ te pictures only when their reference counter returns to zero.
+
+- Fixed TR04H02337. Errors occurred because pictures with no drawable
+ were handled badly.
+
+- Implemented handling nxagent's private for gradient pictures and so-
+ lid fill picture.
+
+- Fixed BadMatch condition check in function ProcRenderComposite.
+
+- Fixed nxagentComposite() to handle situations with source picture
+ drawable pointing to NULL.
+
+- Implemented render acceleration for requests: CreateSolidFill,
+ CreateLinearGradient, CreateRadialGradient, CreateConicalGradient.
+
+- Fixed TR03G02196. Dialogs are shown to the fore when the NX session
+ is in fullscreen mode.
+
+- Changed mechanism to switch to fullscreen mode. Now the override
+ redirect attribute is no longer used and _NET_WM_STATE_FULLSCREEN
+ hint is sent to the WM.
+
+nxagent-3.4.0-5
+
+- Updated copyright to year 2010.
+
+nxagent-3.4.0-4
+
+- Fixed TR07F02090. Now XDMCP sessions start without problems.
+
+- Fixed TR08G02259. Corrected window border granularity of rootless
+ session at reconnection on 64 bit platforms.
+
+- Fixed TR11G02290. Forcing null timeout with queued events only if
+ display connection is up. This prevents the flood of session log.
+
+- Fixed TR10G02287. Now QueryTree's loop is aborted in case of failure
+ and session log isn't filled anymore with repeated warning messages.
+
+- Fixed TR01G02154. Corrected window placement when switching between
+ fullscreen and windowed mode.
+
+- Fixed TR09G02276. Now the agent does not receive unwanted characters
+ while interacting with the local window manager.
+
+- Implemented FR02G02174. Added ability to do large screen pans in
+ viewport mode through key combination Ctrl+Alt+Shift+Arrow.
+
+- Corrected parsing of the 'client' option when the client OS is Mac.
+
+nxagent-3.4.0-3
+
+- Fixed TR09G02271. The array containing the font name fields was not
+ correctly initialized for non-standard font names.
+
+nxagent-3.4.0-2
+
+- Updated copyright to year 2009.
+
+nxagent-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxagent-3.3.0-19.
+
+- Changed the printed version number.
+
+nxagent-3.3.0-19
+
+- Fixed TR09G02266. A proper error message is printed in the session
+ log if the shadowing initialization fails because of a mismatch in
+ the visual class.
+
+- Added a workaround for X servers that doesn't return 1 among the
+ available depths.
+
+nxagent-3.3.0-18
+
+- The area to restore from the backing store is limited by the screen
+ size instead of the visible screen.
+
+nxagent-3.3.0-17
+
+- Fixed TR12F02150. The agent could crash when copying text from VNC
+ viewer. Fixed by aborting the procedure in case the retrieved pro-
+ perty has not a valid format.
+
+nxagent-3.3.0-16
+
+- Fixed TR07G02247. Don't try to call XSetWindowColormap() if the
+ window has no colormap, e.g. if its class is InputOnly.
+
+nxagent-3.3.0-15
+
+- Fixed TR04G02210. Region is cut to the visible screen before re-
+ storing areas from the backing store.
+
+- Fixed TR07G02246. Box is shrinked if bounds can't stay in a short
+ signed integer.
+
+nxagent-3.3.0-14
+
+- Fixed TR03G02206. waitpid() call was missing for the "Fonts replace-
+ ment" dialog type.
+
+- Fixed TR03G02195. Added a properties structure compatible with 32
+ and 64 bit platform types.
+
+nxagent-3.3.0-13
+
+- Handle the window unmap immediately. Don't add it to the configure
+ queue.
+
+nxagent-3.3.0-12
+
+- Fixed TR03G02200. Timestamps could be in the future in KeyRelease
+ events sent to the X clients.
+
+- Added debug logging of input devices state Logging can be enabled
+ or disabled via the Ctrl+Alt+x shortcut. State info is dumped every
+ 5 seconds.
+
+- Added Ctrl+Alt+y shortcut used to deactivate input devices grab for
+ debug purposes.
+
+nxagent-3.3.0-11
+
+- Changed the message logging the screen size changes, in order to
+ show the fullscreen state.
+
+- Handle the window unmapping in the nxagentConfigureWindow queue.
+
+nxagent-3.3.0-10
+
+- Fixed TR12F02146. Compare the drawable and the bitmap data before
+ realizing the image update, in order to delay the data clean up that
+ caused the memcmp() failure.
+
+- Fixed TR01G02156. Reduce the exposing area by subtracting the ex-
+ posed region.
+
+- Fixed a compile warning in Drawable.c.
+
+- Added detailed logs in the nxagentSynchronizeRegion() function if
+ the data memory allocation fails.
+
+nxagent-3.3.0-9
+
+- Added /usr/NX/share/base to alternate font paths. This would fix
+ TR11F02130 if fonts fixed and cursor are installed there.
+
+- Changed Keyboard initialization and reset. This change should fix
+ TR11F02129, TR11F02131, TR11F02132.
+
+nxagent-3.3.0-8
+
+- Fixed TR12F02144. Image bits of render glyphs are copied before they
+ are cleaned. This will avoid a memory corruption.
+
+- Fixed TR12F02145. When dispatching a MotionNotify event, check if a
+ top-level window has been entered before trying to show the pulldown
+ dialog.
+
+nxagent-3.3.0-7
+
+- Added debug code for pointer input.
+
+nxagent-3.3.0-6
+
+- Fixed compile warnings.
+
+nxagent-3.3.0-5
+
+- Disabled verbose logging in Rootless.c.
+
+nxagent-3.3.0-4
+
+- Fix the XKB map load in the case of 64 bit server.
+
+nxagent-3.3.0-3
+
+- Fixed TR10F02119. If the remote X display is using evdev keyboard
+ then copy maps from remote.
+
+- Upgraded VERSION to 3.3.0.
+
+nxagent-3.3.0-2
+
+- Fixed TR10F02115. Painting errors occurred when screen areas beyond
+ the current viewport became viewable in the NX Client for Windows.
+
+- Using a new struct type nxagentWMHints to avoid type mismatch on
+ 64 bit platforms.
+
+- Added debug utilities for pointer input.
+
+nxagent-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxagent-3.2.0-12.
+
+nxagent-3.2.0-12
+
+- Ignore 'resize' option at reconnection if viewport mode is on.
+
+- Fixed TR08E01814. Added shadow keymap initialization in order to
+ enable nxcompshad to translate keycodes across different layouts.
+
+nxagent-3.2.0-11
+
+- Fixed TR08F02098. Function splitting font names has to be instruct-
+ ed to handle the right number of fields.
+
+nxagent-3.2.0-10
+
+- Extended fix for TR07F02091 to include font names having zero in
+ fields RESOLUTION_X and RESOLUTION_Y.
+
+nxagent-3.2.0-9
+
+- Fixed TR07F02091. Scalable fonts were not correctly listed among
+ available fonts.
+
+- Fixed TR06F02080. Use the corrupted area extents as maximum size of
+ the image data.
+
+nxagent-3.2.0-8
+
+- Fixed TR07F02082. The agent server could be unable to init core
+ keyboard on 64 bit systems.
+
+nxagent-3.2.0-7
+
+- Imported patch fixing issues from X.Org security advisory, June
+ 11th, 2008: Multiple vulnerabilities in X server extensions. CVE
+ IDs: CVE-2008-1377, CVE-2008-1379, CVE-2008-2360, CVE-2008-2361,
+ CVE-2008-2362.
+
+nxagent-3.2.0-6
+
+- Fixed TR05F02063. Ignore ReparentNotify events for non-rootless
+ sessions.
+
+- Fixed TR06F02068. Try to pack images only if format is ZPixmap.
+
+- Don't require reparent on close of NX window.
+
+nxagent-3.2.0-5
+
+- Fixed TR04F02044. Restored the original MakeRootTile() function in
+ order to create the root window background pixmap.
+
+- Fixed TR04F02041. Gnome panels stayed on top of the NX session win-
+ dow with desktops running Compiz. This fix provides a solution for
+ the Fullscreen mode.
+
+- Improved for the shadow session the handling of master session win-
+ dow resize.
+
+nxagent-3.2.0-4
+
+- Fixed TR10D01535. The agent window is not minimized anymore when
+ pointer leaves.
+
+- Changes aimed to avoid possible type mismatch in XDisplay struct
+ on 64 bit architectures.
+
+nxagent-3.2.0-3
+
+- Fixed a build issue on Solaris.
+
+nxagent-3.2.0-2
+
+- Code clean up. Moved a variable definition to the beginnning of a
+ block.
+
+nxagent-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxagent-3.1.0-9.
+
+nxagent-3.1.0-9
+
+- Fixed TR03F02025. German umlauts couldn't be pasted into a remote
+ Windows application. Now also the UTF8_STRING target is available
+ for ConvertSelection requests.
+
+- Fixed TR03F02031. Moved SetScreenSaverTimer() call in order to avoid
+ undesired reset of the auto-disconnect timeout when a screen saver
+ turns on.
+
+nxagent-3.1.0-8
+
+- Added reference to fixed TR02F02007 and TR07E01762 in the CHANGELOG.
+
+- Set the GC trap before calling fbPolySegment.
+
+- Fixed TR09E01863. A flag is set if a resource has been added or fre-
+ ed and it is checked in FindClientResourcesByType().
+
+- Added void entries to nxagentRequestLiteral vector in order to avoid
+ a wrong string is printed to the output for NoOperation request.
+
+- Fixed TR11E01948. Now keyboard status is initialized again after
+ the NX session is reconnected. This avoids CAPS LOCK and NUM LOCK
+ synchronization problems.
+
+- Added nxagentXkbCapsTrap and nxagentXkbNumTrap to avoid CAPS LOCK
+ and NUM LOCK synchronization problems when CAPS LOCK or NUM LOCK is
+ the first key to be pressed in the NX session.
+
+- Corrected subSize variable initialization in nxagentRealizeImage().
+
+- Fixed various memory leaks.
+
+- Fixed TR11E01950. Copy and paste via edit menu didn't work for some
+ applications.
+
+- Corrected property type in nxagentRequestSelection(). Some external
+ applications didn't enable their paste button when nxagent was the
+ owner of the CLIPBOARD selection.
+
+- Added struct to save values queried by XQueryExtension for XFixes
+ extension.
+
+nxagent-3.1.0-7
+
+- Imported patch fixing issues from X.Org security advisory, January
+ 17th, 2008: Multiple vulnerabilities in the X server. CVE IDs:
+ CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428
+ CVE-2007-6429 CVE-2008-0006.
+
+- Fixed TR02F02007. Handled the case if nxagentCreateDrawableBitmap()
+ fails to create the pixmap intended to store the bitmap data.
+
+nxagent-3.1.0-6
+
+- Fixed a compile warning in Args.c.
+
+- The synchronization loop breaks if the drawable is clean when it's
+ not supposed to be.
+
+- Fixed TR12E01966. Emacs tooltips were not displayed properly. Added
+ a check on the event mask before calling miWindowExposures().
+
+- Fixed TR01F01982. ConfigureNotify warning is printed in verbose mode
+ only.
+
+nxagent-3.1.0-5
+
+- Moved some variable definitions placed in ProcGetProperty().
+
+nxagent-3.1.0-4
+
+- Fixed TR06D01397. The problem was: drag & drop operations between
+ windows of Java applications didn't work in NX Client for Windows.
+
+- Implemented FR12E01957. Added a limit to the amount of data that can
+ be pasted from an NX session into an external application. The new
+ option - named 'copysize' - can be read from the 'options' file.
+
+nxagent-3.1.0-3
+
+- Fixed TR12E01963. The window tree is revalidated explicitly after
+ recomputing the root window clip regions.
+
+nxagent-3.1.0-2
+
+- Fixed TR11E01946. Forcing exposures on regions saved in the backing
+ store could bring to unexpected results.
+
+- Fixed TR11E01928. Animated cursors were not properly disconnected
+ and reconnected.
+
+nxagent-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxagent-3.0.0-93.
+
+nxagent-3.0.0-93
+
+- Fixed TR10E01913. Now bell settings are restored after the agent
+ reconnects.
+
+nxagent-3.0.0-92
+
+- Fixed a compilation error on 64 bit platforms.
+
+nxagent-3.0.0-91
+
+- Checked the window synchronization status before subtracting an ex-
+ posed area from the corrupted region.
+
+nxagent-3.0.0-90
+
+- Fixed TR11E01932. In case of rootless session displayed by NXWin X
+ server, synthetic ConfigureNotify events are generated by the X11
+ agent. This helps to correct menu navigation in Java 1.6.0.
+
+- Fixed the handling of 'client' parameter.
+
+- Fixed bad refreshes in viewport navigation in the case of Windows
+ client.
+
+- Fixed TR11E01930. If the defer level is set by means of the command
+ line, the DeferLevel option is not reset while resuming the session.
+
+- Fixed TR07E01762. Problem in comparison of font names.
+
+- Printed the new geometry in the session log when the agent screen is
+ resized.
+
+nxagent-3.0.0-89
+
+- Fixed TR10E01919. The agent could crash in the routine in charge of
+ find a replacement for a missing font.
+
+- Removed an unuseful log message.
+
+nxagent-3.0.0-88
+
+- Fixed TR10D01539. Some XKEYBOARD requests are disabled if the option
+ 'keyboard' has value 'query'. This locks the initial keyboard map.
+ Enabling/disabling of XKEYBOARD requests is done at run time.
+
+- Added -noxkblock command line option enabling the XKEYBOARD requests
+ even if the option 'keyboard' value is 'query'.
+
+nxagent-3.0.0-87
+
+- Reworked the handling of CT_PIXMAP client clips. Clips are always
+ converted in regions for internal use, while bitmap are saved for
+ operations involving the remote X.
+
+nxagent-3.0.0-86
+
+- Fixed TR07E01749. Now using different resolution between shadow
+ and master session with shadow display option 'As on the server'
+ doesn't display black borders.
+
+- Fixed TR09E01852. The GC clips of type CT_PIXMAP are not converted
+ in regions. This avoids generating regions made up by thousands of
+ rectangles. Backing store function SetClipmaskRgn is implemented by
+ a stub doing nothing.
+
+nxagent-3.0.0-85
+
+- Fixed TR08E01841. Exposed are forced to new areas exposed by the
+ viewport.
+
+- Fixed TR02E01645. Remote exposures was blocked if the NX client was
+ running on Linux without window manager.
+
+- Even if the agent window is fully obscured, synchronization is not
+ skipped if the Composite extension of the remote display is in use.
+
+- Fixed TR08E01851. Exposures events have to be internally generated
+ for regions that can't be restored because the backing pixmap is
+ corrupted.
+
+- Fixed TR08E01847. The initial values of store used to save XChangeGC
+ calls are set to the default GC values.
+
+- When a drawable becomes synchronized, its outdated bitmap is destro-
+ yed.
+
+- If a pixmap is not fully synchronized after a synchronization loop
+ it is cleared, just like windows.
+
+- Solved a problem causing some pixmaps to remain among the corrup-
+ ted resources even if they were synchronized.
+
+nxagent-3.0.0-84
+
+- Renamed Misc.h as Utils.h to solve name clashes on Windows platform.
+
+nxagent-3.0.0-83
+
+- Changes to include correctly declaration of _XDisplay structure on
+ 64 bit platforms. Further tests are needed to confirm that it fixes
+ TR08E01824.
+
+nxagent-3.0.0-82
+
+- Fixed TR08E01821. Changed nxagentAddItemBSPixmapList() to check if
+ the pixmap item has already an entry in the list before adding it.
+
+- Fixed TR07E01795. Sun Studio main window showed only its grey back-
+ ground. Changed clipboard events handling to let the agent notify
+ a failure in converting selection.
+
+nxagent-3.0.0-81
+
+- Based on nxagent-3.0.0-78.
+
+- The agent options are saved before reopening the display in the
+ reconnection procedure. If the new initialization fails the backup
+ values of options are restored.
+
+- Keyboard device info are saved before the keyboard reset occuring
+ in the reconnection procedure. If the new initialization of the
+ keyboard fails, the old values are restored.
+
+- The initialization procedure of keyboard device returns with error
+ if it fails to retrieve the keyboard mapping information from the
+ remote display.
+
+- The reconnection fails if the default depth of the new display is
+ different from the previous one.
+
+- The session can be migrated if the visuals don't match for color
+ masks swapping. At the moment there are no conversions to line up
+ the RGB masks, so even if the session can be migrated, incorrect
+ colors may be shown.
+
+nxagent-3.0.0-80
+
+- The agent options are saved before reopening the display in the
+ reconnection procedure. If the new initialization fails the backup
+ values of options are restored.
+
+- The flag storing that a SIGHUP has been received is reset if the
+ function reconnecting the session fails.
+
+nxagent-3.0.0-79
+
+- Changed the SIGHUP handler not to ignore the signal if the state
+ is SESSION_GOING_UP or SESSION_GOING_DOWN.
+
+- Keyboard device info are saved before the keybord reset occuring
+ in the reconnection procedure. If the new initialization of the
+ keyboard fails, the old values are restored.
+
+- The initialization procedure of keyboard device returns with error
+ if it fails to retrieve the keyboard mapping information from the
+ remote display.
+
+- The reconnection fails if the default depth of the new display is
+ different from the previous one.
+
+- The session can be migrated if the visuals don't match for color
+ masks swapping. At the moment there are no conversions to line up
+ the RGB masks, so even if the session can be migrated, incorrect
+ colors may be shown.
+
+nxagent-3.0.0-78
+
+- Fixed TR07E01747. Fixed warnings occuring when compiling for AMD64.
+
+- Fixed TR07E01753. NoMachine WM icon in the title bar is displayed
+ correctly.
+
+- Fixed TR03E01656. If client and server endianess didn't match, glyph
+ images bits have to be only temporarily swapped.
+
+- Fixed TR07E01746. Terminate the shadow agent if the option 'shadow'
+ is empty.
+
+- Added option '-verbose'. It enables the printing of errors received
+ by the agent from the remote X server.
+
+- Warnings related to missing fonts are printed only if verbose mode
+ is enabled.
+
+- Disabled a log message related to the use of Composite extension.
+
+nxagent-3.0.0-77
+
+- The pixmap formats are initialized without taking care of which are
+ supported on the remote display.
+
+- Removed the check for pixmap format compatibility when migrating the
+ session to a new display.
+
+- Fixed TR06E01725. A minimum set of available picture formats is
+ used to ensure a wide migration from/to different displays.
+
+- The PictFormat structures used by nxagent are no longer filtered
+ with the ones available on the real display.
+
+- The background pixmaps are cleared while reconnecting in order to
+ make them usable.
+
+- Fixed TR01E01619. Changed the RandR implementation to return a re-
+ fresh rate other than zero.
+
+nxagent-3.0.0-76
+
+- Changed the keystroke to force the drawable's synchronization to
+ CTRL-ALT-J.
+
+nxagent-3.0.0-75
+
+- If the backing store tries to restore areas from a corrupted pixmap,
+ such areas are subtracted from the saved region, so that exposures
+ will be sent for them.
+
+nxagent-3.0.0-74
+
+- Don't skip the synchronization when there are more clients ready.
+ This temporarily solves the synchronization problems observed in
+ the previous versions if one or more clients kept the agent busy.
+
+nxagent-3.0.0-73
+
+- If the PolyFillRect() uses a FillStippled or a FillOpaqueStippled
+ fill style and the destination is corrupted, the area affected by
+ the operation is first synchronized.
+
+nxagent-3.0.0-72
+
+- Fixed the bug affecting the position of the input window when a
+ session was migrated to a linux X server with no window manager
+ running.
+
+- The color used to fill the corrupted backgrounds is converted de-
+ pending on the depth of remote X server.
+
+- The PolyFillRect() does not clean the corrupted destination region
+ if a stipple pixmap is used as mask. This solution is adopted to
+ reduce the region fragmentation and to solve the text drawing pro-
+ blems affecting rdesktop.
+
+nxagent-3.0.0-71
+
+- Force a flush of the display buffer if the coalescence timeout is
+ expired. Set the timeout according to the link type, from 0 to 50
+ ms for link MODEM.
+
+- In nxagentRealizeImage() the width in byte is computed newly if
+ the image has been scaled.
+
+- The shadow agent clips the screen updates in tile only if the link
+ type is MODEM or ISDN.
+
+- Split the abort conditions in the synchronization loop to check
+ separately the congestion and the blocking status.
+
+- Implemented a workaround in order to avoid graphical problems with
+ render composite operations on Xfree86 remote server.
+
+nxagent-3.0.0-70
+
+- Various adjustments aimed at using the best defer rules depending
+ on the congestion state.
+
+- Fixed a problem with icons of message boxes in shadow sessions.
+
+- Changed the log message printed when the shadow agent can't connect
+ to the master session.
+
+- If Composite is in use, don't skip the PutImage and CopyArea opera-
+ tions even if the agent window is fully obscured.
+
+nxagent-3.0.0-69
+
+- The option -nodamage prevents the shadow agent from using the damage
+ extension.
+
+- Changed the scaling feature to set the byte order of the source
+ image according to the local endianess.
+
+- Changed the scaling feature in order to handle different ratios for
+ horizontal and vertical sizes.
+
+- Force the shadow sessions to be non-persistent.
+
+- When a pixmap background is synchronized, an expose is sent to its
+ owners.
+
+nxagent-3.0.0-68
+
+- Changed the type of parameters passed to nxagentRootlessRestack in
+ order to be compliant with Xlib types on 64 bit platfors.
+
+- The nxagentCompositeRects() checks for the render operation type to
+ determine if the corrupted destination region must be cleared.
+
+nxagent-3.0.0-67
+
+- Fixed a condition discarding the expose events received from the X
+ server.
+
+nxagent-3.0.0-66
+
+- The corrupted resources are removed when a session suspends, and are
+ reallocated only at reconnection. This is aimed at avoiding synchro-
+ nization loops when the link is down.
+
+nxagent-3.0.0-65
+
+- Initialize for now the tile size at 64x64 in shadow mode.
+
+- The height and width of the tiles used for synchronizing drawables
+ are set without overriding command line option 'tile'.
+
+- Avoid calling miWindowExposures() for empty regions.
+
+- Fixed a bug while clearing corrupted regions with window exposures.
+
+- The corrupted drawable counters are not reset if there are bitmaps
+ to synchronize.
+
+nxagent-3.0.0-64
+
+- The synchronization bitmap is used only when requesting a full
+ drawable synchronization, otherwise the frame-buffer is used as
+ source.
+
+- Fixed some bugs in the synchronization loop.
+
+- Removed the remaining debug output.
+
+nxagent-3.0.0-63
+
+- Don't start the synchronization loop if the wakeup handler found
+ some clients ready.
+
+- Don't flush the display buffers if the synchronization was inter-
+ rupted and there are more drawables to synchronize.
+
+- Changed the backing store functions to not save the obscured areas
+ which are inside the corrupted region of a window.
+
+- Added the code to send the XClearArea() commands in shadow mode at
+ the end of the synchronization loop. In this way large images are
+ still split in tiles but, on fast links, the final result can made
+ visible all at once.
+
+- Modified the corrupted drawable counters to only report the number
+ of resources needing synchronization. This allows the block hand-
+ ler to avoid spinning through the synchronization loop if there is
+ nothing to do.
+
+- On a window exposure remove the corrupted region of the destinat-
+ ion window.
+
+- For testing purposes, the pixmap synchronization loop starts only
+ if there are corrupted backgrounds.
+
+nxagent-3.0.0-62
+
+- The image scaling is applied only if the destination drawable is the
+ pixmap shadowing the frame buffer of the master session.
+
+- The shadow agent exits with a fatal error if it can't connect to the
+ master session.
+
+nxagent-3.0.0-61
+
+- Forward the SIGCHLD to the NX transport instead of letting the NX
+ transport forward the signal to us. This allows the agent to set
+ and replace the signal handler at any time, without having to ta-
+ ke care of the state of the NX transport.
+
+- Improved the synchronization loop by implementing a simple round-
+ robin mechanism between the resources needing synchronization.
+
+nxagent-3.0.0-60
+
+- Use a new set of functions to install, post-install and reset the
+ signal handlers.
+
+- Reset the signal handlers to their initial state after a display
+ failure, as part of the disconnection procedure.
+
+- Don't set SA_RESTART in the sigaction flags. Make the signal int-
+ errupt the system call.
+
+- Terminate all the running dialogs before exiting.
+
+nxagent-3.0.0-59
+
+- Use the value of nxagentCongestion in nxagentUserInput() instead
+ of calling NXDisplayCongestion().
+
+nxagent-3.0.0-58
+
+- The clip mask of the scratch GC used by nxagentDeferCopyArea() is
+ reset before releasing the GC.
+
+- The MotionNotify event can now break the synchronization loop.
+
+- In the case of shadow sessions, if synchronization aborts then the
+ remaining data to synchronize are not stored in a bitmap.
+
+- If a table rebuild occurs in a loop searching for resources, the
+ loop restarts from beginning not to use the out of date table.
+
+nxagent-3.0.0-57
+
+- The synchronization bitmap is created only if the corrupted area
+ of the source drawable is visible.
+
+- The synchronization loop skips the last synchronizing drawable to
+ give a chance to the next resources to be synchronized.
+
+- Removed the session starting infos concerning the mismatching ver-
+ sions of render and the window manager detection.
+
+- Split the gliph lists in Render.c only if the symbol SPLIT_GLYPH_-
+ LISTS is defined.
+
+- Read again the events in the block handler after the flush.
+
+- The nxagentCongestion variable is now a value ranging from 0 to 9,
+ not a boolean flag.
+
+- Added some experimental code dynamically reducing the size of the
+ display output buffer when the agent is blocking for write.
+
+nxagent-3.0.0-56
+
+- The synchronization loop is now aborted when a short timeout exp-
+ ires. If the drawable synchronization cannot be completed, the
+ remaining data is stored in a bitmap. The synchronization loop is
+ then restarted using the data from the bitmap, instead of pulling
+ the latest image from the framebuffer. This allows the agent to
+ show a complete frame when displaying videos and animations, while
+ at the same time giving a chance to the clients to update the
+ screen in background. When an image from the saved bitmap is put
+ on the remote display, the image is compared with the actual data
+ in the framebuffer. If the two bitmaps match, the corresponding
+ region of the drawable is marked as synchronized, otherwise the
+ drawable remains dirty and will be synchronized at the next loop
+ using the new data taken from the framebuffer.
+
+- If the smart schedules is enabled, let the dispatcher decide when
+ it is time to yield and process the next client.
+
+nxagent-3.0.0-55
+
+- Disable the smart scheduler in the case of shadow sessions.
+
+- If the smart scheduler is enabled, stop the timer before returning
+ from the block handler. WaitForSomething() sets a zero timeout if
+ there are clients with input but doesn't stop the timer. The select
+ is then interrupted to update the schedule time even if, what the
+ dispatcher cares, is only the ticks count at the time the client
+ is scheduled in.
+
+- Fixed a compilation warning in NXresource.c.
+
+- The main window of the shadow agent is mapped in nxagentMapDefault-
+ Windows, like for non shadow agents, if the remote display has no
+ window manager running. This avoids a flickering effect on the !M
+ logo having place if the shadow session was displayed from a Wind-
+ ows client.
+
+- Some code related to the use of the Composite extension is not built
+ in the agent being not necessary anymore.
+
+nxagent-3.0.0-54
+
+- Get SmartScheduleStopTimer() from dixstruct.h.
+
+- Updated the NoMachine icon file.
+
+nxagent-3.0.0-53
+
+- Changed the message 'NXAGENT: Fatal IO error on display' into 'Info:
+ Disconnected from display'.
+
+- Fix a problem occurring when the FindClientResourcesByType() needs
+ to reallocate the resource table.
+
+- The popup window synchronization breaks if an user input is caught.
+
+- Implemented FR05E01712. The stderr and stdin are redirected to the
+ 'clients' file in the session directory.
+
+- The nxagentRealizeImage function does nothing if the agent is not
+ connected to the display.
+
+- Removed the code implementing the redraws of the viewport frame.
+ Such code is not needed because is't enough for the agent to handle
+ the expose event received from the X server.
+
+nxagent-3.0.0-52
+
+- Where it is necessary to wrap the function PaintWindowBackground,
+ the original function pointer is saved and restored afterwards. This
+ let other code wrapping that function (e.g. the damage extension) to
+ work correctly.
+
+- If the agent works in shadow mode, the defer parameters are ignored.
+
+nxagent-3.0.0-51
+
+- Use the smart scheduler on platforms where it is enabled.
+
+- Check ClientsWithInput in the wakeup handler and update the number
+ of clients ready if any descriptor is set.
+
+nxagent-3.0.0-50
+
+- Fixed TR05E01714. Changed VisibilityNotify event so that it forces
+ a refresh on the root window, but only if on the agent Composite is
+ enabled and its window moves from a VisibilityFullyObscured to ano-
+ ther state.
+
+- Grant the availability of core fonts in master sessions also after
+ the disconnection. This makes possible to start new clients inside
+ a shadow sessions while the master is down.
+
+- Changed nxagentGlyphs() to send a single glyph list per request.
+
+- Major rewrite of the agent dispatch handler.
+
+- Some name changes to the functions handling the session states.
+
+nxagent-3.0.0-49
+
+- Made the dispatch loop yield control to a different client after a
+ fair amount of time even if the current client doesn't produce any
+ output.
+
+nxagent-3.0.0-48
+
+- Modified the message in the suspend dialog to say 'Disconnect' in
+ place of 'Suspend'.
+
+- Added macros in Pixels.h to determine the behavior of the lazy en-
+ coding.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+- Reset all options to their defaults before processing the session
+ arguments. This fixes the problem with the DeferLevel option not
+ being set at reconnection.
+
+nxagent-3.0.0-47
+
+- Initialized the arguments of NXGetControlParameters(), NXGetShmem-
+ Parameters() and NXGetUnpackParameters() to end up with valid data
+ also in the case of a display failure.
+
+- Converted the coordinates in the X_PolyFill requests to relative
+ mode. This makes all the requests independent from the origin and
+ helps the caching by the proxy.
+
+nxagent-3.0.0-46
+
+- Don't print the 'Display failure' message on a SIGTERM.
+
+- Ensure that the NX transport is shut down after the 'Terminating
+ session at...' message if the session is killed by the user.
+
+- Let the agent filter the error output by setting the OsVendorVEr-
+ rorFProc function pointer.
+
+- Give the possibility to the agent to redirect the standard error
+ during a Popen() or a System() by setting the OsVendorStartRedir-
+ ectErrorFProc and OsVendorEndRedirectErrorFProc function pointers.
+
+- Fixed a problem in nxagentPolyFillRect() not properly propagating
+ to the destination.
+
+- Added nxagentPolyFillRect() and nxagentGlyphs() among the funct-
+ ions increasing the pixmaps usage counter.
+
+- Cleaned up some of the FIXME related to the lazy encoding.
+
+nxagent-3.0.0-45
+
+- Use the three distinct functions in nxcompext to query the state
+ of the display connection.
+
+- Terminate gracefully on a fatal server error by printing the fol-
+ lowing in the session log:
+
+ Error: Aborting session with 'Error text...'.
+ Session: Aborting session at '...'.
+ Session: Session aborted at '...'.
+
+- Removed more debug messages from the session log.
+
+nxagent-3.0.0-44
+
+- Guess whether to compress an image with a lossless encoder based
+ also on the width and height, not only on size.
+
+- Corrupted pixmaps used as tiles propagate the dirty area when they
+ are involved in a PolyFillRect() operation.
+
+- On link settings ADSL to LAN, images are not split in tiles to bet-
+ ter fill all the available bandwidth.
+
+- Pixmaps referenced often as source in deferred operations or used
+ as backgrounds, are now synchronized as long as when the network
+ congestion level remains 0.
+
+- Use nxagentPaintWindowBorder() to update the window's border in
+ the framebuffer.
+
+- Fixed a problem with the new handling of the X_RenderChangePicture
+ requests that caused the text to be erroneously clipped.
+
+nxagent-3.0.0-43
+
+- Don't pass the uid of the shared memory segment to the nxcompshad
+ library if it can't be retrieved from the options.
+
+- Fixed the new handling of the RenderChangePicture requests to work
+ on 64 bit platforms.
+
+nxagent-3.0.0-42
+
+- Added support for the 'lossy', 'lossless' and 'adaptive' pack me-
+ thod literals. These values activate the dynamic selection of the
+ pack method by the agent.
+
+- Use the newer constant PACK_NONE instead of NO_PACK.
+
+nxagent-3.0.0-41
+
+- Fixed a bug in the disconnection procedure introduced with the new
+ handling of the display events.
+
+- Realize the XRenderChangePicture() request only if a change of the
+ remote picture's attributes is detected.
+
+nxagent-3.0.0-40
+
+- Dynamically select a lossy or a lossless encoder based on the num-
+ ber of pixels that appear to be different in the image.
+
+- Use the new PACK_BITMAP_16M_COLORS image encoding. Handle the case
+ when the packed image data points at the same data as the original
+ image. This is useful to save a copy.
+
+- The PACK_BITMAP_16M_COLORS method is now the default for lossless
+ encoding.
+
+- Don't use compression for the alpha channel. This is also intended
+ to better leverage the stream compression.
+
+nxagent-3.0.0-39
+
+- The nxagentComposite() function doesn't check the source and mask
+ synchronization status, but defers the XRenderComposite() operation
+ by checking the defer level only.
+
+- If the target of an XCompositeText() function is an hidden window,
+ the operation is prevented.
+
+- Passing the uid of master X server process to nxcompshad library.
+
+- Before the call of XRenderAddGlyphs(), call the new library function
+ XRenderCleanGlyphs() cleaning the padding bytes of data section of
+ request.
+
+nxagent-3.0.0-38
+
+- Don't warp the cursor if the requesting client is a shadow agent.
+
+- Changed a call to NXFlushDisplay in order to align to nxcomp version
+ 3.0.0-15.
+
+- Updated the NoMachine icon file.
+
+- Changed Agent.h in order to include NX version of Xlib.h avoiding
+ missing declarations.
+
+- If the NXDisplayCongestion notifies an optimum congestion state,
+ the continuous user input, due to unreleased buttons/keys, doesn't
+ break the drawable's synchronization.
+
+- Renamed the option 'block' as 'tile'.
+
+- Implemented a way to guess if the destination drawable of a copy
+ area is a popup window. In such a case, the source is synchronized
+ before doing the copy to avoid ugly effects like text items floating
+ on an invisible background.
+
+- In order to reduce the number of clip mask changings, if the clean
+ region of a corrupted source drawable is formed by a single rectan-
+ gle, its coordinates are used to change extents and position of the
+ area involved in the copy area operation.
+
+- Fixed a crash caused by a reference to a resource table freed by a
+ table rebuilding. This was happening because during the pixmap re-
+ connection some new GC resources went beyond the resource table li-
+ mit, causing a table relocation. As a general rule, a function loop-
+ ing across a resource table should not add or remove resources.
+
+nxagent-3.0.0-37
+
+- To improve the efficiency of the algorithm deferring the trapezoid
+ operations, the composite does not propagate the glyphs flag to
+ the destination.
+
+- Moved the replacement of XCheckIfEvent() to nx-X11 with the name
+ XCheckIfEventNoFlush().
+
+nxagent-3.0.0-36
+
+- Changed nxagentDisplayFlushHandler() according to the new semantic
+ of the handler. The function is called by nxcomp when new data is
+ sent to the remote proxy.
+
+- After the flush handler is called, use NXQueryDisplay() with query
+ type NXDisplayCongestion to update the congestion flag.
+
+- Modified the boxes list defragmentation to merge only those rectan-
+ gles which fully overlap.
+
+- During the synchronization loop the nxagentDispatchHandler() takes
+ care of reading the enqueued events, while the nxagentUserInput()
+ checks only for state changes due to a processed key/button event.
+
+- Set the display output buffer size according to the link type.
+
+- Removed the congestion and synchronization callbacks.
+
+nxagent-3.0.0-35
+
+- In order to avoid the lossy encoding of text regions, the nxagent-
+ GlyphsExtents is computed even if the mask format is not specified.
+ In this case, the render implementation was not calculating the ex-
+ tents of composite text operation, whose coordinates are useful only
+ to build a mask pixmap.
+
+nxagent-3.0.0-34
+
+- Removed message 'Could not init font path element' from the output.
+
+- Moved initialization of picture support before the call to miDCInit-
+ ialize in the screen opening procedure. This is because miDCInitial-
+ ize calls DamageSetup that wraps the picture screen functions.
+
+- Implemented FR05E01686. Added option 'menu' enabling/disabling the
+ pulldown menu in the rootless agent.
+
+- Added a flag to each drawable to record if they have been the dest-
+ ination of a glyph operation. This is used to skip the deferral of
+ some operations (e.g. render trapezoids) if they can cause the
+ drawable to be synchronized using a lossy encoding.
+
+- The render trapezoids are deferred if the operation falls inside
+ a dirty region or if the destination drawable does not contain
+ glyphs.
+
+- Imported the NXmitrap.c file from render directory.
+
+- Improved the algorithm queuing multiple writes across a proxy
+ flush.
+
+nxagent-3.0.0-33
+
+- Read the event queue after each request processed. Doing this
+ is expensive but it seems to work best.
+
+- Don't split the big trapezoid requests. Splitting the requests
+ doesn't seem to provide any benefit with the clients tested.
+
+- By defining BLOCKS in Handlers.c, Events.c and NXdispatch.c, log
+ the begin and end of the most sensitive routines.
+
+nxagent-3.0.0-32
+
+- Use NXSetDisplayWriteHandler() to register a callback invoked
+ by Xlib after some data is written to the display socket. This
+ callback allows the agent to better determine when it is time
+ to send the sync requests.
+
+nxagent-3.0.0-31
+
+- The operation of adding glyphs to remote glyphset has been defer-
+ red, in order to avoid to add unused glyphs. When a composite text
+ operation looks for a certain glyph, if it has not been added to
+ the selected glyphset, an XRenderAddglyphs is requested.
+
+- The forced synchronization timeout is now dependant on link type.
+
+- Force the mi to process the events just after having processed
+ any input.
+
+- Added an experimental 'hard' sync request intended to wait for
+ the X server to complete an image operation. This also affects
+ the agent only when the NX transport is not running.
+
+- Added a synchronization mechanism intended to let the agent de-
+ tect if the X server is not able to process its input when the
+ NX transport is not activated. The algorithm uses asynchronous
+ X_GetInputFocus replies to minimize the impact of latency on
+ slow connections. A new request is sent at any given amount of
+ bytes read from our clients. When the number of pending replies
+ is exceeded, the agent stops accepting additional requests and
+ waits for the remote until the number of pending replies returns
+ below the limit. Note that when the NX transport is running, the
+ algorithm is disabled to not interfere with the proxy's own
+ token-based flow control.
+
+- Added the nxagentDispatchHandler() function. It is called by the
+ dispatcher after a client's request has been processed.
+
+- Added the nxagentWaitEvents() function. It blocks waiting for
+ more input with an optional timeout. It handles the case when
+ the NX transport is not running and is able to recover gracely
+ from a display failure by returning the error.
+
+- Replaced most of the code that was relying on NXTransContinue()
+ to use the new function.
+
+- Moved the new event-related functions to Events.h and Events.c.
+
+- Disabled the code raising the splash screen at reconnection.
+
+- Reverted change done in 3.0.0-8 version, dealing with expose events
+ not having entries in the queue. They are not collected in a global
+ region but sent immediately.
+
+nxagent-3.0.0-30
+
+- Let the block handler check if there are events queued after the
+ flush before entering the select.
+
+- Changed the dispatch loop to read the incoming events more often.
+
+- Added the nxagentReadEvents() and nxagentCheckEvents() functions.
+ Differently from XCheckIfEvent(), nxagentCheckEvents() doesn't
+ flush the output buffer if no event is available. nxagentReadEv-
+ ents(), instead, it's like XEventsQueued() but forces the use of
+ the QueuedAfterReading mode. These functions should be used when-
+ ever XEventsQueued() and XCheckIfEvent() would be required.
+
+- The nxagentQueuedEvents() macro uses XQLength() to return the
+ number of events that have been read and need to be dispatched.
+
+- The nxagentPendingEvents() function returns true if there is any
+ event queued. If not, it queries the transport to find if more
+ events can be read.
+
+- Ripristinated the code preventing the agent to connect to its own
+ display. The code was disabled while migrating to the new tree.
+
+- Removed the dependencies from the NXAGENT_QUERYBSIZE, NXAGENT_NO-
+ EXPOSEOPTIMIZE and NXAGENT_ONEXIT. Removed the unused code.
+
+- Removed more unused code in Clipboard.c.
+
+- The shadow agent calls NXShadowDestroy before exiting.
+
+- Reverted a change done in 3.0.0-8 dealing with expose events. If the
+ result of the subtraction is not sent immediately, some duplicated
+ refresh is shown.
+
+nxagent-3.0.0-29
+
+- The splash screen is removed as soon as the session is started in
+ the case of shadow session.
+
+- The rules to verify when the synchronization loop can be stopped
+ are specified by means of a bitmask passed as parameter to synch-
+ ronization functions.
+
+- The glyphsets are no longer reconnected during a session resuming,
+ but only when they are used.
+
+- Initialized the timeout parameter in block handlers in case of NULL
+ value.
+
+- Added option 'block' to specify the size of image slices sent during
+ the synchronization.
+
+- Fixed a memory leak in nxagentParseOptions().
+
+nxagent-3.0.0-28
+
+- Improved the nxagentGetOptimizedRegionBoxes() function to optimize
+ the high fragmented rectangle lists.
+
+- When resizing nxagent window the fictitious resize for all top level
+ windows, triggering the window tree validation, is not executed if
+ rootless mode is off.
+
+- The nxagentInputWindows cannot be resized in rootless mode because
+ they are not created.
+
+- Added NXdamage.c to the source files.
+
+- Changed damage's GCOps functions drawing text. This was needed be-
+ cause the original functions didn't call agent GCOps if the drawable
+ was registered for damage events.
+
+nxagent-3.0.0-27
+
+- Fixed TR04E01677. Changed the reconnection procedure to call the
+ function destroying the NoMachine splash window. It rarely happened
+ that the splash window was not removed after resuming a session.
+
+- Ignored the ForceScreenSaver requested by X clients to avoid clashes
+ with our screen saver handling.
+
+- Cleanup of code handling the screen saver timeout to remove referen-
+ ces to the old drawable's synchronization method.
+
+- Fixed TR04E01664. The session is terminated instead of suspended if
+ the auto-disconnect timeout expires and the persistence is not allo-
+ wed.
+
+- Reverted an optimization in nxagentCheckWindowConfiguration() in
+ order to avoid inconsistencies in the stacking order.
+
+- Fixed a segmentation fault in rootless mode.
+
+nxagent-3.0.0-26
+
+- Some fixes to build in the Cygwin environment.
+
+nxagent-3.0.0-25
+
+- Renamed the option 'lazylevel' to 'defer'.
+
+- Added a flag to windows to know if they have transparent children,
+ in order to reduce to minimum the put images on windows covered by
+ their children.
+
+- Created a generic list of graphic contexts, used when synchronizing
+ drawables between the nxagent and the remote X server. All the GCs
+ are created with IncludeInferiors property. This solves problem when
+ trying to synchronize windows covered by children with transparent
+ backgrounds.
+
+- The nxagentUserInput checks if keys are pressed.
+
+- Fixed some memory leaks.
+
+- In shadow mode, removed the handling of events of the source display
+ from the code. They can be handled in the nxcompshad library.
+
+- In shadow mode, allow the synchronization loop to break in case of
+ input event.
+
+- Moved the call to miDCInitialize after the initialization of poin-
+ ters to screen functions. This was needed to make DAMAGE work pro-
+ perly.
+
+- In shadow mode, not breaking the polling if a mouse button is down.
+
+- In shadow mode, allow events to break the loop sending updates.
+
+- At reconnection the input window is raised after the root window is
+ mapped.
+
+- Fixed an invalid read. The call to the function nxagentSetInstalled-
+ ColormapWindows() has been moved from nxagentDestroyWindow to Dele-
+ teWindow.
+
+nxagent-3.0.0-24
+
+- The corrupted drawables are added to dedicated lists of resources
+ to speed up the synchronization process.
+
+- The nxagentUserInput checks if a mouse button is pressed.
+
+- Created the nxagentGetScratchGC which resets the scratch GCs to de-
+ faults values also on the remote X server.
+
+- The synchronization cycle is forced when a timeout expires, albeit
+ the remote display is blocked.
+
+- Added a parameter to synchronization functions to specify if loops
+ can break. It's useful to force the synchronization in some circum-
+ stances.
+
+- Keystroke CTRL-ALT-R is enabled in shadow mode too. It is used to
+ switch scaled and non-scaled modes.
+
+- Some changes to adjust the window position.
+
+- Moved some macros to Misc.h.
+
+- Some changes to adjust the behaviour of scaling feature in case of
+ resize and switch to full screen.
+
+- Freeing the buffer used for scaling if no needed anymore.
+
+nxagent-3.0.0-23
+
+- Fixed TR02E01648 and TR10D01534. Changed pointer motion events han-
+ dling. In desktop mode the nxagent creates a InputOnly window that
+ collects the MotionNotify events. This window is mapped over the
+ root window. In rootless mode the nxagent creates all windows on
+ real X server with PointerMotionMask.
+
+- Not exiting from the block handler with zero timeout if drawables to
+ be synchronized are pixmaps only.
+
+- Reduced the margin around the glyph extent from 5 to 3 pixels.
+
+nxagent-3.0.0-22
+
+- Fixed initialization of XImage used for scaling.
+
+- Changes to fix the position of the shadow main window.
+
+nxagent-3.0.0-21
+
+- Moved the implementation of scaling feature in nxagentRealizeImage.
+
+- Disabled log message 'Font not found' in Font.c.
+
+- The synchronization loop is called inside the BlockHandler. Synch-
+ ronization goes on until the display is not blocked.
+
+- Exiting the BlockHandler with timeout zero if corrupted drawables
+ have not been synchronized because of blocked display connection.
+
+- Changed the synchronization loop to slice the dirty regions.
+
+- The updates by shadowing nxagents are now sent using the lazy me-
+ chanics: the remote buffer pixmap is marked as dirty, then synch-
+ ronized.
+
+- Traversing the tree to synchonize windows.
+
+nxagent-3.0.0-20
+
+- Fixed a bug in the nxagentGetOptimizedRegionBoxes() function which
+ was causing a bad merging of boxes.
+
+- Added a margin of 5 pixels around the glyphs extents before synch-
+ ronizing them.
+
+- The synchronization cycle has been reactivated for the first lazy
+ level, in order to synchronize the window's background.
+
+- The CopyArea between pixmaps doesn't mark the full destination as
+ corrupted, but clips the operation with the synchronized area of the
+ source as happens for the windows.
+
+- Implemented scaling feature for the shadow agent. To do: run-time
+ control of this feature by keystrokes and window resize; adapting
+ the window size to the scaled dimensions.
+
+- Setting the shadow session scaling ratio equal to the size chosen
+ from the user divided by the size of the main session.
+
+- Scaled mouse motion events according with the ratio.
+
+- Implemented the nxagentScaleImage() function.
+
+- Updated version number and copyright in the output log.
+
+- Fixed TR06D01390. When resizing nxagent window, we make a fictitious
+ resize for all top level windows, in order to trigger the window
+ tree validation.
+
+nxagent-3.0.0-19
+
+- Force LazyLevel to 0 in case of shadowing session.
+
+- If shadowing poller returns that nothing is changed and no updates
+ have to be sent, call WaitForSomething select with 50 ms timeout.
+
+- The shadow agent doesn't break the sending of updates in case of
+ mouse motion events.
+
+- The scratch GC's clip mask was not cleared during a drawable synch-
+ ronization. Now the GetScratchGC() function is called after changing
+ the nxagentGCTrap flag.
+
+- Implemented the function nxagentGetOptimizedRegionBoxes(). It gets
+ the list of boxes forming a region and operates on it to merge as
+ much boxes as possible, checking their width and position.
+
+- Implemented the function nxagentClearRegion(). It does an XClearA-
+ rea() for each box belonging to a region, using the color returned
+ by nxagentGetCorruptedRegionColor() as background of target window.
+
+- Implemented the function nxagentGetCorruptedRegionColor(). It gets
+ the color of first outer pixel in the bottom right corner of re-
+ gion.
+
+- Fixed some memory leaks.
+
+- Checked and removed some FIXME concerning the lazy encoding.
+
+- Fixed and added some debug messages in Render.c, GC.c and GCOps.c.
+
+- Added to the Literals.h file the Render and Shared memory requests.
+
+nxagent-3.0.0-18
+
+- Changes to comply with nxcompshad library.
+
+nxagent-3.0.0-17
+
+- The master agent holds the number of shadow nxagents connected to
+ itself. The shadow nxagent notify its presence to master nxagent
+ by setting the _NX_SHADOW property.
+
+nxagent-3.0.0-16
+
+- Rearranged the lazy level rules. All the link types now use the lazy
+ level 1: the pixmaps are always corrupted, and they becomes synchro-
+ nized only when they're sources of an operation (i.e. CopyArea, ren-
+ der).
+
+- The lazy levels greater than 1 don't synchronize automatically. It's
+ possible to synchronize with two keystrokes: CTRL+ALT+Z forces the
+ windows synchronization without take care of the congestion; CTRL+
+ ALT+X synchronizes the windows and the background until there is
+ enough bandwidth.
+
+- Only the tile, stipples and glyphs are always synchronized.
+
+- The height of glyphs region has been doubled to obtain a better vi-
+ sual effect after the synchronization.
+
+- Fixed a problem causing the background pixmaps to be used also if
+ they were not fully synchronized.
+
+- Added a function to convert a PolyPoint in a dirty region. The fun-
+ ction is now disabled because it is not advisable to use the exten-
+ ts.
+
+- The XCopyArea is not requested if the clip region is NIL.
+
+- The nxagentPutImage does not update the framebuffer when it is
+ doing a synchronization.
+
+- Moved all the code handling the drawables synchronization in the
+ Drawable.c file.
+
+- As the shared memory pixmaps are never synchronized with the re-
+ mote X server, now they're marked as dirty when they're created.
+
+- An XFillRectangles request now marks the rectangles of the desti-
+ nation drawable as synchronized.
+
+- Fixed a bug that was causing the CopyArea to propagate wrongly the
+ corrupted region on the destination drawable when the GC uses a
+ clip mask.
+
+- Implemented a test function useful to show on the windows all the
+ dirty regions as colored rectangles. It is used with the CTRL+ALT+A
+ keystroke.
+
+- Before sending the XRenderComposite operations (trapezoids, trian-
+ gles, TriStrip, TriFan), the drawables involved are synchronized if
+ they are dirties.
+
+- Changes to shadow mode.
+
+- Moved the code splitting the screen shadowing updates to a separate
+ function.
+
+- Suspend the sending of updates if input is received from the user.
+
+- Make use of callback mechanism implemented in the nxshadow library
+ to suspend screen polling when input is received from the user.
+
+- Flush the display link when requested by the proxy.
+
+nxagent-3.0.0-15
+
+- Print the following info when the screen is resized: "Info: Resized
+ screen [<screen number>] to [<width>x<height>].
+
+- Changes to comply with nxshadow library.
+
+- Fixed the height of screen updates in shadowing mode.
+
+- Terminate cleanly if shadowing initialization fails.
+
+- Split shadowing screen updates in smaller rectangles for slow links.
+
+nxagent-3.0.0-14
+
+- Fixed a compilation error in NXrender.c.
+
+nxagent-3.0.0-13
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Added file COPYING.
+
+- Updated the files imported from X.org to the 6.9.0 release.
+
+nxagent-3.0.0-12
+
+- Fixed compilation on Sun platform.
+
+nxagent-3.0.0-11
+
+- Implemented an algorithm adapting colors if the target display have
+ different depth than the shadowed display. It requires that visuals
+ are TrueColor and depths are 16 or 24 or 32.
+
+- Added the option shadowmode. If this option is '0' the shadowing
+ session doesn't interact with the attached session.
+
+nxagent-3.0.0-10
+
+- Changes to comply with the nxshadow component.
+
+nxagent-3.0.0-9
+
+- Applied changes to files imported from X.org sources.
+
+- Updated copyright notices to the current year.
+
+nxagent-3.0.0-8
+
+- Imported changes up to nxagent-2.1.0-17.
+
+- Fixed problem with font path on Solaris 10.
+
+- Disabled some log messages.
+
+- If the agent has blocked when trying to write to the display, try to
+ read other events from the connection.
+
+- After synchronizing expose events, the result of subtraction is not
+ sent immediately, but added to a region. Expose events will be for-
+ warded to clients after exiting from the event loop.
+
+- Critical output is set when button mouse events are received.
+
+- Fixed TR12D01584. X11 sessions could not be started on Mandriva Li-
+ nux 2007 because of a different location of fonts. The font path
+ used by this distribution is now added to the alternates font paths.
+
+- Fixed TR11D01550. Modified the collection of visuals when nxagent
+ opens a display. Now we only use the ones with the same depth than
+ the default one set in the screen.
+
+- Modified the reconnection of pict-format structures, to avoid an
+ error that arises when migrating a session by a Linux machine to
+ a Windows one.
+
+- Small changes in handling of expose events.
+
+- GraphicsExpose are no more forwarded to clients immediately. They
+ are merged with remote-only exposures and sent later.
+
+- Invalidated expose queue elements dealing with destroyed windows.
+
+- Cleaned up code in nxagentSynchronizeExpose().
+
+- Fixed TR10D01541. Now when destroing a window if lastClientWindowPtr
+ point to this window then in nxagentClearClipboard() we put nxagent-
+ ClearClipboard to NULL and lastClientStage to SelectionStageNone.
+
+- Fixed a problem with LazyLevel option that wasn't correctly read
+ from command line.
+
+- Fixed an arithmetic exception raised when the viewable corrupted
+ region is empty but not nil.
+
+- Removed the obsolete 'sss' option.
+
+- Fixed a warning related to the expose queue.
+
+- Modified the queue of exposed region to remove some memmov() calls.
+
+- Remote expose events not having entries in the queue are collected
+ in a global region and sent later, instead of being sent immediate-
+ ly.
+
+- Changed nxagentCheckWindowConfiguration() to prevent unuseful calls
+ to XQueryTree().
+
+- Fixed TR10D01530. Fixed an invalid write in doOpenFont().
+
+- Fixed some invalid write/read in nxagentVerifyDefaultFontPath().
+
+- Fixed TR10D01518. If needed, a restack is performed on the top level
+ windows in rootless mode.
+
+- Fixed TR10D01520. Reviewed session termination and log messages in
+ the case of indirect XDMCP.
+
+- In PictureCreateDefaultFormats(), cleaned the PictFormatRec struct
+ when the format is not supported.
+
+- Fixed TR09D01498. As it is possible to use multiple paths where to
+ store the fonts, now the agent concatenates all the existing font
+ paths used in various XFree/Xorg distributions to obtain a unique
+ default font path.
+
+- Fixed TR09D01502. The privates of the real pixmap are initialized
+ before trying to allocate a virtual pixmap, avoiding the possibility
+ to access an inconsistent structure in case the allocation fails.
+
+- Fixed a memory leak due to a missing deallocation of a virtual pix-
+ map's region.
+
+- Fixed TR08D01486. Removed a warning in NXrender.c.
+
+- Implemented FR08D01470. Now in the reconnection phase missing fonts
+ are replaced by the most similar picked among the available ones.
+
+- Fixed TR08D01480. A condition inside the nxagentWindowExposures
+ function was ignoring the possibility that the first region para-
+ meter could be a null region.
+
+- Fixed TR06D01409. Now NXCollectGrabPointer() is called with the
+ owner_events true in ActivatePointerGrab() .
+
+- Fixed TR03D01317. Increased the time after wich the session termina-
+ tes.
+
+- Fixed TR08D01475. In rootless, ConfigureWindow requests are only
+ forwarded to the X server, even if no window manager has been detec-
+ ted.
+
+- Fixed TR04D01367. An XKB event is sent to notify that keyboard map-
+ ping has changed.
+
+- Check the number of regions in the list before running nxagentSynch-
+ ronizeExpose().
+
+- Reduced the number of GCs used during the drawable synchronization.
+
+- Optimized the corrupted region synchronization trying to use the
+ extents is some circumstances instead of split the full region.
+
+- Checked and removed some FIXME.
+
+- Fixed TR05D01384. Xgl server uses less picture formats than nxagent
+ usually does. Now the PictFormat structures used by nxagent are fil-
+ tered with the ones available for the real display.
+
+- Fixed TR06D01410. Function nxagentRestoreAreas have to make use of
+ a GC with subwindow mode ClipByChildren for preventing from repaint
+ also children of restored window. Children are restored in a separ-
+ ate call, if they have backing store on.
+
+- Fixed TR07D01426. The cursor data were swapped in place if the dis-
+ play had different bitmap bit order. Let Xlib do this work on a copy
+ of the image, preventing from messing up the original data.
+
+- Fixed TR07D01450. Some fonts were missing in the list of available
+ fonts because the ListFonts pattern used to build this list was too
+ much generic. To build a full font list two different patterns have
+ been used.
+
+- Fixed TR07D01449. Some X clients might affect the X screen saver
+ functioning modifying the default properties. The SetScreenSaver
+ request now correctly checks the parameters changes to avoid any
+ issue.
+
+- Fixed TR07D01432. X11 sessions could not be started on Debian 'Etch'
+ because of a different location of fonts. The font path provided by
+ the Debian Policy is now added to the alternates font paths.
+
+- Fixed TR07D01437. The auto suspend timer was reset when it should
+ not.
+
+- Fixed a conditional jump on uninitialised value.
+
+- Fixed TR05D01380. Now migrating a session when display have a 16-bit
+ depth does recover all visuals, avoiding reconnection failure.
+
+nxagent-3.0.0-7
+
+- Fixed problems occurring when the main session is terminated and the
+ connection is refused to the shadow agent.
+
+- Fixed include directory order for Solaris.
+
+nxagent-3.0.0-6
+
+- The shadow agent works only in viewport mode.
+
+- Added nxagentShadowCreateMainWindow function. This function creates a
+ pixmap and a window for mirroring the display root window.
+
+- Added NXShadowUpdateBuffer() function in order to create the buffer
+ for the poller with the same sizes of the root window of the master
+ agent.
+
+- Added NXxrandr.c NXxrandr.h and NXxrandrint.h files.
+
+- If the main agent screen is resized, the shadow agent adapts to the
+ new size of the root window.
+
+- Changed option activating mirror to -S.
+
+- Removed usleep() call when the agent is suspended.
+
+- Input events are sent to the main session even if it is in sus-
+ pended state.
+
+- Updates are made from top to bottom.
+
+- Added the option IgnoreVisibility. If this option is set, PutImage
+ is not skipped when the window is fully obscured.
+
+- Added the option 'shadow' saying the display to attach.
+
+nxagent-3.0.0-5
+
+- Added the mirror mode. It is activated by -M option.
+
+- Recovered the state of keys when the agent in access mode loses
+ focus in mirror mode.
+
+- Changes to work with 16-bit depth display in mirror mode.
+
+- Changed the Imakefile in order to include NXaccess.h and NXaccess-
+ Event.h files.
+
+- The layout keyboard is passed to NXShadowCreate() function in order
+ to load the right keymap file in mirror mode.
+
+nxagent-3.0.0-4
+
+- Small changes to build on 64 bit x86 platform.
+
+nxagent-3.0.0-3
+
+- Fixes to build on Cygwin platform.
+
+- Change the order of include directories in Imakefile.
+
+- Renamed GC.h, Window.h and Pixmap.h to avoid name clashes.
+
+- Undefined NXAGENT_UPDRADE in Composite.c and NXcomposite* files.
+
+- Defined ddxBeforeReset() in Init.c.
+
+nxagent-3.0.0-2
+
+- Merged changes to NXdispatch.c, NXdixfonts.c, NXmiwindow.c, NX-
+ picture.c, NXproperty.c, NXrender.c, NXresource.c, NXwindow.c.
+
+nxagent-3.0.0-1
+
+- Opened the 3.0.0 branch based on nxagent-2.0.0-88.
+
+nxagent-2.0.0-88
+
+- Fixed a memory leak in the code handling the remote font list.
+
+- Removed some log message.
+
+nxagent-2.0.0-87
+
+- The box size is checked during the region synchronization to avoid a
+ possible arithmetic exception.
+
+nxagent-2.0.0-86
+
+- Checked the validity of the colormap in nxagentChangeWindowAttri-
+ butes().
+
+nxagent-2.0.0-85
+
+- Fixed the bad destination coordinates of shared memory pixmap synch-
+ ronization in nxagentCopyArea() and nxagentCopyPlane() functions.
+
+nxagent-2.0.0-84
+
+- Discard the Terminate Server key sequence Ctrl-Alt-BackSpace.
+
+nxagent-2.0.0-83
+
+- Added a workaround to prevent the use of an inconsistent client poi-
+ nter in the nxagentNotifyConvertFailure() function.
+
+nxagent-2.0.0-82
+
+- Fixed the parsing of option 'backingstore'.
+
+nxagent-2.0.0-81
+
+- The agent window visibility on the real X server is used together
+ with the internal state to decide if graphics operations can be
+ avoided.
+
+- When restoring areas, if the backing pixmap is corrupted, an expose
+ event is sent to the region that can't be restored.
+
+nxagent-2.0.0-80
+
+- The core protocol requests internally used to accomplish a Render
+ extension request are no longer propagated to the real X server. To
+ be more precise in this way we can save many XCreatePixmap, XChange-
+ GC and XSetClipRectangles.
+
+- Corrected a minimal incoherence in nxagentCopyArea in managing the
+ creation and deallocation of a region.
+
+- Fixed a double synchronization of an aged drawable during a put ima-
+ ge operation, due to a missing check of nxagentSplitTrap value.
+
+- Added the VisibilityChangeMask bit to the event masks.
+
+- Improved the algorithm which prevents the server client's resource
+ duplication.
+
+nxagent-2.0.0-79
+
+- Added the 'lazylevel' option usable in the command line to specify
+ how much the Agent should be lazy. The default level is 2. Each
+ level adds the following rules to the previous ones:
+
+ Level 0 The lazy is off.
+
+ Level 1 The put images are skipped if we were out of bandwidth,
+ unless that the destination drawable has an old corru-
+ pted region.
+
+ Level 2 No data is put or copied on pixmaps, marking them always
+ as corrupted and synchronizing them on demand.
+
+ Level 3 The put images over the windows are skipped marking the
+ destination as corrupted. When a copy area to a window is
+ requested, the source is synchronized before copying it.
+
+ Level 4 The source drawable is no longer synchronized before a
+ copy area, but the operation is clipped to the synchro-
+ nized region.
+
+- Implemented a dynamic synchronization mechanism, based on user ac-
+ tivity: if the input devices are not used for a variable amount of
+ time (depending from the configured link type), the synchronization
+ starts and goes on until there is enough bandwidth.
+
+- Minor fixes to the way the copy area propagates the corrupted re-
+ gion.
+
+- Whenever a put image is done, a full synchronization is forced on
+ the destination drawable if it has an old corrupted region.
+
+- During the overall synchronization a drawable is skipped if its
+ timestamp is lower than the synchronization interval.
+
+- Updated the copy plane to skip the operations from a corrupted pix-
+ map to another pixmap.
+
+- Fixed the pixmaps synchronization which was not checking the avai-
+ lable bandwidth.
+
+- In rootless mode, ConfigureWindow requests are not internally per-
+ formed for top level windows if a window manager is running. Anyway
+ they are forwarded to the X server.
+
+- Enabled the DPMS extension.
+
+- Fixed the -dpi option.
+
+nxagent-2.0.0-78
+
+- When the remote proxy supports the alpha encoding, the alpha data
+ is sent compressed. When connected to an old version, the agent
+ uses the NXSetUnpackAlphaCompat() call.
+
+- Added support for the RLE pack method.
+
+nxagent-2.0.0-77
+
+- Fixed the check for special keystrokes. State mask for Alt and Meta
+ keys are inferred from the X server modifier map.
+
+nxagent-2.0.0-76
+
+- Fixed application icon in rootless mode.
+
+- If SYNC_WHOLE_GLYPH_DRAWABLE is set in Render.c the whole drawables
+ used in the composite glyphs are synchronized. This is useful to
+ evaluate the policy we should use to minimize the put images.
+
+- Code cleanup in Pixmap.c concerning the synchronization functions.
+
+- Added the nxagentSynchronizeBox() function.
+
+- Setting a wide band link (ADSL, WAN, LAN) disables Lazy and Strea-
+ ming options.
+
+- Now the Lazy option can be switched by the Ctrl+Alt+E keystroke.
+
+- Set a timestamp on a drawable to verify how much old its data are.
+ If we didn't update it since two seconds, the put image operations
+ are not skipped.
+
+- The image data split in chunks smaller than a threshold is now mo-
+ ved from the nxagentPutImage() to the nxagentRealizeImage() func-
+ tion. If a chunk is going to be put on an hidden area of a window,
+ the operation is skipped.
+
+- Fixed the value assigned to the id of the alpha visual. Now it is
+ assigned by XAllocID().
+
+- Removed a call to XSetInputFocus() before mapping the default win-
+ dows.
+
+- Restored the backup display pointer when failing to reconnect the
+ display.
+
+- Fixed some return value in the options parser function.
+
+- Fixed the parsing of environment variable.
+
+nxagent-2.0.0-75
+
+- Optionally split the long X_RenderTrapezoid requests in multiple
+ messages to help the compression.
+
+nxagent-2.0.0-74
+
+- Fixed a bug preventing the reconnection of pictures.
+
+- Fixed the way the agent notify its start up to NX Client. Now the
+ ownership of agent atom is set before the reconnection of pixmaps.
+
+nxagent-2.0.0-73
+
+- Added a check on the display pointer in nxagentTerminateDisplay()
+ to ensure that we don't try to force an I/O error if the display
+ is already down.
+
+- The image operations now are clipped to the visible area of the
+ drawable. As this may hamper the caching algorithm, only source
+ images bigger than 32K are clipped.
+
+- Code cleanup in Render.c.
+
+- When setting SKIP_LOUSY_RENDER_OPERATIONS in Render.c the realiza-
+ tion of some operations is skipped. This is useful to determine
+ how clients (mis)use the RENDER extension to achieve even worse
+ performance than they were able to achieve using the core protocol.
+
+nxagent-2.0.0-72
+
+- Ensured that SIGUSR1 and SIGUSR2 are ignored if the NX transport
+ is not running.
+
+nxagent-2.0.0-71
+
+- Modified the following messages used to track the session state:
+
+ From: "Session: Session starting at..."
+ To: "Session: Starting session at..."
+
+ From: "Session: Session terminating at..."
+ To: "Session: Terminating session at..."
+
+nxagent-2.0.0-70
+
+- Removed the obsolete 'Info' messages related to the 'fast' versus
+ 'slow' copy area and get image modes. The -slow and -fast options
+ are now ignored as ignored are the keystrokes that allowed switch-
+ ing between the two modes.
+
+- Removed more obsolete warnings and commented the logs left around
+ for test purposes.
+
+- Removed the code in NXdispatch.c handling the fake get-image.
+
+- Removed the flags related to the use of the frame-buffer.
+
+- Major code cleanup in GCOps.c, Window.c, GC.c, Pixmap.c, Screen.c.
+
+nxagent-2.0.0-69
+
+- Added a check to avoid parsing an empty DISPLAY variable.
+
+- Added parsing of the 'streaming' option.
+
+- GetTimeInMillis() function is compiled only if DDXTIME is defined,
+ to avoid double definition errors on Solaris platform.
+
+- Messages "Suspending session..." and "Session suspended..." are not
+ printed if the DE_TERMINATE dispatch exception is set.
+
+- When synchronizing the shared memory pixmaps the image is no longer
+ put on the framebuffer.
+
+- Code cleanup in the nxagentSynhronizeRegion() function.
+
+- Added the 'lazy' option to enable or disable the lazy policy. It is
+ activated by default. At the moment this is configured at compile
+ time and can't be changed through a command line or the option file.
+
+- Fixed the counter of the corrupted backgrounds by checking if the
+ pixmap was already marked.
+
+- The option SharedPixmaps is now activated by default.
+
+- Fixed a problem when synchronizing the shared memory pixmaps with
+ the operation being erroneously skipped.
+
+nxagent-2.0.0-68
+
+- If we are doing a copy area to a pixmap and the source drawable is
+ not synchronized, the destination is marked as corrupted and the co-
+ py area request is not propagated to the X server. As a general rule
+ the source drawables are now synchronized only when they are copied
+ to a visible window.
+
+- The nxagentSynchronizeRegion() function synchronizes the region one
+ box at a time. This solves the incorrect pictures synchronization.
+
+- When a new element is added to the list of exposed region, sending
+ the synchronization request to the X server is postponed to the next
+ call of nxagentFlushConfigureWindow().
+
+nxagent-2.0.0-67
+
+- Ensured that NXTransDestroy() is called when getting rid of the NX
+ transport.
+
+nxagent-2.0.0-66
+
+- The various messages used by the NX server to control the state of
+ the session have been changed and the NX server will have to be mo-
+ dified accordingly.
+
+ At the early startup the agent will print the following message:
+
+ "Info: Agent running with pid '...'."
+
+ Followed by:
+
+ "Session: Session starting at '...'."
+
+ The ellipsis here represent the current timestamp, as reported by
+ the POSIX function ctime():
+
+ Example: Mon May 22 15:07:11 2006.
+
+ After the connection to the remote display has been established,
+ the agent will print the following message:
+
+ "Session: Session started at '...'."
+
+ This replaces the old messages:
+
+ "Info: Session started, state is [SESSION_UP]."
+
+ Or:
+
+ "Info: XDMCP session started, state is [SESSION_UP]."
+
+ And:
+
+ "Info: Entering dispatch loop with exception 0x0."
+
+ If the display connection can't be established, due to a network
+ failure, for example, the agent will exit with a fatal error, for
+ example:
+
+ "Fatal server error:
+ Error: Unable to open display 'nx/nx,options=...'."
+
+ This is a special case, as the X server is still initializing and
+ the agent can't intercept all the possible causes of errors.
+
+ When suspending the session, the agent will print one of the fol-
+ lowing messages, depending on the reason of the disconnection:
+
+ "Session: Suspending session at '...'."
+
+ Or:
+
+ "Session: Display failure detected at '...'."
+ "Session: Suspending session at '...'."
+
+ As soon as the disconnection procedure is completed, the agent will
+ notify the server with the message:
+
+ "Session: Session suspended at '...'."
+
+ This message replaces the old message:
+
+ "Session: Session suspended."
+
+ When entering the reconnection procedure, the agent will print:
+
+ "Session: Resuming session at '...'."
+
+ If the session can be successfully resumed, the agent will print:
+
+ "Session: Session resumed at '...'."
+
+ Otherwise, if the display cannot be opened or if the proxy is not
+ able to negotiate the session, the agent will return in suspended
+ mode by printing:
+
+ "Session: Display failure detected at '...'."
+ "Session: Session suspended at '...'."
+
+ At the time the session be terminated, the agent will print:
+
+ "Session: Session terminating at '...'."
+
+ Followed by:
+
+ "Session: Session terminated at '...'."
+
+ This replaces the old message:
+
+ Info: Exiting dispatch loop with exception 0x2.
+
+ The message 'Session terminated at...' should be the last message
+ parsed by the NX server. From that moment on the NX server will
+ wait the agent process to ensure that the cleanup procedures are
+ completed without errors and that the process successfully termi-
+ nates with the exit code 0.
+
+nxagent-2.0.0-65
+
+- Many improvements to the block handler and to the drawable synch-
+ ronization loop.
+
+- Anyway the synchronization loop is skipped, at the moment, to bet-
+ ter test the new copy area implementation. Also all the put-image
+ on pixmaps are skipped, so that the pixmaps are only synchronized
+ on demand.
+
+- Small fix in the put image to always use the region already allo-
+ cated when marking a region as corrupted.
+
+nxagent-2.0.0-64
+
+- The realization of the put image operations now depends on the
+ state of the link, as reported by the proxy through the synchroni-
+ zation handler. If the proxy link is aproaching a congestion, the
+ destination area of the drawable is marked as corrupted and the
+ operation is skipped.
+
+- At the moment the synchronization strategy is quite unsophistica-
+ ted. The drawables are synchronized when a timeout expires in the
+ block handler. The synchronization loop is aborted as soon as the
+ link approaches again the congestion and is restarted at the next
+ timeout.
+
+- Imported miwindow.c from the DIX layer. The code has been changed
+ to prevent miSetShape() from trying to destroy a null region. The
+ bug appears to be related to the backing store but it is unclear
+ if can also affect the sample server. The region is allocated at
+ the beginning of the function only if the backing store is set for
+ the window. Then miSetShape() calls miChangeSaveUnder(), that, in
+ turn, calls miCheckSubSaveUnder(). The latter can change the back-
+ ing store attribute of -some- windows, including, apparently, the
+ window that miSetShape() is processing. miSetShape() then destroys
+ the region if the backing store is set, but it doesn't verify if
+ the region was actually allocated. The problem is fixed by simply
+ adding a check on the pointer.
+
+nxagent-2.0.0-63
+
+- Added the nxagentDisplaySynchronizationHandler() callback. The NX
+ transport uses the callback to report when it is possible synchro-
+ nize the pixmaps and the other X objects that are corrupted or in-
+ complete.
+
+- Fixed nxagentClearSelection() to correctly validate the selection
+ owner before clearing the record.
+
+- Changed the NXGetControlParameters() call to reflect the changes
+ to the reply.
+
+nxagent-2.0.0-62
+
+- At reconnection the pixmap data is sent to the remote X server only
+ in two cases: if the pixmap is associated to a picture (glyphs, for
+ example) or if its depth is 1 (clip masks of GCs). All the other
+ pixmaps are marked as corrupted and synchronized on demand as soon
+ as the drawable is used as a source. This code is not enabled by
+ default and is currently being tested.
+
+- Implemented a new copy area function synchronizing the corrupted
+ region of a drawable before using it as a source.
+
+- Imported resource.c from the DIX. This makes possible to avoid the
+ duplication of the RT_GC, RT_FONT and RT_PIXMAP resource types.
+
+- Added the RT_NX_GC resource type and removed the old code dealing
+ with the reconnection of the GCs used by the GLX extension.
+
+- Fixed a problem in the synchronization of the window background.
+
+- Checked and removed some FIXMEs related to the streaming code.
+
+- Changed nxagentRestoreAreas() to take care of the width of the win-
+ dow's border.
+
+- Changed nxagentSaveAreas() to be independent from the window's pos-
+ ition.
+
+- Called nxagentMapDefaultWindows() before pixmaps' reconnection.
+
+- Changed nxagentMapDefaultWindows() to notify the client about the
+ agent's startup also when running in rootless mode.
+
+- Added the delete and backspace keystrokes to the routine removing
+ duplicated keys.
+
+- Wehn resizing the desktop the clip region of the children windows
+ is clipped to the new size of the root. This fixes a crash occur-
+ ring when resizing the desktop to the minimum height.
+
+nxagent-2.0.0-61
+
+- Changed the extraction of alpha channel from images to be endianess
+ independent.
+
+nxagent-2.0.0-60
+
+- nxagentReleaseSplit() now uses the NXAbortSplit() request to force
+ the proxy to discard the pending splits.
+
+- Added the value of the SharedMemory and SharedPixmaps options in
+ the log, together with the size of the shared memory segment used
+ by the remote proxy.
+
+- Fixed the compilation problem affecting the previous version.
+
+- The location of xkb base directory is checked by calling _NXGetXkb-
+ BasePath() function.
+
+- Fixed TR05D01371. nxagentVerifyDefaultFontPath() is called only if
+ the default font path is not defined on the command line.
+
+- Removed some log message.
+
+nxagent-2.0.0-59
+
+- Improved the composite text operation to synchronize the regions
+ affected by the operation instead of the whole drawable.
+
+- Updated the copy plane to better propagate the corrupted region
+ to the destination.
+
+- The background pixmaps are synchronized with a deferred strategy.
+ Tiles and stipples are still synchronized as soon as the GC needs
+ to be used.
+
+- Completed the new copy area implementation.
+
+- Shared memory pixmaps are not synchronized after a RenderChange-
+ Picture operation. This needs further testing.
+
+- Added a nxagentNotifyKeyboardChanges() function that sends a Map-
+ pingNotify event to clients when the keyboard is reloaded or re-
+ configured. The SendMappingNotify() function is not used anymore.
+ This hopefully solves the TR01D01284.
+
+- Moved the nxagentResetKeyboard() function in Keyboard.c.
+
+- Checked if the previous sibling of a window is changed before try-
+ ing to restack it. This saves the redundant window configuration
+ requests of the previous version.
+
+nxagent-2.0.0-58
+
+- Before composite glyphs operations, only areas intersecting the
+ glyphs extents are synchronized.
+
+- When a new split resource is allocated, a copy of the GC used by
+ the put image operation is created. Such copy will be safely used
+ by the commit operation even if the original GC is changed or
+ destroyed.
+
+nxagent-2.0.0-57
+
+- Region saved by the backing store and corrupted region of backing
+ store pixmaps are emptied at suspend and resume time. This makes
+ the exposures go to the clients that will redraw their windows.
+
+- Changed the nxagent root window cursor. The cursor of the parent
+ window is used instead of the default 'X' cursor.
+
+nxagent-2.0.0-56
+
+- Rewritten the state machine handling the streaming of the images.
+
+- By calling FatalError(), the normal server shutdown was skipped
+ and left the X server socket in .X11-unix. This happened also if
+ for any reason the agent couldn't complete the session startup.
+ Now the DDX abort routine, if the agent is not exiting because of
+ an exception, calls nxagentAbortDisplay() which closes down the
+ well known sockets.
+
+- Upon a failure of the reconnection procedure, if the alert shown
+ to the user by leveraging the proxy control channel is not set
+ to a valid code, the function in will use a default.
+
+nxagent-2.0.0-55
+
+- Added an explicit link flush in the display block handler. The
+ block handler should now be called by nx-X11 before entering the
+ select, not only the the agent has entered WaitForReadable() or
+ WaitForWritable().
+
+- Removed the checks on the value of the Streaming option. The way
+ a drawable is treated only depends from its previous state.
+
+- Started reimplementing the copy area operation to better propaga-
+ te the corrupted region to the destination.
+
+- Shared pixmaps are now synchronized before a copy plane operation.
+
+- The unpack alpha is discarded before the drawable synchronization.
+ This fixes the problems with the synchronization of the cursor. A
+ better way to deal with the condition is to be considered for the
+ future.
+
+- Added a check in the nxagentPutImage() function to skip the opera-
+ tion if the window is fully obscured.
+
+nxagent-2.0.0-54
+
+- Fixed a bug in nxagentPaintWindowBackground(). A region passed as
+ parameter was modified by this function and this affected subseq-
+ uent operations involving the region.
+
+- In rootless mode, the map state of a top level window is uncondit-
+ ionally reflected in the internal state when receiving a map event
+ from the real display.
+
+nxagent-2.0.0-53
+
+- Regions are marked as synchronized after an image operation if the
+ image didn't generate a split.
+
+- When an image operation takes place on a drawable which is already
+ being streamed, the resource is marked as invalid and the commits
+ are discarded.
+
+- A specific trap is used at the time a drawable is synchronized.
+
+- Fixed Render.c to use the latest streaming code.
+
+nxagent-2.0.0-52
+
+- Fixed a problem in rootless mode where some windows could have mis-
+ sed to update the mapped flag after a MapNotify event.
+
+nxagent-2.0.0-51
+
+- Realization of images is skipped, if the link is down, and a small
+ delay is introduced before returning from the image function.
+
+- Started implementing a new handler to let the agent include arbit-
+ rary data in the transport statistics. For now, only the interfa-
+ ces and the stubs exist, and the handler is not registered to the
+ proxy.
+
+nxagent-2.0.0-50
+
+- Removed the unused code in nxagentCheckPixmapIntegrity().
+
+- Instead of calling nxagentShapeWindow() immediately, windows to be
+ reshaped are added to the list of windows that have to be configur-
+ ed at later time. This allows SaveAreas() to work even when windows
+ change shape, as in the case of the "bouncing cursor" as implement-
+ ed in some versions of the KDE.
+
+- Added a missing call to nxagentFlushConfigureWindow() in the recon-
+ nection procedure.
+
+nxagent-2.0.0-49
+
+- Code cleanup in the lazy encoding. Implemented distinct utilities
+ to allocate the split resources and manage the corrupted areas.
+
+- The Render.c file is taken from the previous version because the
+ updates break the composite code.
+
+- Renamed the option 'Lazy' to 'Streaming'.
+
+nxagent-2.0.0-48
+
+- Made the image cache use the agent data, instead of allocating and
+ copying.
+
+- Fixed a memory leak in the image routines.
+
+- The image cache is freed at exit. This helps investigating other
+ eventual leaks.
+
+nxagent-2.0.0-47
+
+- Solved the problem at reconnection with lazy encoding enabled.
+
+nxagent-2.0.0-46
+
+- Solved a bug in the parsing of the pack method that made the agent
+ select an unavailable id.
+
+nxagent-2.0.0-45
+
+- Ensured that images are explicitly byte swapped before sending to
+ an X server using a different byte order. In the attempt of saving
+ an expensive operation, the previous code let the unpack procedure
+ do the job, but this could fail to work in some special cases.
+
+- Cleaned the bitmaps used for the core cursors before putting the
+ image.
+
+- Left the display error handler installed during all the lifetime
+ of the session so that other parts of the code don't have to inst-
+ all it explicitly before entering a critical Xlib routine.
+
+- Removed more unused code.
+
+nxagent-2.0.0-44
+
+- Fixed the problem with the cursor image being encoded with a lossy
+ method. The fix is a temporary. The final solution requires changes
+ to the lazy encoding.
+
+- Reworked the code dealing with the alpha visual. The color mask is
+ set based on the endianess of the remote display and is recreated
+ after a session resume.
+
+- Removed more unused code.
+
+nxagent-2.0.0-43
+
+- Corrupted regions are now correctly clipped to the visible area of
+ the drawable.
+
+- Fixed a problem with the clip mask when calculating the intersect-
+ ion of the clip region with the destination region.
+
+- Drawables involved in a composite glyph operation are now synchro-
+ nized prior to being used.
+
+- The nxagentRealizeDrawable() function is now called only for draw-
+ ables that are not already synchronized.
+
+- Pixmaps are now skipped in the synchronization loop. Synchronizat-
+ ion of pixmap is to be implemented.
+
+nxagent-2.0.0-42
+
+- Improved the algorithm removing the duplicated keys by trying to
+ read more events.
+
+nxagent-2.0.0-41
+
+- Made use of the NXFinishSplit() request to speed up the completion
+ of a pending split.
+
+- Added an explicit NX transport flush before any operation that may
+ block waiting for data from the X server.
+
+- Set the NX flush policy to deferred after reconnection.
+
+- Solved refresh problems when reconnecting in rootless mode.
+
+- Modified the routine removing duplicated arrow key events. Now the
+ routine deals with page down and page up keys as well.
+
+- Added a check for xkb base directory path, in order to support new
+ Linux distributions.
+
+- Disabled backing store support for rootless sessions, as implement-
+ ation is not very functional, yet.
+
+nxagent-2.0.0-40
+
+- Removed code related to old managing of backing store.
+
+- Added initialization of backing store by calling miInitializeBack-
+ ingStore().
+
+- Implemented nxagentSaveAreas() and nxagentRestoreAreas() functions.
+ These functions are based on fb code. Calls to XCopyArea() have been
+ added in their implementation to make them be effective also on the
+ real X server.
+
+- Instead of calling nxagentConfigureWindow() in ClipNotify() and
+ PositionWindow(), windows to be configured or mapped are added to a
+ list, together with a mask storing operation that have to be done.
+ Windows in the list will be configured or mapped later by calling
+ nxagentFlushConfigureWindow(). This avoids that windows were mapped
+ or configured before saving areas in the backing store pixmaps.
+
+- The function nxagentFlushConfigureWindow() is called before resto-
+ ring areas on the X server in nxagentRestoreAreas() and at the end
+ of ConfigureWindow and MapWindow in the DIX layer.
+
+- Blocked the NoExpose events at the proxy side.
+
+- Fixed an error in nxagentCompareRegions().
+
+nxagent-2.0.0-39
+
+- Ensured that the display errors are detected while waiting for a
+ split operation to complete.
+
+- Removed more unused code.
+
+nxagent-2.0.0-38
+
+- Changed nxagentSetCursorPosition() to avoid warping the cursor if
+ the requesting client is NULL or the serverClient.
+
+- Added a specific trap to avoid compressing an image associated to
+ a RENDER cursor using a lossy encoding.
+
+nxagent-2.0.0-37
+
+- Added a check in nxagentPaintWindowBackground() to avoid calling of
+ XClearArea() if the window is not realized.
+
+- Modified nxagentAtomNames in Atoms.c to include CLIPBOARD and TIME-
+ STAMP atoms, avoiding further calls to XInternAtom in Clipboard.c.
+
+- Solved TR04D01356. Auto repeat mode setting is no more propagated to
+ the X server keyboard.
+
+- Cleaned up the code in the routine removing duplicated arrow key
+ events.
+
+nxagent-2.0.0-36
+
+- Added the Literals.h file. For now it just contains a table used
+ to translate a request opcode to the name of the X request, to be
+ used for test purposes.
+
+nxagent-2.0.0-35
+
+- Major code rewrite in nxagentPutSubImage(). Removed support for the
+ deprecated image encodings. Ensured that padding bytes are cleaned
+ before trying to locate the image in the nxcompext cache. Avoided
+ to store the image in the cache if it is coming from a XVideo or
+ GLX operation.
+
+- Added support for the new RGB image encoder. This allows the agent
+ to use the simplest encoding by still separating the alpha channel
+ from the image data.
+
+- Added the missing check in nxagentRedirectWindow() verifying that
+ use of the composite extension is enabled.
+
+- Updated to use the new NXCleanImage() function.
+
+- Removed more debugging output.
+
+nxagent-2.0.0-34
+
+- Updated to use the 'what' parameter in NXFlushDisplay().
+
+- Removed the duplicated arrow key events from the event queue.
+
+- Solved the TR04D01355. The X11 agent now tries to locate the
+ fonts.dir file in the misc directory, to verify the validity of
+ the font path.
+
+- Added a check in nxagentChangeClip to avoid creating a new clip
+ mask if the old clip mask matches the former.
+
+- Use the 'fixed' font to replace fonts that are not found a the
+ display reconnection. This should overcome one the most common
+ sources of troubles when migrating the session to a different
+ display, and constitute the base for improving the algorithm
+ trying to match a substitute font.
+
+- Implemented the FR04D01360. Now the user can enable/disable the
+ streaming of the images by using the option 'streaming'.
+
+- Implemented the FR04D01358. The backing-store can be enabled or
+ disabled by using the option 'backingstore'.
+
+- Forced the reconnection routine to call the IOError handler in
+ the case the display cannot be opened.
+
+nxagent-2.0.0-33
+
+- The GetImage requests in 'slow' mode are now served by retrieving
+ the content of the drawable from the frame buffer.
+
+- Replaced a call to XQueryExtension() by one to XRenderQueryExten-
+ sion(). This function caches previous QueryExtension requests. This
+ partially implements FR01D01275.
+
+- At reconnection, the keyboard is reset only if the keyboard option
+ has been changed.
+
+- Fixed the fonts reconnection procedure. Now the remote fonts list
+ is refilled before fonts reconnection and after failed fonts
+ reconnection, so as to store the correct list of available fonts.
+
+- Added a check in nxagentLoadQueryFont to look up selected font in
+ the list of available fonts. This check avoid filling FontStruct
+ with invalid data.
+
+- Added TIMESTAMP to handled selection targets.
+
+nxagent-2.0.0-32
+
+- Implemented FR03D01323. Added the 'clipboard' option to enable or
+ disable copy and paste operations from the user's desktop to the NX
+ session or vice versa. This option can take four values:
+
+ client The content copied on the client can be pasted inside the
+ NX session.
+
+ server The content copied inside the NX session can be pasted
+ on the client.
+
+ both The copy & paste operations are allowed both between the
+ client and the NX session and viceversa.
+
+ none The copy&paste operations between the client and the NX
+ session are never allowed.
+
+nxagent-2.0.0-31
+
+- Implemented FR03D01337. Now the X11 agent is able to read the op-
+ tions from different places according to the following order: the
+ DISPLAY variable, the options file, the command line.
+
+- Implemented FR03D01347. Added 'composite' to parsed options.
+
+- Always activate shared memory support in the remote X server proxy.
+
+- Modified nxagentCopyArea for the case the source is a shared memory
+ pixmap. The pixmap on the X server is not synchronized, but the con-
+ tent of the shared pixmap mantained by the agent is placed directly
+ on the destination drawable. This allows to skip the following Copy-
+ Area operation.
+
+nxagent-2.0.0-30
+
+- Added the missing flush of the Xlib buffer at the beginning of
+ the block handler.
+
+nxagent-2.0.0-29
+
+- Changes in the block and wakeup handlers to queue multiple reads
+ and flush the link on demand.
+
+- Removed the unused code in Control.h and Control.c. Renamed the
+ files as Client.h and Client.c.
+
+- Added support for the '-nocomposite' command line option.
+
+nxagent-2.0.0-28
+
+- Moved the composite code to Composite.h and Composite.c.
+
+- Redirected the top-level windows when running in rootless mode.
+
+nxagent-2.0.0-27
+
+- When the composite extension is supported by the remote display,
+ the agent window is redirected to the off-screen memory of the
+ X server.
+
+- Imported Xcomposite.c, Xcomposite.h and xcompositeint.h from the
+ 3.0.0 branch to be able to activate the off-screen redirection of
+ the top level windows.
+
+- Added Composite to the list of agent options. The default is to
+ use the composite extension, when available.
+
+nxagent-2.0.0-26
+
+- Avoided to suspend the clients on excess of karma or after a get
+ input focus request.
+
+- Images are now split only when the agent is in congestion state.
+
+- Moved all the image related functions from GCOps.h and GCOps.c to
+ Image.h and Image.c.
+
+- Removed the unused includes in GCOps.c and Image.c.
+
+- Added the karma delay field to the NXGetControlParameters() call.
+
+- Renamed placeholder.xpm as nxmissing.xpm. Renamed the Icon.h file
+ as Icons.h. Added there a define to point at nxmissing.xpm in the
+ include.
+
+nxagent-2.0.0-25
+
+- Implemented the FR03D01334. Option keyboard is now a synonym of
+ option kbtype.
+
+nxagent-2.0.0-24
+
+- Ensured that the split procedure is completed before executing a
+ render operation that required a synchronization of a shared mem-
+ ory pixmap.
+
+- Added the appropriate checks to avoid synchronizing the same sha-
+ red memory pixmap multiple times.
+
+nxagent-2.0.0-23
+
+- Imported changes to NXrender.c and NXshm.c in the files for the
+ 3.0.0 port.
+
+nxagent-2.0.0-22
+
+- Implemented FR03D01331. Options shpix and shmem enable/disable the
+ use of shared pixmaps and shared memory extension.
+
+- Implented handling of value "query" for nxagentKbtype. This value
+ is passed by the NX client for MacOSX. If value of nxagentKbtype is
+ "query" or NULL we init keyboard by core protocol functions reading
+ the keyvoard mapping of the X server. The property _XKB_RULES_NAMES
+ is always set on the root window with default values of model and
+ layout.
+
+- Fixed TR11C01223. When the XDM connection can't be established the
+ agent creates an alert to notify the user that XDM session failed
+ to start.
+
+- Changed Clipboard.c to fix invalid read errors in nxagentGetClip-
+ boardWindow() function.
+
+- Implemented FR11C01218. Modified Font.c introducing the new function
+ nxagentLoadQueryFont, this function loads the font_struct struct
+ locally instead of sending a QueryFont request.
+
+- Modified nxagentListRemoteFontsfunction to fill nxagentFontList
+ struct with all remote fonts, avoiding further calls to XListFonts.
+
+- Added two functions, nxagentFreeRemoteFontList and nxagentFreeFont,
+ used in disconnect phase to empty the nxagentFontList struct and
+ the cached FontStruct elements, respectively.
+
+nxagent-2.0.0-21
+
+- Updated to include the remote proxy version in the NXGetControl-
+ Parameter reply.
+
+- Updated to use the NXDisplayFlush() and NXSetDisplayPolicy() int-
+ erfaces.
+
+nxagent-2.0.0-20
+
+- NXInitDisplay() and NXResetDisplay() are called at the time we
+ open or close the display, to let nxcompext set up its internal
+ structures.
+
+nxagent-2.0.0-19
+
+- Activated the streaming of the images even in the case of a link
+ type LAN.
+
+- In NXmiexpose.c, if the number of rectangles in an exposed region
+ exceeds 4, we let a predicate function decide if it is better to
+ send the window extents, rather than the rectangles in the region.
+
+- Added the NXAGENT_SERVER define in the Imakefile. It will be used
+ in future to mark all the modifications made to files we imported
+ from other layers.
+
+- Removed the warnings from NXmiexpose.c.
+
+nxagent-2.0.0-18
+
+- Imported NXmiexpose.c in the agent code.
+
+- Removed NXmiwindow.c from the agent code. We now use the original
+ miwindow.c
+
+- Removed the static qualifier from the _NXFontPath definition.
+
+- Started implementing the new lazy encoding mechanism. For each of
+ the drawables, the agent will create a "corrupted" region and will
+ try to synchronize the drawable when there is bandwidth available.
+ This is a work in progress.
+
+- Implemented the function nxagentFbOnShadowDisplay. This is a test
+ facility which opens a window on the display showing the content
+ of the agent's framebuffer.
+
+nxagent-2.0.0-17
+
+- The image streaming procedure is now activated also when using a
+ link of type LAN.
+
+- Removed the call to NXTransDestroy() in nxagentCloseDisplay. The
+ NX transport is now implicitly shut down by either NXForceDisplay-
+ Error() or XCloseDisplay().
+
+- Updated to comply with the new NX function prototypes introduced
+ in nxcomp-2.0.0-31.
+
+nxagent-2.0.0-16
+
+- Fixed a bug in the nxagentModifyPixmapHeader function that was
+ causing some glyphs to be displayed incorrectly.
+
+- Implemented the test function nxagentPixmapOnShadowDisplay, useful
+ to display a pixmap on the real screen to check its consistency.
+
+nxagent-2.0.0-15
+
+- Ensured that, before restarting a client after a no-split, all the
+ pending image commits are executed.
+
+- Installed the display error predicate function before trying to
+ open the display even at session startup. This prevents the agent
+ from disappearing silently if a failure occurs before the display
+ initialization is completed.
+
+- Moved the initialization of the callback functions in Display.c.
+
+- Added some interfaces to manipulate the callbacks and the error
+ handlers and verify the state of the display flags.
+
+nxagent-2.0.0-14
+
+- Implemented stub versions of the nxagentDisplayCongestionHandler()
+ and nxagentDisplayBlockHandler() callbacks. See nx-X11-2.0.0-17.
+
+- Added the nxagentDisplayErrorPredicate() function. In combination
+ with changes implemented in nx-X11-2.0.0-16, this allows the agent
+ to abort a blocking operation and shutdown the display in a timely
+ fashion if a signal or any other error condition is received insi-
+ de Xlib.
+
+- Modified nxagentWaitSplitEvent() to use XIfEvent() as we can trust
+ the proxy to either send the event or give up the proxy connection.
+ The function will also give up when an error condition is raised,
+ like for example a session termination requested by the user.
+
+- Removed any remaining reference to the unused display buffer and
+ image cleanup functions.
+
+- Fixed exposures problems when reconnecting.
+
+- Solved TR05C00896. The problem was due to window manager utilizing
+ zero-thick-lines drawing requests. These drawing operations are now
+ performed by calling fbPolySegment() instead of miPolySegment(),
+ which doesn't handle the zero-thick-lines drawing case.
+
+nxagent-2.0.0-13
+
+- Improved the management of the expose events. We now create the
+ fake window used to keep the agent synchronized with the X server
+ only once, instead of creating and configuring a different window
+ for each generated region.
+
+- A warning is printed if the changes requested for the fake window
+ don't match the changes reported in the subsequent ConfigureNotify
+ event.
+
+- Imported previous changes in NXevents.c into the 3.0.0 port.
+
+nxagent-2.0.0-12
+
+- Activated the image streaming also during the reconnection. This
+ makes possible to leverage the remote disk cache.
+
+- Ensured that all clients are restarted when the session is suspen-
+ ded. This is required because the proxy is gone but we may have
+ some client still waiting for the completion of a split procedure.
+
+- Skipped the reset of the keyboard device if the display breaks at
+ the time it is being reconnected.
+
+- As the reset of the keyboard may have failed before we were able
+ to set a valid DeviceIntPtr, also added a check in ProcessPointer-
+ Event(), in NXevents.c to verify that the state of the display is
+ valid before accessing any of the device members. This is to be
+ better investigated.
+
+nxagent-2.0.0-11
+
+- Solved TR02D01298. The clip region associated to the current glyph
+ was not updated because the serial number of the virtual pixmap
+ pointed by the picture was not incremented.
+
+- Imported the NXmiglyph.c file from render directory.
+
+- Removed the patch added in the release 1.3.2-6 temporary fixing this
+ problem.
+
+nxagent-2.0.0-10
+
+- Various improvements the wakeup procedures.
+
+- Implemented the FR10C01110. Now, the X11 agent manages both the
+ PRIMARY and CLIPBOARD selections. It is possible copy and paste text
+ also by using Ctrl+C and Ctrl-V.
+
+- Modified NXdispatch.c in order to correctly include header files.
+
+- More cosmetic changes and code cleanup.
+
+- Imported changes into the files for the 3.0.0 port.
+
+nxagent-2.0.0-9
+
+- Rewritten the procedures suspending and resuming the clients in
+ Control.c. This solves a problem with clients that were restarted
+ at wrong time and should ensure that multiple events for the same
+ client are correctly handled.
+
+- Removed the calls to NXSetUnpackGeometry() setting the parameters
+ for the client 0. The geometry is now set only at the right time,
+ just before trying to unpack the image.
+
+- Removed the sample code using the NXTransChannel() interface.
+
+nxagent-2.0.0-8
+
+- Added test code showing how to open a new NX channel by using the
+ NXTransChannel() interface.
+
+- Streaming of images is not attempted in the case of link LAN.
+
+- Added preliminary code to the tell the proxy to flush the link if
+ the agent is idle.
+
+- Imported changes from nx-X11-2.0.0-14 in NXdixfonts.c.
+
+nxagent-2.0.0-7
+
+- Modified exposures managing: agent synchronizes both with remote X
+ server and remote window manager for every generated region. Synch-
+ ronization is reached sending a ConfigureWindow request for a fake
+ window created on purpose. This way the exposures for the resulting
+ region coming from calculating the difference between local region
+ and the remote region are sent to clients in order to avoid duplica-
+ ted refreshes.
+
+- Improved new algorithm for managing exposures in order to work pro-
+ perly also in rootless mode: added privates to windows in order to
+ get information about mapping of windows on remote X server and vi-
+ sibility state too. This way local exposures are replaced by remote
+ ones if windows are mapped only for agent or windows are not fully
+ visible. This solves TR08C00971.
+
+- Window attributes values about backing store and save-under are re-
+ spectively set to NotUseful and False when creating a window on re-
+ mote X server and ignored when a client requests to change these
+ attributes.
+
+- Removed a no more needed function call to generate exposures when
+ resizing windows.
+
+nxagent-2.0.0-6
+
+- Updated the NoMachine copyright notices.
+
+nxagent-2.0.0-5
+
+- Added handling of font reconnection failure. In case of failure in
+ reconnecting some font, the agent adds the font server connection
+ forwarded by nxcomp to the font path of the X server.
+
+- Fixed TR09C01022. Moved the handling of the session states into
+ main cycle. The session states are not more handled into SIGHUP and
+ IOError handlers but into nxagentHandleConnectionStates() called in
+ nxagentWakeupHandler().
+
+- In ResizeChildrenWinSize(), privates storing window geometry are
+ updated even if the call to PositionWindow() is skipped. This have
+ to be done because the window is moved by the X server accordingly
+ with window gravity. This prevent some window positioning error on
+ the real display evidenced with OpenOffice and GNOME.
+
+nxagent-2.0.0-4
+
+- Solved TR12C01234. In some conditions Alt-F4 keystroke made the user
+ unable to open the Gnome Menu panel. This was due to the agent dis-
+ carding KeyRelease events for Alt-F4 and Alt-F2.
+
+- Undefined TEST and DEBUG in Dialog.c
+
+- Changed the NXAGENT_VERSION define from 1.5.0 to 2.0.0
+
+- Caching and streaming of images is now disabled when dispatching
+ requests from the GLX and XVideo extensions.
+
+- Added the NXxvdisp.c and NXglxext.c files. These files are needed
+ to intercept calls to the XVideo and GLX extensions. Only files
+ in the main directory are imported. Files in the X directory, used
+ for the 3.0.0 port, for now are empty.
+
+- Added the nxagentXvTrap and nxagentGlxTrap flags. These flags are
+ set when dispatching requests from the XVideo and GLX extensions.
+
+- Added the GL and Xext include directories to the Imakefile to be
+ able to compile the NXxvdisp.c and NXglxext.c sources.
+
+- Modified the NXrender.c and NXshm.c files to set the nxagentGCTrap
+ nxagentRenderTrap and nxagentShmTrap even when dispatching requests
+ from swapped clients. Files for the 3.0.0 port are not updated.
+
+nxagent-2.0.0-3
+
+- Solved a problem in the export of WM_SIZE_HINTS properties in root-
+ less mode on 64 bit machines.
+
+- Modified Render.c in order to correctly process Xrender header fi-
+ les on 64 bit machines.
+
+- Made changes in order to compile the agent in the Cygwin environ-
+ ment.
+
+- Renamed the files Time.* to Millis.*
+
+- Specified the relative path of some included header files.
+
+- In the Imakefile added a new include paths order related to the
+ Cygwin environment to avoid name clashes.
+
+- Disabled the MIT-SHM extension in the Cygwin environment.
+
+- Fixed TR11C01186. Added -timeout item to the usage message.
+
+- Fixed TR08C00945. Scrolling a document in Firefox caused image left-
+ overs with animated banners. Set the right window gravity on windows
+ created in the real X server. Let X move children for us accordingly
+ with window gravity attribute, without dix interferences.
+
+- Removed logs related to parsing of the options file.
+
+- Modified dialogs in order to show the name of the session in the
+ caption.
+
+nxagent-2.0.0-2
+
+- Imported changes up to nxagent-1.5.0-112.
+
+- Fixed TR12C01241. The failure condition returned by the XQueryTree
+ function is managed in order to avoid the subsequent errors.
+
+- Fixed the TR11C01165. X11 sessions could not be started on Ubuntu
+ 5.10 because of the different location of fonts. Now we check the
+ existence of the fonts directory pointed by the default XF86 and
+ X.org font path and, if the directory does not exist, we use the
+ alternate font path used on Ubuntu.
+
+- Set the default value of DeviceControl option to False before resu-
+ ming a session.
+
+- Added a warning message printed if reset of keyboard fails at recon-
+ nection.
+
+- Fixed TR11C01185. Solved by checking if there are windows iconized
+ when a window is destroyed.
+
+- Fixed TR11C01164. The xkbcomp process used LD_LIBRARY_PATH as it was
+ a child of the agent. Added a call to NXUnsetLibraryPath() in Init.c
+ in order to remove LD_LIBRARY_PATH before executing a child process.
+
+- Check if there are windows iconized before terminating a rootless
+ session.
+
+- Modified CHANGELOG to include reference to fixed TRs TR08C00967 and
+ TR08C00969. Removed some typo.
+
+- Fixed TR11C01194. The agent crashed if launched with -kb option.
+
+- Fixed TR10C01042. The keyboard didn't work if the session migrated
+ from Apple X server to another platform and viceversa. This has been
+ solved by initializing the keyboard device whenever the session is
+ resumed. This feature can be disabled by the new option -nokbreset.
+
+- Fixed some compilation error arising if TEST was enabled in the file
+ Keyboard.c.
+
+- Fixed TR11C01167. During the disconnection the font structures poin-
+ ted by the font cache were freed leaving inconsistent data in the
+ corresponding privates. Now they are nullified and the GCs are che-
+ cked to guarantee a correct font handling in the suspended state.
+
+nxagent-2.0.0-1
+
+- Opened the 2.0.0 branch based on the 1.6.0-11.
+
+nxagent-1.6.0-11
+
+- Updated the NX.original copies of files in X directory.
+
+- Merged the NX changes:
+
+ - From dix/extension.c to NXextension.c.
+ - From dix/dixfonts.c to NXdixfonts.c.
+ - From dix/glyphcurs.c to NXglyphcurs.c.
+
+- Export of CARDINAL properties are expanded to 64 bit units on 64
+ bit machines.
+
+- Solved a segmentation fault when handling configure notify events
+ in rootless mode on 64 bit machines.
+
+- Merged the NX changes from dix/property in X/NXproperty.c.
+
+- Correctly allocated the local variable used in the call to NXGet-
+ CollectedInputFocus to be of 64 bit on 64 bit machine.
+
+- Defined symbolic constants XlibWindow in order to propertly handle
+ export property on 64 bit machine.
+
+- Moved the XlibAtom define from Atoms.h to Agent.h.
+
+- Modified export properties of type Window and Atom in order to han-
+ dle correctly Window and Atom types on 64 bit machines.
+
+- Removed some invalid read in Atom handling code when compiled for 64
+ bit, due to mismatched size of Atom type between Xlib and Xserver
+ code.
+
+- Modified some header files in order to properly see the correct pro-
+ totypes of some Xlib structures on 64 bit machines.
+
+- The variable currentDispatch is always defined.
+
+- The dispatch current time is updated, this way the initial timeout
+ can elapse and the splash window is removed.
+
+nxagent-1.6.0-10
+
+- Imported changes from nxagent-1.5.0-103.
+
+- Removed some redundant redeclarations.
+
+- Merged the NX changes from randr/randr.c to NXrandr.c.
+
+- Removed some warnings in NXrandr.c.
+
+- Removed NXAGENT_FORCEBACK and NXAGENT_INTERNALBS code.
+
+- Added ddxInitGlobals function in order to compile with the new X.org
+ tree.
+
+- Converted nxagentSynchronizeShmPixmap from macro to function to
+ solve a graphical render problem caused by the variable's scope.
+
+nxagent-1.6.0-9
+
+- Imported changes from nxagent-1.5.0-102
+
+- Fixed TR10C01124. Function nxagentSetPictureFilter() filled the log
+ with a debug message.
+
+- Removed a debug message in Events.c.
+
+- Run function nxagentSetTopLevelEventMask() only in rootless mode.
+
+- In the Java application IntelliJ the dropdown menus was shown in a
+ wrong position when the main window was moved or minimized. The
+ problem is solved for KDE desktop environment.
+
+- Fixed TR08C00967, TR08C00969, TR08C00941. Our incomplete implementa-
+ tion of the MIT-SHM X11 extension was a problem for some applica-
+ tions using the Shared Memory Pixmaps. Now the extension support has
+ been completed, so the nxagent can handle the Shared Memory Pixmaps
+ requests. Introduced some changes in the render implementation to
+ synchronize the content of the Shared Memory Pixmaps with the X ser-
+ ver before performing the ChangePicture and Composite operations.
+
+nxagent-1.6.0-8
+
+- Fixed TR09C01028. The problem was the GC foreground was not updated
+ on the X server. This was due to the private fields was not copied
+ from a GC to another in the function nxagentCopyGC(). Added macro
+ nxagentCopyGCPriv in GC.h.
+
+- Solved TR11C01162. Removed the dialog shown by nxcomp/nxagent when
+ the resume of a session is happening over a slow link.
+
+nxagent-1.6.0-7
+
+- Imported changes up to nxagent-1.5.0-100.
+
+- Fixed some compilation errors.
+
+- Fixed a typo in nxagentChangeClip() declaration.
+
+- Fixed TR10C01040. After the session resume the applications using
+ OpenGL were not correctly resumed because some GCs were not recon-
+ nected. Now we save these GCs in a safe vector, so we can't lose
+ them.
+
+- Improved font reconnection procedure in order to take advantage of
+ new font channel provided by nxcomp. If resuming session fails be-
+ cause missing fonts, the font channel provided by nxcomp is added
+ to font paths of X server. After reconnection succeded the font
+ channel is removed from font paths.
+
+- In the Java application IntelliJ the dropdown menus remained opened
+ and shown in a wrong position when the main window was moved or
+ minimized. This problem has been solved by sending a sinthetic event
+ to client. This solves partially TR09C01012.
+
+- In the same application the caret was not shown in the text window.
+ Solved the problem by setting nxagentGCTrap before calling a MI
+ function in every GC operations.
+
+- Merged the NX changes:
+
+ - From render/glyph.c to NXglyph.c.
+ - From Xext/shm.c to NXshm.c.
+ - From render/render.c to NXrender.c.
+ - From mi/miwindow.c to NXmiwindow.c
+ - From render/glyphstr.h to NXglyphstr.h.
+ - From render/picturestr.h to NXpicturestr.h.
+ - From render/picture.c to NXpicture.c.
+ - From dix/dispatch.c to NXdispatch.c.
+ - From dix/events.c to NXevents.c.
+
+- Changed picturestr.h glyphstr.h to remove some formatting changes
+ compared to the original files.
+
+- Disabled Xinerama extension in order to fix a type conflict in NX-
+ dispatch.c.
+
+- The current directory has been moved in front of the include dire-
+ ctory list.
+
+- Removed NXAGENT_FORCEBACK code in files imported from DIX.
+
+- Changed NXshm.c NXrandr.c NXproperty.c NXpicture.c NXglyphcurs.c
+ NXglyph.c NXextension.c NXrender.c NXdixfonts.c NXdispatch.c NXmi-
+ window.c to remove some formatting changes compared to the original
+ files.
+
+- Added copyright notice to file NXrandr.c.
+
+- All files, except those from mi and dix, compile fine in the new
+ tree. Problems remain with different size of Atoms and other XID
+ objects.
+
+- More compilation fixes for the new tree.
+
+- Merged the NX changes from dix/window.c to NXwindow.c.
+
+- Changed NXwindow.c and NXevents.c to remove some formatting chan-
+ ges compared to the original files.
+
+- More compilation fixes aimed at porting the agent to the new tree.
+
+- Started porting the agent to the 6.8.99.16 X.org tree.
+
+- Lot of compilation fixes aimed at building in the new environment.
+
+- Files imported from the X.org tree's dix and mi will have to be
+ recreated in the nxagent/X directory. The new files will be inclu-
+ ded and built from the nxagent/X director if the NXAGENT_UPGRADE
+ symbol is defined (as it is the case when building in the 2.0.0
+ nx-X11 tree), otherwise the usual NX* files in the nxagent's dir-
+ ectory will be compiled.
+
+- Fixed TR09C01021. SIGHUP it was not received from the proxy. The
+ handler of SIGHUP must be installed also in the case of not persi-
+ stent sessions.
+
+- In non persistent case: if session is normally running, SIGHUP sig-
+ nal is dealt like SIGTERM, otherwise it is passed to the proxy.
+
+- Fixed TR09C01027. Changed function nxagentHandleConfigureNotify()
+ in order to get changes of the staking order in a rootless session
+ even if no window manager is running.
+
+- Fixed TR09C01025. The problem was XView application could be unable
+ to respond to user's input. Modified the Event Mask for non top le-
+ vel windows reparented by the root window. Set the input member of
+ XWMHints to communicate the window manager the keyboard focus model
+ used by the application.
+
+- Fixed TR09C01026. Added 'fast' and 'slow' to the set of accepted
+ command line parameters. 'fast', 'slow' and 'geometry' command line
+ parameters have precedence regarding the options file.
+
+- Fixed TR08C00968. There was a problem in the implementation of the
+ render extension.
+
+- Fixed TR09C01016. In rootless mode when the session was resumed,
+ the cursor was shown with a wrong shape.
+
+- Fixed TR09C01011. Allowed clients to monitor the root window for
+ structure redirect, button press and resize redirect events in root-
+ less mode. This is a quick hack to make the java bean shell work
+ flawlessy with the agent.
+
+- Solved TR08C00961. Improved the algorithm updating the sprite win-
+ dow. Now it is updated based upon crossing and motion event. Since
+ on some X server, like Windows and MacOsX X servers, the only cros-
+ sing event is not a reliable method to trace the sprite window chan-
+ ges.
+
+- Fixed TR08C00966. Solved the problem on Windows when a rootless
+ session is suspended and some of the application windows are
+ minimized.
+
+- Fixed TR08C00960. Updated the internal screen dimension in rootless
+ sessions at reconnection.
+
+- Fixed TR09C01005. The problem was that the 'render' option on the
+ command line was overridden by the one provided in the options file.
+
+- Implemented the HandleEmptySplitEvent function that synchronizes all
+ the drawables after the depletion of the split store, when the lazy
+ option is activated.
+
+- Some changes in order to avoid duplicated refreshes when display-
+ ing Mandrake's kde menu.
+
+- Changed level of some logs from WARNING into TEST in Window.c and
+ in Rootless.c.
+
+- Fixed TR08C00958. Changed the log message printed when the user re-
+ quest to resume the session.
+
+nxagent-1.6.0-6
+
+- When reconnecting, try to estimate the shift on the main window due
+ to WM reparenting.
+
+- In the handling of configure events, if a WM is running save the po-
+ sition of the main window only if event is synthetic.
+
+nxagent-1.6.0-5
+
+- Command line option -noshmem disables shared memory extension in the
+ agent.
+
+- Changed level of some logs from WARNING into TEST.
+
+nxagent-1.6.0-4
+
+- Some changes in order to improve handling of expose events in root-
+ less. The GetInputFocus request is not sent after reconfiguring a
+ top level window: window manager intervention could give race condi-
+ tions. The request is placed in WindowsRestructured() in order to be
+ sure it is sent after any event that could generate expose.
+
+- Zero lenght change property are now imported in rootless mode.
+
+- Corrected few typos.
+
+- Replaced the function usleep with NXTransContinue when NX transport
+ is running.
+
+- Changed the session state to GOING_DOWN as soon as the reconnection
+ is failed.
+
+nxagent-1.6.0-3
+
+- Updated rootless toplevel window map when a window is reparented to
+ the root window.
+
+- Renoved duplicated entry in rootless toplevel window map.
+
+nxagent-1.6.0-2
+
+- Removed TEST and DEBUG in Color.c.
+
+- Removed a compilation error in Atoms.c if DEBUG is enabled.
+
+- Removed invalid read at server reset in rootless mode, now the a-
+ toms description are duplicate before that we cache them.
+
+- Now the local atom in the atom cache are reset when exiting from
+ the dispatch loop.
+
+nxagent-1.6.0-1
+
+- Opened the 1.6.0 branch based on nxagent-1.5.0-87.
+
+nxagent-1.5.0-87
+
+- Corrected the enable-disable lazy encoding dialog in order to show
+ the correct keystroke Ctrl-Alt-E.
+
+nxagent-1.5.0-86
+
+- Reset agent position at reconnection when the new size of display
+ doesn't match the old size and fullscreen is on.
+
+- Inserted a comment about handling of expose events.
+
+nxagent-1.5.0-85
+
+- If fullscreen and resize options are true when reconnecting, geo-
+ metry option is ignored and the root window is resized to the en-
+ tire screen.
+
+- Read the position of the main window at startup from geometry op-
+ tions.
+
+nxagent-1.5.0-84
+
+- Changed the keystroke Ctrl-Alt-L to toggle the image encoding on
+ and off to the new combination Ctrl-Alt-E.
+
+- Enabled the keystroke Ctrl-Alt-M to minimize the root window also
+ in window mode.
+
+nxagent-1.5.0-83
+
+- Replaced the call to XIfEvent() with something less efficient but
+ safer, based on XCheckIfEvent(). The previous version might never
+ return if an I/O Error was encountered waiting for the event. The
+ new version fails gracefully, and returns after having restarted
+ the client.
+
+nxagent-1.5.0-82
+
+- Removed some debug logs.
+
+nxagent-1.5.0-81
+
+- Forced window mode if X server geometry has changed at reconnection.
+
+nxagent-1.5.0-80
+
+- Reset resize desktop at startup flag before reconnection.
+
+nxagent-1.5.0-79
+
+- Removed race condition in the parsing order of the options parame-
+ ter, now the geometry parameters are set in screen initialization.
+
+nxagent-1.5.0-78
+
+- Disabled auto-resize and viewport mode dialog in case of rootless
+ session.
+
+- Removed no more used -backingstore option from usage messages.
+
+- Modified -bs command line option: now the default value "when_re-
+ quested" is always set.
+
+- Fixed wrong size of root window when switching from full screen to
+ window mode and viewport navigation mode is enabled.
+
+- Added option that solved a minimize bug in LeaveNotify when the
+ root window is in full screen and the user is using viewport navi-
+ gation mode.
+
+- Forwarded HUP signal to NX transport, when session state is up and
+ running.
+
+nxagent-1.5.0-77
+
+- Do PutImage in every case. Don't check if the drawable is synchro-
+ nized.
+
+- Do CopyArea, CopyPlane, Composite in every case, don't check whether
+ the source is dirty.
+
+nxagent-1.5.0-76
+
+- Terminate rootless session 15 seconds after the last mapped window
+ has been destroyed.
+
+nxagent-1.5.0-75
+
+- Ctrl-Alt-T shows suspend/terminate dialog also in rootless mode.
+
+- Sleeps 50 ms in the block handler if the session state is down.
+
+- In rootless mode, the focus window is changed following FocusIn
+ events received from the real X server, also in the case no win-
+ dow manager has been detected.
+
+nxagent-1.5.0-74
+
+- Changed the alerts names to comply with nxcomp-1.5.0-57.
+
+- Moved loading of placeholder from startup to the first time it is
+ needed.
+
+- Corrected a typo in the CHANGELOG.
+
+nxagent-1.5.0-73
+
+- Ignored put image on not synchronized drawables, when the image
+ doesn't cover the entire surface.
+
+- Added parsing of render parameter in option file.
+
+- Ignored I/O Error when session is suspended.
+
+- Managed I/O Error at reconnection.
+
+nxagent-1.5.0-72
+
+- Fixed offset of the default window at reconnection and after switch-
+ ing from fullscreen in window mode.
+
+- Suppressed the -lazy command line option.
+
+- Made some slightly changes in GCOps.c and Pixmap.c in order to com-
+ ply with the new 'Lazy' option.
+
+- Avoided to do CopyArea, CopyPlane and Composite operations when the
+ source drawable is dirty.
+
+- Rootless disconnect dialog has changed. This dialog is launched
+ after some time the last window has been closed.
+
+- Ignored geometry changes at reconnection if resize at startup is
+ not set.
+
+- Removed reset of the offset of the root window in viewport mode at
+ reconnection.
+
+- Fixed some refreshes problems in viewport mode and in desktop resize
+ mode.
+
+- Fixed a memory leak in nxagentWindowExposures().
+
+- Added predicate to nxagentDispatchEvents.
+
+- Implemented framework in order to wait for a free resource entry,
+ when calling the asynchronous Collect* functions.
+
+nxagent-1.5.0-71
+
+- Added keystroke Ctrl+Alt+L switching lazy encoding option.
+
+- Disabled viewport movement in resize mode.
+
+- Changed agent geometry at screen resize.
+
+- Changed agent geometry at initialization.
+
+nxagent-1.5.0-70
+
+- Restored the set of blocked signal after the dialog pid just laun-
+ ched has been stored.
+
+- Removed an already fixed FIXME.
+
+- Updated the copyright message.
+
+nxagent-1.5.0-69
+
+- Started working at the integration of the lazy encoding functiona-
+ lity. Made the agent draw the placeholder if the image is split and
+ never suspend the client. There is no provision for synchronizing
+ the drawables yet.
+
+- Made the lazy encoding configurable by the new 'Lazy' option.
+
+- Updated to include the changes in the NXStartSplit() and NXCommit-
+ Split() requests.
+
+- This version requires nxcomp-1.5.0-55 and nxcompext-1.5.0-16.
+
+nxagent-1.5.0-68
+
+- Fixed reconnection of iconified windows.
+
+- Ignored the X server's scratch pixmap at reconnection.
+
+- The desktop gets automatically resized at reconnection if the desk-
+ top resize option is enabled.
+
+- Added the resize option in nxagentProcessOptionsFile() to allow the
+ user to change the geometry of both the root and the default window
+ at reconnection.
+
+- Fixed max size of the default window at startup when auto-resize
+ mode is enabled or in the case of a reconnected session.
+
+- Made some minimal changes in Atoms.c and NXdispatch.c.
+
+nxagent-1.5.0-67
+
+- Changed handling of expose events received from real X server. A re-
+ gion is composed from expose events by checking the count field.
+
+- Reimplemented the exposures managing. Now the GetInputFocus request
+ is sent after a window has been configured or unmapped. We use a
+ vector to store windows originating expose events while waiting for
+ the reply to GetInputFocus.
+
+nxagent-1.5.0-66
+
+- Added the DisplayLatency value in the agent options. This is int-
+ ended to give a hint about the latency of the current display
+ connection. The value is currently used to determine if the agent
+ is running across a slow link, and so it's appropriate to display
+ the begin-reconnection alert.
+
+nxagent-1.5.0-65
+
+- Added the DesktopResize option. It controls the behaviour of the
+ automatic (RandR) resize of the desktop when dragging the agent's
+ window border.
+
+- Automatic resize is again the default.
+
+- Disabled the test logs in Events.c, GCOps.c Pixmap.c, Handlers.c,
+ Reconnect.c.
+
+- More cosmetic changes and code cleanup.
+
+nxagent-1.5.0-64
+
+- Rewritten the image streaming procedure to better leverage the new
+ infrastructure. The start-split/end-split procedure is always init-
+ iated by the agent, including when the size of the image is below
+ the threshold, but the client is only suspended when the split has
+ taken place in the NX transport.
+
+nxagent-1.5.0-63
+
+- Updated image streaming to use the new NX notification events.
+
+- Removed the references to the NXSync() operation, not used anymore
+ by the agent.
+
+nxagent-1.5.0-62
+
+- Fixed wrong position of the root window in case of viewport naviga-
+ tion mode.
+
+- Added a field to the client private to trace the client type.
+
+- Tracked which clients are nxclient dialogs in order to not run the
+ pulldown dialog on them.
+
+nxagent-1.5.0-61
+
+- Disabled server reset if not needed by XDMCP.
+
+- Disabled persistence for indirect XDMCP session until the first gre-
+ eter with the list of host has disappeared.
+
+- Created a small data structure to contain information about integri-
+ ty status and placeholder status of a drawable.
+
+- Modified the call to nxagentRealizeOnePixmap function in order to
+ avoid errors during the signal handling.
+
+nxagent-1.5.0-60
+
+- Added the XDMCP option. If both Rootless and XDMCP are selected the
+ session will fail.
+
+nxagent-1.5.0-59
+
+- Limited the permission to reset the agent only to indirect XDMCP
+ sessions, only one reset is allowed.
+
+- Fixed max size of the default window when switching from fullscreen
+ to window mode and auto-resize is disabled.
+
+nxagent-1.5.0-58
+
+- Enabled reset mechanism, in order to make XDMCP session work proper-
+ ly.
+
+- Added XSync for window manager detection, after a server reset since
+ the XInternAtom already used should be cached.
+
+- Now the pixmap status is always tested on real pixmap.
+
+- The placeholder is drawn only once per drawable.
+
+- Implemented nxagentUnmapWindows() in case of failed reconnection if
+ the session was running in fullscreen mode and NX transport is not
+ enabled.
+
+- In nxagentPutSplitImage(), passing leftPad to XCreateImage().
+
+- This version avoids sending the XSync() to the remote when a large
+ amounts of GetInputFocus requests are issued by the same client.
+ It will require more testing, especially to verify how it works on
+ old Windows machines.
+
+- Changed the NXCommitSplit() call to comply with the new interface.
+
+- The drawable status is now propagated on graphic operations where
+ the source is using the tile and stipple components on the graphic
+ context and the tile or stipple are not synchronized. This affects
+ the following operations:
+
+ - PolyLines
+ - PolySegment
+ - PolyRectangle
+ - PolyArc
+ - FillPolygon
+ - PolyFillRect
+ - PolyFillArc
+ - PolyText8
+ - PolyText16
+
+nxagent-1.5.0-57
+
+- Removed two XSync() operations at screen initialization.
+
+- Modified keyboard initialization in order to load the correct rules.
+ This is choosen according to the vendor string of X-Window system in-
+ stalled on the local machine.
+
+- Corrected a few typos.
+
+- When the NX transport is present, the failed reconnection dialog is
+ launched on the remote X server by using the NXTransAlert() function.
+ The same dialog is managed by NXTransDialog() when a session is run
+ by connecting directly to the display.
+
+- Removed the function nxagentUnmapAllWindows().
+
+nxagent-1.5.0-56
+
+- Set the parent window for the pulldown dialog.
+
+nxagent-1.5.0-55
+
+- Added an alert at the time the reconnection procedure begins. The
+ alert is shown only when the NX transport is present and the link
+ type is not LAN and is removed at the end of the resume operation.
+
+- Removed the former code used for testing the alert functionality.
+
+- Moved the function removing the splash window in Splash.c.
+
+nxagent-1.5.0-54
+
+- Fixed initialization of window privates storing exposed regions.
+ This solves a bug affecting the refresh of windows introduced in
+ nxagent-1.5.0-42.
+
+- Added a STARTING state to nxagent. Until the agent is in this state
+ the suspension mechanism is not activated.
+
+nxagent-1.5.0-53
+
+- Added the special keystroke Ctrl+Alt+R to enable or disable the
+ auto-resize mode.
+
+- A dialog notifies the user when the auto-resize mode is toggled.
+
+- Added a test alert at startup, to verify that NXTransAlert() is
+ working as expected.
+
+nxagent-1.5.0-52
+
+- Changed the code to call NXTransDialog() and NXTransExit().
+
+nxagent-1.5.0-51
+
+- Solved a bug that prevented the clients that had been restarted
+ to be immediately selected for input.
+
+- Removed some code that was added for debugging.
+
+nxagent-1.5.0-50
+
+- Fixed a memory leak in nxagentHandleExposeEvent().
+
+- Fixed a memory leak in nxagentDestroyWindow().
+
+- Now rootless dialog is launched only when last mapped window is
+ deleted, since we have pulldown window to control the session.
+
+- Added pulldown dialog to handle NX windows in rootless sessions.
+ This dialog is activated from a "magic" slice of window under the
+ top border.
+
+- Solved a problem with sessions that might fail at reconnection.
+
+- Now the message text of the dialog launched in case of failed re-
+ connection explains the reason why the agent cannot be resumed.
+
+- Implemented function nxagentUnmapAllWindows() to unmap all windows
+ if nxagent has failed to migrate the session to the new display.
+
+nxagent-1.5.0-49
+
+- Fixed the problems with propagation of the drawable status.
+
+- Modified nxagentPutSplitImage in order to set the correct height
+ of the last split image.
+
+- Code cleaning and optimization in Dialog.c.
+
+- Solved bug that switched on the full screen state in rootless se-
+ ssion.
+
+- Changed the way dialog caption are set in rootless mode. It is set
+ upon the session name or session id value.
+
+- Corrected the function nxagentFailedReconnectinDialog().
+
+nxagent-1.5.0-48
+
+- Solved bug that switched on the full screen state in rootless se-
+ ssion.
+
+- Changed the way dialog caption are set in rootless mode. It is set
+ upon the session name or session id value.
+
+- Corrected the function nxagentFailedReconnectinDialog().
+
+nxagent-1.5.0-47
+
+- Now we call NXContinueOnDisplayError() with value 1 just after
+ having opened the display. This will cause the NX Xlib to return
+ in the case of an I/O error, instead of quitting the application.
+
+- Removed the references to Context.h and the related elements.
+
+- Reflected the changes occurred in NXlib.c regarding NXDisplayErr-
+ ror() and inverted the logic compared to NXDisplayIsValid().
+
+- Added a dialog box to notify the user when nxagent has failed to
+ migrate the session to the new display. Because the main X agent
+ connection is unavailable, this dialog uses the auxiliary nxcomp
+ keyboard channel.
+
+- Disabled the special keystroke Ctrl+Alt+S if any dialog is already
+ running.
+
+- Started implementing lazy synchronization of pixmaps. At the pre-
+ sent moment the implementation doesn't try to perform any optimi-
+ zation on the windows' regions that have to be redrawn and neither
+ it checks the congestion state. After having synchronized a reaso-
+ nable number of pixmaps, it simply sends to all the affected win-
+ dows an expose event, mandating the repaint of the whole area.
+
+- Removed a warning in Atoms.c.
+
+nxagent-1.5.0-46
+
+- Removed the longjmp() at the time an I/O error was encountered on
+ the display.
+
+nxagent-1.5.0-45
+
+- Removed UNDEFINED status for drawables.
+
+- Now lazy encoding affects only windows.
+
+- Changed the block handler to call NXTransFlush() with 'if needed'.
+
+nxagent-1.5.0-44
+
+- After reconnection, stored exposed regions are reset and the manag-
+ ing of duplicate expose events is restarted.
+
+- Detection of window manager has been moved to the start of screen
+ initialization. Screen dimensions and fullscreen option are over-
+ ridden if no window manager is detected.
+
+- Added a call to XSync() in switching fullscreen function in order
+ to synchronize it with the network behaviour.
+
+- Started adding provision for deferred writes in the NX transport.
+ When the flush policy will be set accordingly, X data accumulated
+ by the proxy will be written to the network under the control of
+ the block and wakeup handlers.
+
+- Fixed a bug in nxagentCopyArea(). In some cases, pixmap drawables
+ was erroneusly supposed to be windows. This produced invalid reads
+ when trying to access to fields of WindowRec structure.
+
+nxagent-1.5.0-43
+
+- In the code managing the property notify events, NXCollectProperty
+ is not called if the window is not found in the tree mantained by
+ the agent.
+
+- Changed managing of screen resize in order to avoid repeated resize
+ of desktop. The agent sleeps one second, then all configure event
+ are read from the queue and the server connection. The desktop re-
+ size is performed after the last read configure event.
+
+- Changed nxagentImportProperty() in order to use NXCollectProperty
+ instead of XGetWindowProperty. This avoids many round-trips in root-
+ less mode.
+
+- Fixed Invalid write problem in nxagentRRSetScreenConfig().
+
+nxagent-1.5.0-42
+
+- Modyfied test of NXSetUnpackGeometry for visuals, so now the compa-
+ rison between visuals is based on their IDs and not on the memory
+ area allocated for their visual structure.
+
+- Modified exposure managing in order to avoid duplicated refreshes.
+ Now only exposed regions not formerly managed yet are sent to the
+ clients.
+
+nxagent-1.5.0-41
+
+- Modified nxagentCloseScreen() in order to free the frame buffer.
+
+- Added information of the integrity of the windows. Now the integrity
+ has became a drawable property that will expand in every drawable to
+ drawable operation.
+
+nxagent-1.5.0-40
+
+- Splitting of images now happens only if the display is a valid con-
+ nection.
+
+- The isItTimeToYield flag is now set in the dispatcher only when the
+ client has been actually suspended because of a karma, a sync, or
+ a split operation.
+
+nxagent-1.5.0-39
+
+- Improved the handling of the PutImage request to offer provision
+ for splitting images coming from orders generated by extensions.
+
+- Fixed a problem with clients being unexpectedly restarted instead
+ of waiting for the end of split.
+
+nxagent-1.5.0-38
+
+- Added a persistent dialog when agent is running in rootless mode.
+
+- Modified the policy of management of nxclient dialogs.
+
+- Fixed memory leak problem in nxagentPutSplitImage().
+
+- Modified printing of some debug messages to avoid passing a null
+ pointer to fprintf().
+
+nxagent-1.5.0-37
+
+- Implemented initial support for streaming the packed images in the
+ handling of the MIT-SHM extension.
+
+nxagent-1.5.0-36
+
+- Updated the pixmap status when a placeholder is copied on the pix-
+ map and when the pixmap is the target of a RENDER composite opera-
+ tion.
+
+- Solved the TR05C00900. The NX transport was forced to be set when-
+ ever the display name contained the nx prefix.
+
+- Implemented the FRSA052393. Removed the compression filters applied
+ by nxagent to cursor pixmaps.
+
+- Modified RANDR implementation to make the user able to resize the
+ desktop by simply dragging the agent window's border. Screen resize
+ is made after a small timeout, to give time to the last configure
+ event to come from the server and avoid multiple re-configurations
+ of the screen.
+
+nxagent-1.5.0-35
+
+- Added the current screen size to the set of sizes returned by the
+ RANDR extension.
+
+nxagent-1.5.0-34
+
+- Corrected the placeholder xpm image.
+
+- Added a client dialog to notify the user that nxagent is running in
+ fast or in slow mode after pressing Ctrl + Alt + S.
+
+- Modified RANDR implementation to give a set of screen sizes. Im-
+ plemented functions actually performing screen resize on a RANDR
+ request. Now toggling to fullscreen make the desktop cover the en-
+ tire screen area.
+
+nxagent-1.5.0-33
+
+- Added an auto-disconnect feature similar to the one present in the
+ Windows Terminal Server. The feature is modeled on the built-in X
+ server's screen-saver. If the agent doesn't receive any input from
+ the user in a given timeout, it will either terminate the session,
+ if no client is connected to the display, or will suspend it, so
+ that applications will be left running.
+
+- The default is to disable the auto-disconnect option. The feature
+ is activated by specifying a "-timeout s" parameter on the command
+ line, with s being the timeout in seconds. The minimum allowed ti-
+ meout is 60 seconds.
+
+- The waitpid() call now only checks the agent's own children.
+
+- Moved the longjmp() context declaration to a new Context.h file to
+ avoid clash with redefinitions by the PNG headers.
+
+- Few other cosmetic changes.
+
+nxagent-1.5.0-32
+
+- Added a check on the type of the connection to avoid cleaning the
+ images when not needed.
+
+nxagent-1.5.0-31
+
+- Modified the placeholder frames, now it has a left top black border
+ and a bottom right grey one.
+
+- Modified fbShmPutImage() in order to set the correct size for the
+ temporary pixmap.
+
+- Modified nxagentForceExposure() and nxagentHandleExposeEvent() in
+ order to clip exposed regions to the window size region of the root
+ window.
+
+- Added a new placeholder xpm image.
+
+- Corrected few typos.
+
+- Added function to synchronize GC tiles and stipples whenever those
+ pixmaps have been realized.
+
+nxagent-1.5.0-30
+
+- Hidden viewport windows to clients in QueryTree request in order
+ to make work XDMCP properly.
+
+nxagent-1.5.0-29
+
+- Removed some warnings with gcc 3.4.
+
+- Added desktop -D switch to usage.
+
+- Paint window background draw on framebuffer only with OpenOffice
+ client.
+
+- Now fast copy are and fast getimage are no more set according to
+ the link type, their default value has been set to true.
+
+nxagent-1.5.0-28
+
+- Modified nxagentUpdateViewportFrame() in order to solve a refresh
+ problem. Windows composing the external frame must be always on top
+ to be sure that agent sends expose events for every window.
+
+- In rootless mode agent doesn't export anymore the properties when
+ disconnected from the X server.
+
+- Changed the way agent check if the connection with the X server
+ is available. Instead of using a state machine it uses the display
+ flag.
+
+- Removed the SIGTERM handling function in persistent code. We don't
+ need anymore those function since agent is no more sleeping when
+ disconnected.
+
+- Implemented nxagentFreePropertyList() function in order to empty the
+ list of exported properties when the rootless agent is disconnected.
+
+- Added special keystroke Ctrl + Alt + S toggling between fast and
+ slow mode for GetImage and CopyArea.
+
+- Added missing handling of down arrow key in Keystroke.c.
+
+- Modified nxagentForceExposure() in order to intersect exposed re-
+ gions with the clip region of the root window. This prevents window
+ functions from painting outside the frame buffer.
+
+- Added the field usesFrameBuffer in struct nxagentPrivClient. Modifi-
+ ed GC funtion and DoGetImage() in order to write in the frame buffer
+ only if usesFrameBuffer is True.
+
+- Removed code performing PutImage in the frame buffer, as it is use-
+ less at the moment.
+
+- Modified ProcChangeProperty() to check WM_NAME property.
+
+- Added a piece of code in nxagentOpenScreen() checking for and remo-
+ ving duplicated visuals.
+
+- Added the Dialog.c Dialog.h files. Unified all calls to NXDialog,
+ and blocked SIGCHLD before calling in order not to get the signal
+ before the child pid has been stored.
+
+- Modified the algorithm that disconnect the running session in
+ order to avoid the opening of a new dialog box for closing or
+ suspending the nxagent.
+
+nxagent-1.5.0-27
+
+- Changed the disconnect/reconnect procedure in order to have a pro-
+ per default colormap vector when session is suspended, solving a
+ segmentation fault in create window function.
+
+- Corrected few errors in slow copy area mechanism.
+
+- Modified screen initialization in order to allocate memory for the
+ internal frame buffer.
+
+- Modified some GC functions for writing to and reading from the frame
+ buffer.
+
+- Modified nxagentCreateWindow() for initializing the window in the
+ frame buffer.
+
+- Modified nxagentCreateColormap() in order to use the default visual
+ if a matching one is not found.
+
+- Modified function DoGetImage() in order to call nxagentGetImage() in
+ place of nxagentGetDefaultImage() if fast option is on.
+
+- Added nxagentCheckWindowIntegrity() function verifying the matching
+ between the internal frame buffer and the X server for a window.
+
+nxagent-1.5.0-26
+
+- Added the property "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR" to the list
+ of exported property in rootless mode, in order to let clients use
+ the system tray.
+
+- Modified import of WM_STATE properties in rootless mode in order
+ to better handle null resources.
+
+- Enhanced the slow CopyArea mechanism in case of one part of the
+ image is out of the X server screen or out of nxagent screen.
+
+- Changed type for variables width and height of default window
+ from 'unsigned int' to 'int'.
+
+nxagent-1.5.0-25
+
+- Added a new signal handler for SIGCHLD. The transport is set to
+ forward the signal (by means of a new NX_SIGNAL_FORWARD action).
+ This allows the agent to wait for its own children.
+
+nxagent-1.5.0-24
+
+- Set up the RANDR extension. When querying the configuration, the
+ clients get 3 sizes, the first being the current size, the second
+ being the maximum size of the remote display, the third being the
+ minimum size (arbitrarily set to 100x100 pixels). Screen sizes in
+ millimeters are calculated based on the size reported for the real
+ display.
+
+ An example of xrandr -q output is below:
+
+ SZ: Pixels Physical Refresh
+ *0 800 x 600 ( 270mm x 203mm )
+ 1 100 x 100 ( 33mm x 33mm )
+ 2 1400 x 1050 ( 474mm x 356mm )
+ Current rotation - normal
+ Current reflection - none
+ Rotations possible - normal
+ Reflections possible - none
+
+ As you can note, reflections and rotation is not possible.
+
+- Set up the GLX extension. This provides basic support with GLX op-
+ erations being translated into core X protocol primitives.
+
+- Moved initialization of GLX and RANDR to the Extensions.c file.
+
+- Removed the references to the unused mfb library. Modified Screen.c
+ to allocate the right privates for the fb code.
+
+- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs
+ and avoid including mfb/libmfb.a.
+
+nxagent-1.5.0-23
+
+- Fixed an incorrect buffer length calculation when retrieving a re-
+ mote property.
+
+- Added a check to avoid the use of a NULL pointer when changing the
+ window cursor.
+
+- Implemented a function to lookup the remote pixmaps.
+
+- Changed the RENDER initialization messages.
+
+- Corrected a few typos in symbol names.
+
+nxagent-1.5.0-22
+
+- Added the nxagentNeedConnectionChange() macro.
+
+- Small optimizations in the block and wakeup handlers.
+
+nxagent-1.5.0-21
+
+- NXCollectGrabPointer() is called by passing nxagentDefaultClient().
+ This is a macro that checks the validity of requestingClient and,
+ if the pointer is NULL, defaults to NXNumberOfConnections - 1.
+
+nxagent-1.5.0-20
+
+- Replaced all calls to XGrabPointer with the asynchronous version
+ provided by nxcompext.
+
+- In DeactivatePointerGrab() function, mouse button state is set to
+ up if the window entered by the pointer is the root window and the
+ agent is in rootless mode. This change is needed because the sub-
+ sequent KeyRelease event could be not received by the agent (for
+ example if the focus had left the window), so that agent could be
+ unable to update the mouse button state.
+
+- In rootless mode, grabs exported to X in ActivatePointerGrab() are
+ always made asynchronous. The synchronous behaviour is implemented
+ by the agent, so that requiring a further synchronous grab down to
+ the real X server is of little use and potentially harmful.
+
+- Modified function XYToWindow() in order to manage the case that
+ mouse pointer is located on the title bar of a top level window in
+ rootless mode.
+
+- Reflected name changes to NXImageCache variables.
+
+nxagent-1.5.0-19
+
+- Changed the implementation of the SIGHUP handler to forward the sig-
+ nal to the proxy only when appropriate. This allows nxagent to close
+ the NX connection without having to go through an I/O error on the
+ display.
+
+- Modified nxagentBreakXConnection() to check if the NX transport is
+ running and thus use NXTransDestroy(). Using a simple shutdown() may
+ not work, for example if NX is using the memory to memory transport.
+
+- Added the -D option, to let users specify that agent must be run in
+ desktop mode. This is presently the default.
+
+nxagent-1.5.0-18
+
+- Set the PropertyChange mask on input/output window in rootless mode
+ in order to get the PropertyNotify events.
+
+nxagent-1.5.0-17
+
+- Cleaned of the reconnection routines, removed the NXAGENT_RECONNECT
+ macro.
+
+- Now the SIGHUP handler forwards the signal also to the NX transport.
+
+- Moved the NXTransDestroy() call in the closure of the display, so
+ we can avoid going through the I/O error handler.
+
+- Removed an invalid free in the function that closes the display.
+
+- Commented out more code in Display.c to avoid the segfault on exit.
+
+- In rootless mode, now function XYToWindow() starts search from the
+ last window originated an EnterNotify event. In this way, we can
+ prevent shaded windows from getting mouse events.
+
+- The variable to disable the smart scheduler is set at its definition
+ instead of setting it in the Dispatch function. This avoids the call
+ to SmartScheduleInit.
+
+- Changed implementation of cursor visualization in rootless mode. We
+ made the cursor attributes changes go transparently to the X server
+ while in desktop mode we ignore any client request to change the cu-
+ rsor on the X side, and we just set the cursor on the default window
+ any time the pointer cross a window border.
+
+- Expanded the range of properties exported on the remote Xserver,
+ this way we export properties whose atom name starts with "WM_" and
+ "_NET_".
+
+- In Rootless mode PropertyChangeMask is added to top level window in
+ order to get PropertyNotify Events.
+
+- First implementation in rootless mode of nxagentImportProperty fun-
+ ction with which after reception of PropertyNotify Events, all chan-
+ ging properties coming from external clients such as Window Manager
+ will be imported in agent windows.
+
+- Changed the GetEventMask function in order to handle the InputOnly
+ windows that need to be notified of property changes in rootless
+ mode.
+
+nxagent-1.5.0-16
+
+- Implemented the -B command line switch, to let nxagent impersonate
+ a "pure" proxy on the NX server side (that is without X connections
+ having to be managed by the nxagent's dispatcher). Such a "nxagent
+ -B" is going to replace the corresponding nxproxy process that in
+ previous version of NX server was run with the same options.
+
+- When running nxagent in 'bind' mode the X port where the the proxy
+ has to listen for connection must be specified after the -B option.
+ The other NX options must be passed in the DISPLAY environment.
+
+ Example:
+
+ nxagent -B :9
+
+- The initialization procedure will check that the display included
+ on the command line matches the one specified in the NX display
+ options.
+
+ For example, given the command:
+
+ nxagent -B :9
+
+ The NX options must be something like:
+
+ DISPLAY=nx/nx,link=modem:9
+
+ This allows users to find out which display the agent is impersona-
+ ting by running a 'ps' and inspecting the command line.
+
+- Fixed a bug preventing the proxy's ClientMessage to reach the right
+ function when activating rootless mode.
+
+- Removed unused function nomachineLogo.
+
+- Code cleaning and soem optimizations in Rootless.c.
+
+- We want to import all properties changed by external clients to our
+ internal windows. But we must ignore property notify generated by
+ our own requests. For this purpose we implement a list to record
+ every change property that we dispatch. This way when processing
+ a property notify we can distinguish between the notify generated
+ by our request and those generated by an 'outside client'.
+
+- In rootless mode, optimized window configurations mantaining inter-
+ nal stacking order.
+
+- Fixed focus troubles in rootless mode. Now focus window is set fol-
+ lowing FocusIn events.
+
+- In rootless mode, now fake KeyRelease events on FocusOut are sent
+ only if keys having down state are modifiers. This prevents from
+ sending key events to a wrong client.
+
+- Removed unused function nxagentRootlessNextSibling in Rootless.c.
+
+- Removed unused function nxagentRootlessStackingOrder in Rootless.c.
+
+- Fixed compilation error if TEST log is enabled in Events.c.
+
+- Changed Options variables to comply with NX naming rules.
+
+- Some additional cosmetic changes.
+
+nxagent-1.5.0-15
+
+- Modified functions nxagentPutImage and DoGetImage for XYPixmap fo-
+ rmat.
+
+- Completed implementation of shared memory extension.
+
+- Implemented a mechanism that prevents monitoring of SubStructure-
+ Redirect ResizeRedirect and ButtonPress events by any clients simu-
+ lating the presence of a window manager running inside the agent.
+
+- Added debug functions in order to check the status of syncroniza-
+ tion between the pixmaps residing on the X server and the local
+ framebuffer ones.
+
+- Changed the policy used when realizing all the pixmaps in 'lazy en-
+ coding' mode so that the agent now switches to 'eager' policy.
+
+- Fixed the routine handling the pixmaps realization: pixmaps with
+ an invalid id are not processed anymore.
+
+- Solved a bug in the routine taking care of clearing the NoMachine
+ logo: the state of the background was set to 'pixel' without de-
+ stroying an eventual backround pixmap.
+
+- Solved a bug in the 'MakeRootTile' function: the value returned by
+ 'AddResource' was not interpreted in the correct way causing the
+ function to bail out without drawing the NoMachine logo and set-
+ ting the background state to Pixmap.
+
+- Renamed PlaceHolder.c to Lazy.c and PlaceHolder.h to Lazy.h.
+
+- Inserted a test feature that cleans the framebuffer pixmaps when
+ they are created.
+
+nxagent-1.5.0-14
+
+- Changed some reconnection messages.
+
+- Now the disconnect procedure is called also after an IO Error is
+ received.
+
+- The rootless agent now doesn't filter anymore keystrokes combina-
+ tion related to desktop feature, like viewport navigation the full-
+ screen state and minimization.
+
+- In rootless mode, internal stacking order is updated by comparing
+ the stack of top level windows mantained by the X server with the
+ one mantained by the agent. A global configuration of windows is
+ performed from top to bottom through the stack.
+
+- In rootless mode, map state of top level windows is kept up to date
+ by managing map and unmap events.
+
+- In rootless mode, enter events are managed to keep track of top
+ level window position. It is very useful for managing differences
+ among window manager behaviours. It should be reimplemented follo-
+ wing the advice given in ICCCM 4.1.5.
+
+- In rootless mode, requests of configure top level windows are di-
+ rectly forwarded to the real X server. Internal configuration is up-
+ dated when configure events are managed by the agent. In order to
+ mantain internal stacking order up to date, a query tree request is
+ performed on the real root window.
+
+- Added viewport navigation by Ctrl + Alt + keypad arrows.
+
+- Fixed wrong internal configuration of agent top level windows, while
+ agent runs in rootless mode with metacity window manager.
+
+- Fixed segmentation fault in nxagent running in rootless mode with
+ OpenOffice.
+
+- Fixed wrong internal stacking order of drop down menus of firefox
+ with nxagent in rootless mode.
+
+nxagent-1.5.0-13
+
+- Fixed compilation problem on solaris.
+
+- Modified the modify pixmap header function. Previously this function
+ has been modified in order to solve a glyph problem, enlarging both
+ the pixmaps dimensions by four. Corrected the misbehaviour that
+ modify the pixmaps dimension even if the caller doesn't want to
+ change it.
+
+nxagent-1.5.0-12
+
+- Fixed erroneous behaviour of Root Window in fullscreen mode caused by
+ wrong value of XSpan and YSpan.
+
+- Fixed wrong clients' position at Reconnection in Rootless mode,
+ setting offset and WinGravity fields in XsizeHints structure.
+
+- Fixed segmentation fault on closing windows that stay always on top.
+
+- Moved the handling of configure notify events in the appropriate
+ functions, and cleaned it.
+
+- In rootless mode, internal stacking order of top level windows is
+ mantained up to date by monitoring events from window manager top
+ level windows.
+
+- Modify the creation of screen at reconnection for detecting an
+ eventual failure.
+
+- Removed export of window properties on the X server in desktop mode.
+
+- Changed the events mask for client's window set on the X server.
+ We don't use anymore the window mask choosen by clients. In rootless
+ mode for a top level window we use the default event mask and for a
+ child only the exposure mask.
+
+nxagent-1.5.0-11
+
+- Restored default event mask at reconnection.
+
+- Fixed abnormal behaviour in rootless mode if application windows are
+ close to the lower and right bounds of the screen. This trouble was
+ due to the wrong size of the agent root window.
+
+- Fixed abnormal behaviour in rootless mode for mouse button events if
+ the application window is not fully contained in the screen.
+
+- In rootless mode, exposed region are extended a few to take in ac-
+ count border width offsets caused by window managers.
+
+- In rootless mode, grab pointer requests from clients are forwarded
+ to X server. This makes application able to close their pop up win-
+ dows on a pointer event.
+
+- Fixed wrong position of the agent root window after resize of main
+ window.
+
+- Changed the size of viewport frame windows in order to avoid re-
+ freshing problems.
+
+nxagent-1.5.0-10
+
+- Handled the Client messages on rootless mode.
+
+- Initializations of event masks have been moved in a unique group of
+ functions.
+
+- Disabled the SmartScheduler in dispatcher as it seems to affect the
+ responsiveness of nxagent.
+
+- Modified the block and wakeup handlers. We could have left data to
+ write to our display connection when entering in WaitForSomething()
+ so we now flush everything before entering the select() and let the
+ proxy do all the buffering.
+
+- Fixed the wakeup handler to match the correct prototype.
+
+- Few cosmetic changes.
+
+- Inserted a test feature that cleans the framebuffer pixmaps when
+ they are created.
+
+- Adjusted pixmap status information in almost every gc operations.
+
+- Removed a warning for usleep not defined on Suse 9.0.
+
+- Adjusted pixmap status information in copy plane operations.
+
+- Throwed fatal error if on lazy encoding the place holder pixmap
+ couldn't be loaded.
+
+- Removed the static path to xpm file in place holder initialization.
+
+- Removed useless signal handler initialization multiple times.
+
+- Refined validation of atoms in the atom cache code.
+
+- Corrected few errors in atom cache initialization.
+
+- Added a primitive atom cache that mantain the map between internal
+ and external atoms.
+
+- Window properties export began on the X server side in rootless
+ mode, this way nxagent open the communication between local clients
+ and the window manager on the X server.
+
+nxagent-1.5.0-9
+
+- Fixed wrong position of the main window in case of maximizing in
+ window mode.
+
+- Set the correct scan line lenght for XYPixmap created in PutImage
+ and GetImage.
+
+- Removed a segmentation fault in GetDefaultImage. The problem arose
+ because the XYPixmap created with a data storage taking in account
+ of only some planes instead of all the depths planes. Despite XPut-
+ Pixel was treating the image as a complete XYPixmap of that depth.
+
+- Removed MapWindow Error at reconnection caused by wrong value of
+ IconWindow.
+
+- Now nxagent_WM_START is intialized as soon as the Atoms are
+ queried.
+
+- Removed Geometry restrictions.
+
+- Changed the configuration of the agent window in window mode.
+
+- The agent window is correctly reconnected even if is resized.
+
+nxagent-1.5.0-8
+
+- Updated copyright notices.
+
+- Removed a segmentation fault in font cache cleaning routine. The
+ problem arise when the session is disconnected and the font struct
+ are not allocated.
+
+- Used the return mask of XParseGeometry to correctly set only the
+ parameters that are involved.
+
+- Unified the initialization of all the geometry related parameters.
+
+- Updated the offset of the four viewport frames windows at recon-
+ nection.
+
+- Changed the way the geometry parameter is used. Now the first time a
+ session is started it set the internal dimension of the agent root
+ window, afterwards it only affects the dimension of the external
+ window on the X server.
+
+- Corrected splash screen offset at reconnection in fullscreen mode.
+
+- Agent can be launched in fullscreen mode and his geometry can differ
+ from the X server geometry.
+
+- Now Width and Height options are used to store geometry of the
+ default window even on fullscreen mode, and to restore the correct
+ dimension when switching back to window mode from fullscreen
+ we added two more options.
+
+- Removed an error in the move viewport procedure that didn't upgrade
+ the offset of the internal root window when the external root win-
+ dow was maximized.
+
+- Unified the initialization of all the geometry related parameters.
+
+- The window manager detection procedure is now started whenever there
+ is an attempt to minimize the fullscreen window or to pass to window
+ mode.
+
+- Function's optimization for detecting if WM is running.
+
+- Switching to window mode has been disabled when the window manager
+ is not running.
+
+nxagent-1.5.0-7
+
+- Now background pixel is not reset at reconnection.
+
+- Now geometry is parsed also as a command line parameter.
+
+- Fixed wrong offset of the root window after a reconnection in case
+ of window mode.
+
+- Fixed wrong geometry of the nxagent window after a reconnection
+ in case of window mode.
+
+- Fixed wrong position of the main window after a reconnection in
+ case of fullscreen mode.
+
+- Fixed refreshing windows problems in viewport navigation. Four in-
+ visible windows are created around the agent window to automatica-
+ lly generate exposure when the viewport frame is moved or a windows
+ come out from the non visibile part of the agent window.
+
+- We need to store the GC records in a list that will be freed in case
+ the reconnection succed and will be restored in case of failure. We
+ have to do this because we cannot destroy the GC records in the
+ disconnect or reconnect procedure, because this way we couldn't
+ recover from a disconnection or a reconnection failure.
+
+- Rewritten the reconnection procedure. Since we cannot be sure
+ that the reconnection will succed we cannot destroy the display
+ structure, so we postpone the closing of the previous display
+ with the creation of the new connection.
+
+nxagent-1.5.0-6
+
+- Adjusted usage list in order to show the R parameter for rootless
+ mode.
+
+- Added handling of display parameter to option file.
+ Corrected few typos error, in option file parsing.
+
+nxagent-1.5.0-5
+
+- Removed error that prevented the realization of cursor in eager
+ mode.
+
+nxagent-1.5.0-4
+
+- Fixed abnormal behaviour of termination dialog, after the keystroke
+ Ctrl + Alt + T.
+
+- Fixed segmentation fault in function parsing option file.
+
+- Fixed various errors on eager encodings.
+
+- Added lazy command line switch in order to switch lazy encoding
+ on.
+
+- Code cleaning.
+
+- Implemented a signal to switch between two pixmap
+ realization policies.
+
+- Corrected an error while defining pixmaps status.
+
+- Implemented a debug feature, consisting in a method that pushes
+ the synchronized realization of all the pixmaps.
+
+- Began implementation of place holders in replacing of images while
+ they are being loaded.
+
+- Performed some changes on spreading of pixmaps status information
+ on copy area.
+
+- Began implementation of lazy encoding.
+
+- Changed version to 1.5.0.
+
+nxagent-1.5.0-3
+
+- Removed the option -nogetimage (FRSA052305).
+
+- Code cleaning in Font.c.
+
+- Removed NXAGENT_FONTMATCH macro.
+
+- Removed NXAGENT_FONTCACHE macro.
+
+- Handled the ReparentNotify event we get when in rootless mode
+ ours window are reparented from the window manager. Inserted
+ fake windows to take account of this new parents.
+
+- Removed the redirection of client message in rootless mode, and
+ the configuration of the WM_PROTOCOLS properties on all the top
+ level windows.
+
+- Removed parent ID from the windows private structure.
+
+- Implemented screen operation ReparentWindow.
+
+- Redirect all client message of type WM_PROTOCOLS and value WM_DELETE-
+ _WINDOW to internal clients in rootless mode.
+
+- Set the WM_PROTOCOLS property on all the top level window.
+
+nxagent-1.5.0-2
+
+- Changed viewport navigation, in order to make it works in fullscreen
+ mode.
+
+- Changed special keystrokes used for closing session and minimizing
+ fullscreen window.
+
+- Removed the message 'NX was unable to negotiate a cache
+ for this session' (FRSA052296).
+
+- Fixed a minor bug. It made metacity produced a warning when the agent
+ started up.
+
+- Code cleaning.
+
+- Implemented dynamic handling of the main window's size in the X11
+ agent (FRSA052264).
+
+- Implemented dynamic navigation of the main window's viewport in the
+ X11 agent (FRSA052265). Users can navigate the viewport while keys
+ Ctrl + Alt are pressed, either by arrows keys or dragging it by the
+ pointer.
+
+- Implemented dynamic handling of the full-screen attribute in the
+ X11 agent.
+
+- First implementation of dynamic handling of the full-screen
+ attribute (FRSA052263).
+
+- Now the X connection descriptor is not closed when disconnected,
+ because the transport layer still has reference to it. So we want
+ it busy till we don't close the display, so we shutdown it instead
+ of closing it.
+
+- Removed replys when disconnected.
+
+- Added the X connection number to the set of enabled input devices, at
+ reconnection.
+
+- Rewritten the disconnect/reconnect layout.
+
+- Now in the suspend status nxagent doesn't sleep.
+
+- Implementing toggle fullscreen special keys.
+
+nxagent-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nxagent-1.4.1-7
+
+- Imported changes from nxagent-1.4.0-64 version.
+
+nxagent-1.4.1-6
+
+- Implemented a GC cache for reconnecting pixmap.
+
+nxagent-1.4.1-5
+
+- Handled the situation of disconnect when the pointer has been grabbed.
+ We disconnect and reconnect the "grabbing" cursor and after reconnection
+ we fake a button release in order to let client know that the pointer
+ button has in effect been released.
+
+- Code cleanup.
+
+nxagent-1.4.1-4
+
+- Imported changes from nxagent-1.4.0-63 version.
+
+nxagent-1.4.1-3
+
+- Imported changes from nxagent-1.4.0-62 version.
+
+nxagent-1.4.1-2
+
+- Cleaned code in the GC reconnection area.
+ Scratchs GC are now reconnected before of the pixmaps.
+
+nxagent-1.4.1-1
+
+- Opened the 1.4.1 branch.
+
+nxagent-1.4.0-65
+
+- Cosmetic changes to the diagnostic output.
+
+nxagent-1.4.0-64
+
+- Changed the RENDER version advertised to X clients to be the lowest
+ value between the version of RENDER of nxagent and of the remote X
+ server.
+
+- Disabled fast copy area and fast get image flags, if RENDER extension
+ is not available.
+
+- At the screen initialization, if we don't have window manager we
+ grab keyboard to let nxagent get keyboard events.
+
+- Completely rewritted the handling of KeyPress events, now we moved
+ all the test for 'special' keybindings in file keystroke.c. Added the
+ combination MOD1/2-CTRL-SHIFT-<TAB> for terminate/suspend the session,
+ we used the combination MOD1/2 in order to let it work even on MacOS
+ where Alt(MOD1) doesn't seem to be set.
+
+- Ignored visibility notify events on the icon windows, that were
+ messing up the agent visibility state.
+
+- Changed nxagent reaction on VisibilityNotify event. It fixed the
+ problem with refresh session under Mac OS X with NXDarwin.
+
+nxagent-1.4.0-63
+
+- Reset the congestion state at transport initialization.
+
+nxagent-1.4.0-62
+
+- Fixed the disconnection and reconnection of window that have attached
+ an animated cursor.
+
+nxagent-1.4.0-61
+
+- Removed the XInputExtension initialization in order to use the more
+ general mi extension initialization enabled on new mi version.
+
+- Removed some useless test and logging info on copy area function.
+
+nxagent-1.4.0-60
+
+- Changed the implementation of CopyArea and CopyPlane.
+ If both drawables are on framebuffer we send NoExpose to clients,
+ otherwise we use the mi function HandleExposure to calculate the
+ region to be exposed instead of let mi redo all the copy operation.
+
+nxagent-1.4.0-59
+
+- Disabled use of caching and cleaning of images, if NX transport is
+ not used.
+
+nxagent-1.4.0-58
+
+- Added timeout on convert selection operation. If timeout has not
+ expired and is there a pending operation any new request is dropped
+ and the client notified, until timeout expiration.
+
+- Corrected a bug that prevented to correctly store last convert se-
+ lection request time.
+
+nxagent-1.4.0-57
+
+- The Xinput extension is now initialized at startup. This is of
+ little use because nxagent only needs to support the core pointer
+ and keyboard. Anyway this allows nxagent to get rid of the warn-
+ ings printed by some X clients on recent Linux versions when the
+ extension is not found.
+
+nxagent-1.4.0-56
+
+- Fixed value returned by ConvertSelection. It was the cause of
+ possible slowndowns during KDE sessions.
+
+nxagent-1.4.0-55
+
+- Agent icon now is loaded from a binary-
+ embedded Xpm image, if any attempt to
+ load the default Xpm file from the image
+ directory or from the path fails.
+ Removed code used in the old logo drawing
+ function.
+
+nxagent-1.4.0-54
+
+- Enabled code for sending to client graphics
+ exposures. Redirecting the ones coming from
+ remote X server, only if agent window is not
+ fully visible, and calculating ourselves failure
+ in CopyArea/Plane and notifying clients.
+ The only drawback is that we can have double
+ refresh effect if agent window is covered.
+
+NOTE: Partially enabled MIT-SHM extension has
+ been developed but has not been included
+ in stable release. Included in version
+ nxagent-1.4.0-53-DAR1.
+
+nxagent-1.4.0-53
+
+- Implemented a reliable technic to detect
+ if is there any window manager running on
+ the X server.
+
+nxagent-1.4.0-52
+
+- Fixed a bug that prevented to correctly
+ notify the client of a successfull convert
+ selection.
+
+nxagent-1.4.0-51
+
+- Removed a logging error in render initialization.
+
+nxagent-1.4.0-50
+
+- Now we take the ownership of the selection
+ on "NX_CUT_BUFFER_SERVER" twice, in order
+ to solve bug in communication with nxclient
+ to let him see our main window and know that
+ agent established connection with X server.
+
+nxagent-1.4.0-49
+
+- Fixed the colormask layout of the visual
+ used to put images on the real X server when
+ the drawable has an alpha channel, according
+ to the endianess of the X server.
+
+nxagent-1.4.0-48
+
+- Moved up the render compatibility limit,
+ due to the inclusion of the support for render
+ cursor missing on the 0.2 version.
+
+nxagent-1.4.0-47
+
+- Changing artsd forwarding port from display
+ + 8000 to display + 7000
+
+- Stoping key release event if key press was
+ catched before. For Alt-F2/F4 combination.
+
+- Preserved the alpha data on drawables that
+ are not used by picture but have a depth of 32.
+
+nxagent-1.4.0-46
+
+- Rewritten all the code regarding to the
+ acceleration for the Render creation of the
+ cursor, and removed the acceleration for
+ the animated cursor.
+
+nxagent-1.4.0-45
+
+- The two RENDER operations creating cursors and
+ animated cursors have been accelerated by for-
+ warding the original operation to the X server.
+
+nxagent-1.4.0-44
+
+- Fixed a problem in the clipboard procedure.
+ Now when we get a request of the selection
+ from an internal client we have to, if the
+ owner is on the X server, forward the request
+ to X, otherwise we have to pass the request
+ to our internal client.
+ But for a problem in this procedure we passed,
+ in some situation, the request to the internal
+ client even if the owner was on the other side.
+
+- Fixed a segmentation problem in the render
+ extension by removing composite trapezoid
+ operation on window.
+
+nxagent-1.4.0-43
+
+- Added some pointer sanity check in the discon-
+ nect procedure. The problem was arising because
+ we were executing the code twice when after
+ began a voluntar disconnection the X connect-
+ ion was broken for a network failure.
+
+- Changed directory where nxagent gets the icon.
+
+- Fixed missing implementation of rendering
+ trapezoids.
+
+- Fixed bug in render extension when the nxagent
+ create cursor diffrent then 32 bits format.
+
+nxagent-1.4.0-42
+
+- Solved segmentation fault, caused by a longjmp
+ on a stack context not previously saved.
+
+nxagent-1.4.0-41
+
+- Added an exposures of the window in a resize
+ operation.
+
+nxagent-1.4.0-40
+
+- Implemented a timeout on the opening of the X
+ display, if we get it we reject all well known
+ sockets.
+
+nxagent-1.4.0-39
+
+- Corrected minor error on events handling.
+
+nxagent-1.4.0-38
+
+- Removed in the resize window code some exposure
+ that generated useless traffic.
+
+- Option geometry is no more parsed in the option
+ file.
+
+nxagent-1.4.0-37
+
+- When session is suspended and we get TERM signal
+ nxagent just exit instead of just breaking out of
+ dispatch loop because we get a terminate exception.
+ Cleared display variable after having closed the
+ connection with the X server.
+
+nxagent-1.4.0-36
+
+- Refined some details in the ICC with nxclient.
+
+nxagent-1.4.0-35
+
+- Implemented a new method to comunicate to nxclient,
+ the raise of the agent root window, taking the ownership
+ of the selection "A-{MD5 of session}".
+ Used the same selection to let nxclient comunicate to agent
+ by changing the property on the same string, when the user
+ choose by the administrator to terminate or suspend the
+ session.
+
+nxagent-1.4.0-34
+
+- Key sequence to Suspend/Terminate session (Alt-F4).
+
+- Key sequence to Minimize session in fullscreen mode (Alt-F2).
+
+- Check if WM is started, for Alt-F2 sequence.
+
+- Corrected calculation geometry of exposed region
+ sent to client after reconnection.
+ This solve a serious memory leak of nxagent.
+
+- Fixed a bug in validate GC code that passed
+ a wrong pointer of tile to framebuffer.
+
+nxagent-1.4.0-33
+
+- Changed the reconnection state machine in order
+ to let agent exit if has got the TERM signal.
+
+nxagent-1.4.0-32
+
+- Fixed memory leak in option parser that wasted
+ memory if more than one occurence of 'option'
+ argument would have been parsed.
+
+- Removed a invalid read in Keyboard initialization.
+ Now kbtype option value is copyed instead that
+ referenced.
+
+- The X connection number is recorded only after
+ having cheched for display being successfully opened.
+
+nxagent-1.4.0-31
+
+- Fixed memory leak problem caused by region not
+ beeing destroyed previously.
+
+- Fixed a memory leak in keyboard initialization.
+
+- Fixed a bug in the function that parse the option file,
+ we were reading the options in the format NAME=VALUE and
+ were passing it to the argument parser in the format
+ {NAME, VALUE}, without the prepending '-' in front of NAME.
+
+nxagent-1.4.0-30
+
+- Readded option persistent in order to let nxagent
+ works with older nxserver that are still launching
+ nxagent with the persistent option.
+
+nxagent-1.4.0-29
+
+- Corrected the message of the client dialog
+ asking if user want to suspend or terminate the
+ session.
+
+- Chenged the default value for persistence of session
+ in nxagent to true. Change the persistent option to
+ nopersistent in order to disable it.
+
+nxagent-1.4.0-28
+
+- Added check on screen initialization of possible
+ memory allocation failure.
+
+- Changed the parsing policies of the option file.
+ Now we are just considering kbtype and geometry
+ options.
+
+- Removed testing code that forced rootless mode
+ when geometry is 100X100.
+
+- Correctly initialized and mapped the icon window
+ on fullscreen mode.
+
+nxagent-1.4.0-27
+
+- Fixed lost memory problem caused by second
+ initialization of screen privates. Screen
+ privates is already initialized by miScreenInit
+ function.
+
+nxagent-1.4.0-26
+
+- Added option command line option. This parameter
+ is used to show complete path to option file.
+
+- Added parser of the option file.
+
+- Now default value for fast copy area and fast
+ getimage is true.
+
+nxagent-1.4.0-25
+
+- Done some cleanup to the initialization of the
+ defaults drawables at reconnection, and removed
+ a memory leak in the reopening of the Display.
+
+nxagent-1.4.0-24
+
+- Changed the version number, printed at startup.
+
+- Removed a memory leak in the font reconnection stage.
+
+nxagent-1.4.0-23
+
+- Removed a bug that messed up the render status info
+ if reconnected to a display with no render support.
+ Anyway nxserver should prevent agent to trying reconn-
+ ecting to such display.
+
+nxagent-1.4.0-22
+
+- Enhanced the reconnection error reporting function.
+
+nxagent-1.4.0-21
+
+- Get the ownership of selection NX_CUT_BUFFER_SERVER at reconnection
+ in order to let client knows that agent windows has started
+ successfully.
+
+nxagent-1.4.0-20
+
+- Now we draw splash logo at reconnection. And destroy it and show
+ all other windows when reconnection has done all in once. We draw
+ it on default window instead that on root window, and we map root
+ window when reconnection has finished.
+
+nxagent-1.4.0-19
+
+- Removed the old Xconnection descriptor and added the new one
+ to the device set, instead of resetting the entire enabled
+ device set, at reconnection.
+
+nxagent-1.4.0-18
+
+- Reset the enabled devices set of descriptors, and properly
+ add to this set the the Xconnection descriptor.
+
+NOTE: This solves all the known solaris reconnection problems.
+ (The problem appear only on solaris because on this machine
+ the Xconnection descriptor is changing at reconnection.)
+
+nxagent-1.4.0-17
+
+- Restored the previously owned primary selection, at reconnection.
+ Removed the handling of the return value of XSetSelectionOwner,
+ man page doesn't specify any return value.
+
+nxagent-1.4.0-16
+
+- Added compatibility with older windows clients(Xserver)
+ that send a WM_DELETE_WINDOW client message WM_DELETE_WINDOW
+ to all top level window and so agent show more than one
+ NXDialog asking for confirmation, instead of sending just the
+ message to top level window that are visible and haven't set
+ the override redirect option.
+
+nxagent-1.4.0-15
+
+- Ignored unmatched DirectColor visuals at reconnection
+ on a different display not providing it.
+
+nxagent-1.4.0-14
+
+- Moved the render query extension in display
+ initialization from screen initialization.
+
+- Changed reconnection policy to disallow reconnect a
+ session that is using render to a server not providing it.
+
+nxagent-1.4.0-13
+
+- Unified the screen opening function.
+
+- Changed the reconnection requirements
+ policy about geometry of X server.
+ Now agent doesn't accept changes of X server
+ root window size only if in fullscreen mode.
+
+nxagent-1.4.0-12
+
+- Improved failure notification messagges in Display and
+ font code.
+
+nxagent-1.4.0-11
+
+- Now visuals are properly recreated, in order to reconnect
+ to another X server.
+
+- Updated render formats at reconnection.
+
+nxagent-1.4.0-10
+
+- Removed a serious memory leak at reconnection.
+
+nxagent-1.4.0-9
+
+- Added after window reconnection the redisplay of the current
+ cursor. Done some general cleanup at cursor reconnection code.
+
+nxagent-1.4.0-8
+
+- Unified tha atom creation at reconnect.
+
+nxagent-1.4.0-7
+
+- Dix layer when creating a GC use a default real pixmap as
+ stipple but agent need a virtual one. This can cause
+ segmentation fault to agent if is there any apps that use the
+ default GC stipple created by dix, without changing it.
+
+nxagent-1.4.0-6
+
+- Imported 1.4.0-1-DAR6 from the 1.4.0 development branch.
+
+- Handled reconnection of window's cursor still not
+ reconnected at window reconnection. (This because that cursor
+ is no more a server[nxagent] resource).
+
+- Set the last image client variable at reconnection in order
+ to use the visual cache indexed for client number.
+ Without this we could get a segmentation fault.
+
+- Handled properly the reconnection of animated cursor.
+ Modified the procedure of animated cursor creation
+ in order to empty some unused fields.
+
+- Removed a 4 bytes memory leak at reconnection.
+
+- Synced new tree with nxagent-1.3.2-23.
+
+- Finished the unify of PutImage at reconnection.
+ Added a Reconnection Trap in order to let screen functions
+ (like PutImage) knows that are working at reconnection time
+ and can behave differently.
+
+- Unified the code for the normal PutImage and the one's used at
+ reconnection. But the code that calculate the split is still
+ doubled.
+
+nxagent-1.4.0-5
+
+- Imported 1.3.2-23 from the 1.3.2 development branch, and dropped
+ the previous 1.4.0 versions.
+
+nxagent-1.3.2-23
+
+- Pixel hints are set according to the display's depth. Added the
+ defaults to be used on 16 bits.
+
+nxagent-1.3.2-22
+
+- The pixel hint on Solaris is by default 0xffffff. The value can be
+ overridden by using the -hint option followed by the hex represen-
+ tation of the color, as in -hint 0xaabbcc.
+
+nxagent-1.3.2-21
+
+- Asynchronous GetImages are now disabled. If fast GetImage mode is
+ enabled, agent will always try to guess the pixel to be used for
+ the solid pattern, based, at its best, on the geometry of the pro-
+ vided area. This behaviour can be overridden by passing the -slow
+ parameter on the command line. Slow mode is also the default when
+ selecting WAN or LAN link settings.
+
+- Code cleanup in preparation of the final release.
+
+nxagent-1.3.2-20
+
+- New code uses sigaction to set the SIGHUP handler in persistent
+ mode. Contrarily to signal(), the sigaction call doesn't seem to
+ reset the handler to SIG_DFL after the signal has been caught.
+ This problem seems to be specific of Solaris.
+
+- Client messages of type WM_PROTOCOLS are now handled even when
+ a window manager is not detected at agent startup.
+
+- Removed handling of GraphicsExposure coming fron the real server.
+ Agent will still generate events in the MI. Code dealing with the
+ remote events needs to be better tuned as it seems to cause some
+ troubles with double refreshes.
+
+nxagent-1.3.2-19
+
+- Starting from this version agent doens't use NXSync and NXKarma
+ messages to manage bandwidth arbitration among clients but makes
+ efficient use of the congestion notification messages introduced
+ in 1.3.1. A new handler has been added to manage the congestion
+ state. The handler will block, if needed, waiting for the decon-
+ gestion notification coming from proxy.
+
+nxagent-1.3.2-18
+
+- Rewritten the block handlers to check the event queue more often.
+ The new code seems to greatly enhance responsiveness, especially
+ on fast links.
+
+- Now agent will handle the expose events coming from the remote
+ display inside the event dispatcher.
+
+- Created a new function collecting the expose events. Function is
+ optimized to add all the expose events for the same window to a
+ single region. Region is passed to the mi when the last event
+ has been processed.
+
+- Still dealing with GetImage from OpenOffice. Now we try to match
+ the geometry of the incoming requests with known geometry of most
+ of its graphic elements. It seem to work on Fedora.
+
+nxagent-1.3.2-17
+
+- Added swapping of image data in nxagentGetImage() when connecting
+ to a display having a different image byte order than the agent
+ server.
+
+- Added a new nxagentImageReformat() function in GCOps.c.
+
+- Now agent will not try to pack images having a data size smaller
+ than 768 bytes. The previous threshold was set to 64. The Mandrake
+ vesion of KDE seems to send lot of such small images. Compressed
+ through JPEG, these images obtain a very poor ratio of nearly 1:1.
+
+- Added a function translating and sending the GraphicsExposures
+ events received from the remote server to the agent's clients.
+
+- Renamed the functions providing the ad-hoc handling of remote X
+ events.
+
+nxagent-1.3.2-16
+
+- Implemented a cache for the alpha channel data. With clients
+ making heavy use of the alpha blending, the new cache is able to
+ cut by nearly 30% the traffic incoming to proxy, offering compara-
+ ble savings in CPU performance. While proxy is usually able to
+ cache almost all the alpha traffic, when caching is not enabled
+ (f.e. when link setting is WAN or LAN) this data is sent uncomp-
+ ressed by the agent. Tests running common desktop environments
+ showed that alpha channel could weight up to 2 times the corres-
+ ponding data generated by the packed images.
+
+- Fixed the compilation warnings in NXrender.c.
+
+nxagent-1.3.2-15
+
+- Rewritten handling of GetImage from dispatcher down to GCOps. If
+ the fast GetImage mode is enabled agent will use the asynchronous
+ calls provided by nxcompext to get data from the real server. Data
+ collected from the last get image performed is preserved and the
+ upper left pixel is used to guess a solid background.
+
+- Added a nxagentGetBackgroundImage() function to apply a similar
+ mechanism when the nxagent window isn't fully visible. Previously
+ a solid white background was returned. The new handling seems to
+ correctly match the window background in most cases.
+
+- Fixed a problem passing the bytes per line value when creating a
+ XYPixmap image. The previously calculated value didn't take into
+ account the depth of the image.
+
+- Now image's bytes per line, length and visual are calculated by
+ using a few utility functions added to GCOps.c.
+
+- Added declaration of the nxagentVisibility related variables to
+ Window.h.
+
+nxagent-1.3.2-14
+
+- On Fedora xbcomp configuration fails when agent is run nested.
+ This causes keyboard to ignore most AltGr keys. Strangely enough
+ this behaviour has been observed only with KDE while GNOME does
+ not seem to be affected. Reason is to be investigated.
+
+- Auto-repeat mode of the agent's keyboard device is now always
+ disabled. Agent will leverage auto-repeated keystrokes genera-
+ ted on the real server even when propagating device configura-
+ tion changes.
+
+- The info output telling if agent will propagate the changes to
+ devices' setting is now printed after having initialized the
+ screen. The purpose would be to verify if agent is running in
+ fullscreen mode and there is no WM on the real display. In this
+ case we should forcibly propagate device configuration changes.
+ Unfortunately, due to the way intern atoms are collected, this
+ is not going to work on platforms where sessions are likely to
+ run on an existing X server.
+
+nxagent-1.3.2-13
+
+- Fixed a problem with XYPixmaps being used in PutImage with the
+ wrong left pad. This is a step forward in the solution of the
+ corrupted masks displayed by Mozilla when showing some animated
+ GIFs.
+
+- By selecting 'fast' mode nxagent will now skip real XGetImage
+ operations on windows. This becomes the default in the case of
+ MODEM, ISDN and ADSL links. In theory X clients should never do
+ that. In practice a few naive programs and libraries (like, sur-
+ prisingly enough, a famous Linux office automation suite) do,
+ mainly to compose images with the window's backgound. Why don't
+ they compose content into a Pixmap?
+
+- Improved the implementation of CompositeGlyphs. It now uses a
+ single call to XRenderCompositeText instead of splitting the
+ output in multiple RENDER requests.
+
+- In previous versions file NXmiwindow.o was not linked into the
+ resulting nxagent. This solves the problem of missing repaints
+ in CDE and other Xt applications. Be sure you upgrade nx-X11
+ to version nx-X11-1.3.2-2.
+
+- Added a warning when the change keyboard control or the change
+ pointer control functions are called.
+
+nxagent-1.3.2-12
+
+- Added bit-swapping of glyphs having depth 1 when agent has a
+ different bitmap-bit-order than the X server.
+
+- The KeyRelease event's timestamp calculation, accounting for
+ differences in time between the local and the remote machine,
+ will now use the timestamp taken from the last KeyPress. Using
+ the timestamp of the last event was sometimes causing time to
+ go backward with the result that server could remain grabbed.
+ This solves the long-standing "mouse stop responding" problem.
+
+- Fixed a problem handling the alpha channeled visual introduced
+ while experimenting with the new server endianess layout.
+
+nxagent-1.3.2-11
+
+- Added the Reset option to options repository. By default agent
+ will skip server reset when the last client disconnects. This is
+ equivalent to passing the -noreset option to a standard XFree86
+ server. To restore the original behaviour the new -reset option
+ can be used on the command line.
+
+- Moved the SharedMemory and DeviceControl options to the options
+ repository.
+
+- A basic session, still leveraging all the default facilities, can
+ now be run as: nxagent -name NX -geometry 800x600+10+100 :1. The
+ -fp unix/:7100 option can be added to enable access to the X font
+ server.
+
+- Fixed a "unused variable" warning in Cursor.c.
+
+nxagent-1.3.2-10
+
+- Rootless mode. Some cleanup in initialization.
+
+- Rootless mode. Working at the configure-window errors.
+
+nxagent-1.3.2-9
+
+- Removed limitations when running nxagent nested inside another
+ nxagent server. Now both render extension and packing of images
+ are enabled.
+
+- The nxagent X server now inherits its endianess from the host
+ architecture, instead of assuming the same endianess of the con-
+ necting client. This fixes the remaining problems running ses-
+ sions nested inside another nxagent server.
+
+- Removed any reference to ReformatImage().
+
+nxagent-1.3.2-8
+
+- Changed the way the agent server handles images internally.
+ The inherited Xnest code used to set the server's image order
+ to the same order of the remote X display. This caused agent
+ to create images in the internal frame-buffer with a different
+ endianess in respect to images got from X clients.
+
+- The new image handling code seems to solve all the known image
+ endianess problems, for example cursors created on big-endian
+ displays with a wrong shape or glyphs being showed flipped when
+ retrieving the image data from the virtual frame-buffer.
+
+- As an added bonus the new code seems to double the performance
+ of the SPARC Solaris server when accessing i386 clients.
+
+- Commented out all the existing calls to ReformatImage(). Code
+ needs now extensive testing to see if any of the calls must be
+ actually restored.
+
+- Replaced calls to index() with strchr().
+
+nxagent-1.3.2-7
+
+- Solved a potential memory error when accessing a client or a
+ window pointer in clipboard management code after the resources
+ had been destroyed. Added a nxagentClearClipboard() function to
+ be called before a client or a window is destroyed to get rid
+ of any reference to the disposed resources.
+
+- Auto-repeated keystrokes generated by agent from inside the
+ virtual keyboard device are now ignored. Agent will correctly
+ honor auto-repeated keystrokes generated by the real X server.
+ This is actually the expected behaviour. The former implemen-
+ tation triggered an annoying bug, with keystrokes being inad-
+ vertedly auto-repeated in the case of high latency on the
+ network link.
+
+- Agent will now ignore the pointer settings changes generated
+ inside the remote session. The original behaviour was to reset
+ the pointer values (for example acceleration) to the X factory
+ settings at session startup. Agent will now inherit whatever
+ values are set on the real X display.
+
+- Added a -noignore parameter. When passed, agent will propagate
+ to the real X server any change to keyboard and pointer control
+ settings operated by its own X clients.
+
+nxagent-1.3.2-6
+
+- Fixed problem with glyphs being drawn clipped in the virtual
+ frame buffer. This is not yet the final solution but it seems
+ to work in all the circumstances where problem was observed
+ in the past. Problem seems to be caused by scratch pixmaps
+ being requested with a width and height smaller than actually
+ required. Note anyway that pixmap's buffer seems to be never
+ accessed beyond its boundary. This probably means that memory
+ for the pixmap is originally allocated using the right size.
+
+- Moved backing-store selection to options repository. Now by
+ default the backing-store mode is set to WhenRequested. This
+ means that, in most cases, there is no need to pass the -bs
+ option on the command line.
+
+- Code cleanup in Render.c, NXrender.c, NXglyph.c.
+
+nxagent-1.3.2-5
+
+- Fixed initialization of all the supported depths. Previous
+ versions correctly initialized the various depths but still
+ failed to advertise the support of any other depth than the
+ default depth supported by the remote X server.
+
+- Persistent mode. We now correctly propagate the pixmap ID of
+ the parent to the virtual pixmap at reconnection. This fixes
+ the reconnection errors when render extension is enabled.
+
+- Persistent mode. Solved the refresh problems at reconnection.
+ Problems were generated by the lack of window parent's ID at
+ the time session was reconnected.
+
+- Changed the agent's behaviour at the time the close button is
+ pressed. If agent is running in persistent mode a new dialog
+ is showed with the option to suspend the session.
+
+nxagent-1.3.2-4
+
+- Persistent mode. At the time the proxy connection is reset the
+ per-client unpack geometry information is cleared. This makes
+ agent find out that a new unpack geometry is needed as soon as
+ the display is reconnected.
+
+- Persistent mode. Lot of logging added in order to trace use of
+ resources as long as they are recreated. The current version
+ fails to correctly restore the picture information when render
+ is enabled.
+
+nxagent-1.3.2-3
+
+- Finally fixed all the problems with missing initialization of
+ pixmap formats. The screen info is now correctly set up even
+ when the remote display doesn't support all the target depths.
+ Many thanks to Michael L Torrie who helped me to reproduce the
+ problem and come to a solution.
+
+- Moved initialization of depths, default drawables and pixmap
+ formats to their own functions in Display.c.
+
+nxagent-1.3.2-2
+
+- Fixed the nxagentDestroyPixmap() function to correctly take into
+ account the reference counter of the virtual pixmaps. This solves
+ the crashes observed when running some GTK clients like xchat.
+
+- Added a function Pixmap.c to forcibly destroy the pixmaps created
+ in the virtual framebuffer when the parent pixmap is destroyed.
+
+- This version contains some verbose output intended to better test
+ the new behaviour. The output will be removed in future versions.
+
+nxagent-1.3.2-1
+
+- More cleanup in Pixmap.c.
+
+- Rewritten nxagentCreatePixmap(). Corrected an error where the
+ bitsPerPixel field was set to the pixmap's depth instead of the
+ result of BitsPerPixel(depth). This finally solves the problem
+ of text being incorrectly rendered in the virtual framebuffer.
+
+- Corrected the X error returned at the end of session when trying
+ to free a pixmap with an invalid id.
+
+- Opened the 1.3.2 branch.
+
+nxagent-1.3.1-32
+
+- Cleanup of Pixmap.h/Pixmap.c. Renamed macros according to the
+ nxagent naming conventions.
+
+nxagent-1.3.1-31
+
+- When running in fullscreen mode, grab and ungrab of pointer and
+ keyboard is performed in new functions, placed in Events.c.
+
+- The event loop now checks if the enter/leave notify carries a
+ NotifyInferior detail and, in this case, doesn't perform the grab.
+ This saves half the amount of grabs (and the related roundtrips)
+ performed by the previous version.
+
+- Ungrab of pointer is now performed whenever the cursor leaves the
+ fullscreen window. In previous version only the keyboard was
+ explicitly ungrabbed.
+
+- Added a warning in the event loop when receiving a MappingNotify.
+ This event is presently unhandled and seems to be reported, as a
+ consequence of the selected event mask, only by some X servers.
+
+nxagent-1.3.1-30
+
+- Reverted the patch introduced in Pixmap.c. The whole issue is
+ being investigated in its ramifications up to the virtual frame
+ buffer.
+
+nxagent-1.3.1-29
+
+- Fixed a problem in the nxagentDestroyPixmap function where the
+ reference counter of pixmaps could be decremented twice. This
+ could lead to agent trying to free the pixmaps more than once.
+
+- On Solaris there is no description for pc105 keyboard model. As
+ a workaround we consider pc104 to be the closest approximation.
+
+nxagent-1.3.1-28
+
+- Fixed a bug in the create window procedure. With some clients,
+ like Maelstrom and xmame, the creation of the main window was
+ failing due to the wrong colormap and visual attributes used
+ by agent on the real X server.
+
+- In fullscreen mode the keyboard is now grabbed at the time we
+ receive an EnterNotify event. This fixes a problem at startup
+ observed on some Debian based distributions where agent didn't
+ receive the keyboard focus until user had minimized and then
+ brought to front the agent's window. The grab is now correctly
+ performed by using the timestamp of the remote X server ins-
+ tead of our local timestamp.
+
+- In NXdixfonts.c strings corresponding to names of fonts and
+ font aliases cached by nxagent were missing the terminating
+ zero.
+
+- In function InitClientPrivates fixed the missing initializa-
+ tion of the is_ignored member of the ClientPriv structure.
+
+- Added the Persistent option to Options repository. The flag is
+ intended to replace the old nxagentEnableReconnect variable.
+
+nxagent-1.3.1-27
+
+- Fixed a memory allocation problem in Keyboard.c. A string was
+ allocated in the heap without making enough room for the trail-
+ ing zero.
+
+nxagent-1.3.1-26
+
+- Added further run-time checks to verify that pixmaps are not
+ created with bad bit-per-plane settings. This problem seems to
+ be caused by lack of support by nxagent of some combinations
+ of depth and visual when the render extension is enabled. If
+ this is the case, hide the render extension to new clients and
+ force any subsequent render operation to return a BadRequest
+ error. This required including extension.c from dix. A new
+ NXextension.c file is added to the distribution.
+
+- A problem was reported by Valgrind about reading the first 4
+ bytes just after the block allocated in fbCreatePixmap from
+ nxagentCreatePixmap. A quick fix was added to pixmap.c from
+ dix so that AllocatePixmap adds 4 additinal bytes to each
+ buffer.
+
+nxagent-1.3.1-25
+
+- Fixed a memory corruption error. The original AllocateGlyphSet
+ from render/glyph.c could be called instead of the NX counter-
+ part defined in NXglyph.c. This could lead to the missing
+ allocation of the trailing remote glyphset id field.
+
+- Added initialization of an otherwise usused string in function
+ nxagentPropagateArtsdProperties(). The whole string is probably
+ to be removed in future versions.
+
+- Moved the flag used to avoid reentrancy in GCOps to a separate
+ Trap header and source.
+
+- Further cleanup. Removed the zombie file NXglyphcurs.h.
+
+- Added missing initialization of the picture pointer in private
+ window's data in nxagentCreateWindow.
+
+nxagent-1.3.1-24
+
+- Added the missing timeout when calling WaitForSomething() at
+ startup. The bug caused the splash to remain on screen until
+ a further event was received.
+
+- Fixed a BadAtom error on Windows during initialization. Error
+ was caused by a bad attempt to change the NX_AGENT_SIGNATURE.
+
+- Hunting the 0 bits-per-plane drawable bug in nxagentValidateGC.
+ Added tracing output and additional checks. GC validation is
+ skipped if it is not possible to recover an appropriate value.
+
+- Ensured that nxagentDisplayName is set before calling the post
+ initialization procedure.
+
+nxagent-1.3.1-23
+
+- When session is run nested inside another NX X agent, all the
+ optimizations regarding remote expose events on fully visible
+ windows are disabled. This solves the refresh problems encoun-
+ tered when covering the nested session with a window from the
+ local X server.
+
+- Reusing NX_AGENT_SIGNATURE atom to detect nested operation.
+ Atom is created internally to the agent server at startup,
+ before any atom on the real display.
+
+- Fixed construction of caption used for dialog boxes spawn by
+ agent. The previous algorithm failed to identify the correct
+ string in parameter -name passed on the command line.
+
+nxagent-1.3.1-22
+
+- Ensured that state of keyboard modifiers is initialized with
+ values from the real X server when the first key stroke is
+ pressed by the user.
+
+- Fixed the X_SetInputFocus errors generated at session startup.
+
+- Rootless mode. Ensured that remote expose events are always
+ reported by the remote proxy. This is a temporary fix looking
+ forward for better handling of visibility events.
+
+nxagent-1.3.1-21
+
+- Saved a GetWindowAttributes and a GetGeometry in the function
+ drawing the splash screen.
+
+- Better handling of splash at startup. Removed the flickering on
+ Windows without recurring to another atom. This is achieved by
+ optimizing drawing and delaying mapping of the main windows.
+
+- Modified the magic values activating rootless mode to 100x100.
+
+- Removed modifications introduced in 1.3.1-20.
+
+nxagent-1.3.1-20
+
+- Working on eliminating the splash screen flickering on Windows
+ and Darwin. Checked if the NX_SPLASH atom has been created by
+ the NX X server. If this is the case, we let the NX X server
+ show the splash screen on our behalf.
+
+nxagent-1.3.1-19
+
+- Improved the initialization phase by removing a GetProperty, an
+ InternAtom and two GetInputFocus round-trips.
+
+- Added appropriate masking of the state bits reported by the
+ XkbStateNotifyMask event.
+
+- Added a simple mechanism during the itialization phase to trace
+ the use of X server replies.
+
+nxagent-1.3.1-18
+
+- Made some order in functions loading the NX icon.
+
+- Removed some more zombie files from agent distribution. Now only
+ the files imported from DIX and MI have name prepended with NX.
+
+nxagent-1.3.1-17
+
+- Moved names and values of intern atoms created by agent in their
+ specific header and source.
+
+- We temporarily force rootless mode if user provides a geometry
+ of 801x601. This is intended to simplify testing. Note that if
+ rootless is selected, we'll anyway disregard any geometry set
+ by the user, assuming the geometry of the real display.
+
+nxagent-1.3.1-16
+
+- We are checking now whether NX_IDENTITY intern atom is created
+ before NX_SPLASH. We want NX X servers to show the splash on our
+ behalf, so if NX_SPLASH is already interned, than we just skip
+ the splash procedure.
+
+nxagent-1.3.1-15
+
+- Rootless mode. Fixed a segfault handling ConfigureNotify events
+ on top-level windows.
+
+- Moved handling of ClientMessages coming from proxy in a separate
+ function.
+
+nxagent-1.3.1-14
+
+- Rewritten the code dealing with key modifier changes. Now we
+ use XKB events instead of synchronous XkbGetIndicatorState()
+ calls.
+
+- Moved activation of keyboard and pointer events to Events.c.
+
+- Removed pointer motion optimizations as a better logic, taking
+ in account the selected link speed, is already implemented in
+ proxy.
+
+nxagent-1.3.1-13
+
+- Renamed the -reconnect option as -persistent.
+
+- Rootless mode. Agent's root windows are not mapped at startup.
+
+- Removed the zombie file glyphcurs.c from agent distribution.
+
+nxagent-1.3.1-12
+
+- Corrected a typo in the new CopyArea code in GCOps.c where:
+
+ if (srcx > nxagentWidth) srcx = nxagentWidth;
+ if (srcy > nxagentHeight) srcx = nxagentHeight;
+
+ had to be:
+
+ if (srcx > nxagentWidth) srcx = nxagentWidth;
+ if (srcy > nxagentHeight) srcy = nxagentHeight;
+
+- Added handling of the fullscreen command line parameter to the
+ options repository.
+
+- Added agent geometry parameters to the options repository.
+
+nxagent-1.3.1-11
+
+- Rootless mode. Added handling of configuration events reported
+ for the top-level windows.
+
+- Rootless mode. Children of the root window get the event mask
+ selected when the window is created. This makes the keyboard
+ work at least with xterm and other simple clients. There are
+ still problems with the pointer events.
+
+- Created new Splash.h and Splash.c sources file to contain the
+ few splash screen procedures that were previously sparsed in
+ multiple files.
+
+- Added traces in all the window creation procedures and in the
+ initialization routines called at startup.
+
+- Renamed some source files to make simpler to identify what is
+ imported from DIX and what actually pertains to agent.
+
+nxagent-1.3.1-10
+
+- Added the missing RestackWindow screen operation. This solves
+ problems of incorrect stacking order observed in menus when
+ using the drop shadow feature in the latest KDE versions.
+
+nxagent-1.3.1-9
+
+- The new standard for checking previous inclusion of headers is
+ by verifying definition of _Filename_H_ where Filename is the
+ base name of the file, for example __Options_H__ in the case
+ of "Options.h". This is intended to be a step in reducing the
+ number of defines in code prefixed with NXAGENT.
+
+- Updated NX copyright to year 2004. Placed copyright statement
+ regarding NXAGENT and NX modifications to the Xnest software
+ at the beginning of the file. Checked again if credit is given
+ to all the existing copyright owners.
+
+nxagent-1.3.1-8
+
+- Added a new Options repository to store the values currently
+ dispersed all over around. The new macros nxagentOption(option)
+ and nxagentChangeOption(option, value) should be used from now
+ on to access the important values affecting agent's operations.
+
+- General cleanup of code. Removed the remaining references to
+ the Xnest legacy code.
+
+nxagent-1.3.1-7
+
+- Some steps forward toward rootless agent. Now all the top level
+ windows are correctly created. Drawing to the real screen seems
+ to work without problems. It is still not possible to get events
+ in the event loop and the remote WM is interfering with the WM
+ on the local display.
+
+- More cleanup of code. Some changes to parts added since 1.3.1-5.
+
+nxagent-1.3.1-6
+
+- A drawable with 0 bpp can somehow arrive to the fb layer. The
+ problem needs to be better investigated. In the meanwhile a
+ quick check is added to correctly identify the ill condition.
+
+- Small fix to allow Num/Caps lock synchronization also on the
+ windows platform. This is still to be considered beta quality.
+
+- New options -slow and -fast added to agent. When "fast mode" is
+ not set, agent will query the remote X server to get real content
+ of drawables. When fast mode is enabled, agent will save the
+ round-trip by just clearing the drawable to its background. The
+ default mode is "slow", thus agent will always query the remote
+ server. When "fast mode" is explicitly set or when NX transport
+ is detected and the link is one of MODEM, ISDN and ADSL, agent
+ will default to "fast mode". This behaviour can be overridden by
+ system administrators by setting the key AGENT_EXTRA_OPTIONS_X
+ to "-slow" in node configuration.
+
+nxagent-1.3.1-5
+
+- Created framework for rootless agent. Added a -rootless option.
+
+- Slowly going toward a better organization of nxagent internals.
+ Renamed some files and moved things around. Changed some comments
+ in Screen.c to be more explainatory.
+
+nxagent-1.3.1-4
+
+- Changed default keyboard model to "pc102" (was "pc101") to correct
+ problems with "<" and ">" keys on the German keyboards and, poten-
+ tially on other layouts.
+
+- Added new parameter -kbtype to handle both geometry and layout in
+ a single form, for example pc102/pl. Parameter -keyboard is still
+ supported for backward compatibility.
+
+- Synchronization of Num and Caps lock status is now done comparing
+ the real keyboard and the internal state at the time nxagent gets
+ the focus. If state doesn't match, a fake keyboard event is sent.
+
+nxagent-1.3.1-3
+
+- Fixed a further problem on CopyArea between windows and pixmaps.
+
+nxagent-1.3.1-2
+
+- Implemented CopyArea on framebuffer when copying from windows to
+ pixmaps. Added the -slow command line switch to let nxagent get
+ the real content of the window from the X server. This requires
+ an expensive round-trip so it is disabled by default.
+
+nxagent-1.3.1-1
+
+- Opened the 1.3.1 branch.
+
+nxagent-1.3.0-32
+
+- Fixed a bug on 16 bpp displays using render extension. Now only
+ images which are used by render pictures and which have depth 32
+ are created with a different visual color mask. This saves a big
+ amount of SetUnpackColormap requests.
+
+nxagent-1.3.0-31
+
+- Fixed a bug in nxagentComposite routine. The macro nxgentPicturePriv
+ was used without checking for a null pointer argument.
+
+nxagent-1.3.0-30
+
+- Limitations on bandwidth introduced whenever the agent's window
+ is covered are now disabled by default. They can be enabled by
+ specifying the -limit option on the command line. The -nolimit
+ option is left for compatibility with the previous versions.
+ This handy feature caused complaints in the past from users who
+ instruct window managers to not move the window having focus on
+ top of the stacking order.
+
+nxagent-1.3.0-29
+
+- Removed the warnings issued at compile time.
+
+nxagent-1.3.0-28
+
+- Replaced the corrupted file nxagent.xpm with the original version.
+
+nxagent-1.3.0-27
+
+- Hopefully fixed all the remained memory leaks. Most problems were
+ due to agent's render extension not freeing resources on X server.
+
+- Added support for big-endian X server display on render extension.
+ Glyphs are reformatted according with the destination order.
+
+- Added per client information for SetUnpackGeometry, now the unpack
+ routines should have the correct information for the color mask at
+ the end of the split process.
+
+
+nxagent-1.3.0-26
+
+- Changed the message printed in the log when leaving the dispatch
+ loop from 'Error' to 'Info'.
+
+- Moved initialization of _NXFlushSize to nxcompext in order to set
+ value at the time NXGetControlParameters() is called.
+
+nxagent-1.3.0-25
+
+- Content of selection is now acquired using a single round-trip.
+ If content exceeds 262144 bytes, it is truncated at that size.
+ This works in most situations, at least with text, that, by the
+ way, is the only target supported at the moment. An improvement
+ would be to modify the state machine in a way that the remaining
+ data part is got using a second round-trip. This is not difficult
+ to do and can be considered for future releases.
+
+- In handling of clipborad we had to disable check on multiple
+ convert selection requests from the same client. There is a bug
+ in the algorithm that prevents the counter to be reset at the
+ appropriate time. This is to be investigated.
+
+nxagent-1.3.0-24
+
+- Added asynchronous handling of GetProperty requests and replies
+ using the NXCollectProperty and NXGetCollectedProperty requests
+ and the NXCollectPropertyNotify event in NXclipboard.c and in
+ Event.c. Implementation is not complete yet and can sometimes
+ cause X clients to misbehave.
+
+- Function xnestBitBlitHelper() now always returns NullRegion.
+ Handling of graphical expose events should be rewritten so that
+ regions are always generated internally to nxagent. Returning a
+ null region without checking our event queue, anyway, saves a
+ flush of the display buffer and doesn't seem to affect the
+ functionalities.
+
+- This version comprises modifications to Events.c, GCOps.c,
+ NXClipboard.c, NXwindow.c and Window.c where I found XSync()
+ messages (or code used to just send XSync() messages) outside
+ any #ifdef ..._DEBUG.
+
+nxagent-1.3.0-16
+
+- A dialog is showed at startup if proxy was not able to load a
+ persistent cache.
+
+- Reflected changes introduced in NXGetControlParameters() to add
+ more detailed information about the compression settings.
+
+- Fixed a potential bug with the name of the agent's display at the
+ time a dialog had to be showed. String was allocated with only 6
+ characters. This could lead to dialogs not being showed using
+ display ports greater than 9999.
+
+- NX.h is now included by NXControl.h. Removed #include directives
+ from other files.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG
new file mode 100644
index 000000000..b0323d4a7
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcomp_CHANGELOG
@@ -0,0 +1,3778 @@
+ChangeLog:
+
+nxcomp-3.5.0-2
+
+- Fixed TR11H02398. Solved a race condition when creating channels.
+
+nxcomp-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxcomp-3.4.0-7.
+
+- Updated copyright to year 2011.
+
+nxcomp-3.4.0-7
+
+- Fixed TR03H02334. Modified the UNIX domain socket checks on MacOSX
+ to be compliant with the standard introduced in OSX 10.6.3.
+
+nxcomp-3.4.0-6
+
+- Solved compilation problems on Solaris.
+
+nxcomp-3.4.0-5
+
+- Solved compilation problems on GCC 4.4.
+
+nxcomp-3.4.0-4
+
+- Added reference to fixed TR02H02325.
+
+nxcomp-3.4.0-3
+
+- Updated copyright to year 2010.
+
+nxcomp-3.4.0-2
+
+- Fixed TR03G02204. Changed the parsing of X authority entries in
+ order to handle the case where the hostname includes white spaces.
+
+- Fixed TR02H02325. Bug in PNG decompression on 16bpp displays.
+
+nxcomp-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxcomp-3.3.0-4.
+
+- Changed version number.
+
+- Updated copyright to year 2009.
+
+nxcomp-3.3.0-4
+
+- Check if the variable storing the ping time exceeded the maximum
+ integer value.
+
+- Recover incorrect sequence number when the proxy is not connected
+ to an agent.
+
+nxcomp-3.3.0-3
+
+- Removed a condition in ClientChannel that caused a loss in event
+ sequence numbers.
+
+nxcomp-3.3.0-2
+
+- Updated VERSION.
+
+nxcomp-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxcomp-3.2.0-7.
+
+nxcomp-3.2.0-7
+
+- Solved a compilation problem on GCC 4.3.
+
+nxcomp-3.2.0-6
+
+- Changes considering that unsetenv() returns void on Mac OS X.
+
+nxcomp-3.2.0-5
+
+- Fixed TR03F02024. Assume the launchd unix socket as X socket.
+
+- Changed the authorization cookie retrieval when using the launchd
+ socket on MacOSX, in order to wait for the X server start.
+
+nxcomp-3.2.0-4
+
+- Fixed TR03F02026. Unset environment variable LD_LIBRARY_PATH before
+ calling the exec function running nxclient.
+
+nxcomp-3.2.0-3
+
+- Fix addMsTimestamp() and subMsTimestamp(). Remove the check for
+ a valid input in diffTimestamp() and diffUsTimestamp().
+
+nxcomp-3.2.0-2
+
+- Fixed TR12E01973. Now the correct number of bits are used for the
+ number of points in a X_FillPoly request.
+
+nxcomp-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxcomp-3.1.0-6.
+
+nxcomp-3.1.0-6
+
+- Always use a timeout of 50 ms to update the congestion counter.
+
+nxcomp-3.1.0-5
+
+- Solve the possible deadlock caused by both proxies running out of
+ tokens at the same time.
+
+- In ServerProxy::handleCheckDrop() copy the list since the function
+ can delete the elements.
+
+nxcomp-3.1.0-4
+
+- Classes ProxyReadBuffer and ServerReadBuffer returned an invalid
+ number of characters to read in the case of a readable() failure.
+
+- Connections to proxy versions newer than 3.0.0 were not accepted.
+
+- Reading options from file could fail if options contained spaces
+ or other characters interrupting the fscanf()'s matching of input.
+
+- The proxy link could not be flushed if a ping request was replied
+ after the end of the read loop.
+
+nxcomp-3.1.0-3
+
+- Fixed a compilation warning on GCC 2.95.
+
+nxcomp-3.1.0-2
+
+- Solved TR09E01852. Modified the encoding of the number of rects
+ in the XSetClipRectangles request.
+
+nxcomp-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxcomp-3.0.0-46.
+
+nxcomp-3.0.0-46
+
+- Fixed TR09E01865 and TR08E01831. Assume the old behavior of compr-
+ essing the CUPS, SMB, HTTP and Font channels when connected to an
+ old proxy version.
+
+nxcomp-3.0.0-45
+
+- Retry the fork() 30 times, but only on Cygwin (Sob!).
+
+nxcomp-3.0.0-44
+
+- In the case of an error, try again to fork() after a second, for
+ a maximum of 5 times. This seems to constitute a valid workaround
+ to the intermittent fork() failures observed on Windows.
+
+- Fixed NXTransDestroy() to show the 'broken connection' dialog in
+ the case of a link failure on the client.
+
+- Handled the 'terminating' and 'terminated' messages as new proxy
+ stages.
+
+- Force all the directories and files created by the library to be
+ readable only by the user.
+
+- Don't complain if the shared memory segment can't be initialized
+ on Windows.
+
+nxcomp-3.0.0-43
+
+- Prevent the reallocation of the read buffer in the proxy and the
+ agent transport if the buffer was borrowed by an upper layer.
+
+- Let the house-keeping process remove the cache directories that
+ are empty and have not be used since more than 30 days.
+
+- Added the missing destruction of the ZLIB stream used for image
+ decompression at proxy shutdown.
+
+nxcomp-3.0.0-42
+
+- In handleFastWriteReply(), moved the initialization of the 'next'
+ pointer inside the '#ifndef __sun' block. This should fix the re-
+ maining encoding problems on SPARCs.
+
+nxcomp-3.0.0-41
+
+- VMWare virtual machines can have the system timer deadly broken.
+ In the case of timeout, try to send a ping regardless we are the
+ client or the server proxy to force a write by the remote.
+
+- Removed the messages 'Info: Using image cache parameters...' and
+ 'Info: Using image streaming parameters...' from the session log
+ if the image cache is not enabled.
+
+nxcomp-3.0.0-40
+
+- Removed the messages 'Info: Shutting down the NX transport' and
+ 'Info: End of NX transport requested by...' at the session tear
+ down.
+
+- Removed the remaining log output.
+
+nxcomp-3.0.0-39
+
+- Don't reset the timer on proxy shutdown.
+
+nxcomp-3.0.0-38
+
+- Don't reinstall the signal handler if the signal was enabled and
+ the NXTransSignal() action is NX_SIGNAL_FORWARD.
+
+nxcomp-3.0.0-37
+
+- Return a congestion level 9 if the agent channel is in congestion
+ state.
+
+- Set the idle timeout (used to update the congestion state) based
+ on the link type. The timeout is 0 ms with link LAN and 50 ms in
+ the case of MODEM, with the other values in the between.
+
+nxcomp-3.0.0-36
+
+- Changed the encoding of the RenderCompositeGlyphs requests. Use
+ a separate cache for X and Y. Send a single bit for offset X and
+ offset Y if they match the source coordinates.
+
+- Always use the memcpy() in the handleFastWrite*() on Sun, as the
+ alternative code doesn't work on SPARC if the buffer is not word
+ aligned.
+
+nxcomp-3.0.0-35
+
+- Ensure a smooth transition between different congestion states.
+ If the current congestion counter is greater than the previous,
+ ramp up the value quickly by taking the current counter. If the
+ new congestion counter is less than the previous, ramp down the
+ reported value slowly by calculating the average of the last 8
+ updates. Reset the congestion counter to 0 if no token reply is
+ pending and the proxy is idle until a timeout.
+
+nxcomp-3.0.0-34
+
+- Calculate the current congestion as the average of the last 3
+ frames sent.
+
+nxcomp-3.0.0-33
+
+- When sending a X_RenderCompositeGlyph update, send a single bit
+ if the source X and Y match the values in cache.
+
+- Save the check on the bytes readable from the proxy descriptor
+ after the select.
+
+nxcomp-3.0.0-32
+
+- Send the X_GetImage replies uncompressed to better leverage the
+ stream compression.
+
+- Before entering in congestion state, force a read to see whether
+ the remote proxy aborted the connection.
+
+nxcomp-3.0.0-31
+
+- Try to avoid using memcpy() in the channels' handleFastWrite*().
+
+- Changed the copyright notices at the beginning of the files that
+ were referring to NXPROXY to refer to NXCOMP.
+
+nxcomp-3.0.0-30
+
+- Set the agent and proxy descriptors as ready, when appropriate,
+ also in the case of an interrupt.
+
+nxcomp-3.0.0-29
+
+- On the X server side, read more events from the X server just be-
+ fore and just after having written some data. On the X client si-
+ de, apply the same to the proxy link.
+
+- X11 channels originate a congestion control code as soon as the-
+ re is some data left from the previous write.
+
+nxcomp-3.0.0-28
+
+- Displaced automatically the "channel unresponsive" and "no data
+ received from remote" dialogs if the error condition is ceased.
+
+- Rewritten the channel drain procedure.
+
+- Tried a different approach to the channel congestion handling.
+ The X11 channels are not drained after a blocking write but only
+ if a further write is requested and the channel is still in con-
+ gestion state. Benchmarks show that this is still sub-optimal,
+ compared to sending the congestion code immediately also for X11
+ channels. See the next version.
+
+nxcomp-3.0.0-27
+
+- Ignored the agent option 'defer'.
+
+- Dropped support for the 1.4.0 versions.
+
+- More fixes to support the 1.5.0.
+
+nxcomp-3.0.0-26
+
+- The channel read buffer can inherit the data to be encoded from
+ the caller, instead of taking it from the transport. This is le-
+ veraged by the agent channel to save the copy.
+
+- Ignored the agent option 'clients'.
+
+- Removed the deprecated code checking the CPU limits.
+
+- Removed the counters that were duplicated in the Statistics and
+ the Control classes.
+
+nxcomp-3.0.0-25
+
+- Improved the effectiveness of the caching of the RenderComposite-
+ Glyphs by using a differential encoding for the length, delta x
+ and delta y of the first string.
+
+- Better handle the compatibility between different formats of the
+ cache files.
+
+nxcomp-3.0.0-24
+
+- Fixed the compatibility problem with the 1.5.0 versions.
+
+- Removed the constants NXDisplayReadable, NXDisplayFlushable and
+ NXDisplayCongestion. Now nxcompext has three distinct functions.
+
+nxcomp-3.0.0-23
+
+- Removed support for Rdp, Tight and Hextile packed images decod-
+ ing since they have been made obsolete by the new NX server.
+
+- Use the value 0 for the action is_hit and 1 for is_added. This
+ increases the frequency of zeroes in the encode buffer, giving
+ better compression.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+nxcomp-3.0.0-22
+
+- Implemented an alternate encoding reducing the size of the int
+ caches to 16 elements and transmitting the values in blocks of
+ 4 bits. Although this encoding reduces the effectiveness of
+ the differential compression, it allows better compression of
+ the final stream, resulting in a 10% to 20% gain in all condi-
+ tions. The new encoding is experimental, as it would make the
+ 3.0.0 incompatible with all the previous NX versions. Use this
+ package as a reference for future implementations.
+
+nxcomp-3.0.0-21
+
+- Encode the first two coordinates of a FillPoly message by using
+ a differential encoding, thus the origin of the polygon is not
+ included in the checksum. This is aimed to work in combination
+ with the agent converting all the FillPoly requests to the rela-
+ tive coordinate mode.
+
+- Add the coordinate mode to the checksum of the PolyPoint and Po-
+ lyLine messages so that it doesn't need to be encoded separately.
+
+- Disable the streaming for all messages. This saves the encoding
+ of a boolean for each message that could potentially be streamed.
+
+- Don't try to match the block size when encoding a value based on
+ an IntCache. This saves the additional bool in 90% of the cases.
+
+- Removed support for the former RDP and RFB session types.
+
+- Due to the above changes, this version is incompatible with the
+ previous 3.0.0 releases.
+
+nxcomp-3.0.0-20
+
+- Added support for the 'lossy', 'lossless' and 'adaptive' pack me-
+ thod literals. These values activate the dynamic selection of the
+ pack method by the agent.
+
+- Made the 'adaptive' pack method the default for all link types.
+
+- The default stream compression level is now 6 for link type ISDN,
+ 4 for ADSL and 1 for WAN. The default data compression level is
+ always 1, except for LAN that is 0.
+
+nxcomp-3.0.0-19
+
+- Print in the session log the X11 display that the proxy is imper-
+ sonating or where it is forwarding the connections.
+
+nxcomp-3.0.0-18
+
+- Implemented decoding of the PACK_BITMAP_16M_COLORS pack method.
+ This is a very simple encoder removing the 4th byte in 32 bits-
+ per-plane images. This encoder is intended to better leverage
+ the stream compression on low bandwidth links.
+
+- Removed the code cleaning the padding bytes in RenderAddGlyphs
+ and RenderCompositeGlyphs as the operation is now performed in
+ Xrender.
+
+- Removed the "Info: Synchronizing local and remote caches." and
+ "Info: Using remote server '...'." lines from the session log.
+
+nxcomp-3.0.0-17
+
+- Determine the CPU endianess at compile time only on Linux and
+ Cygwin.
+
+nxcomp-3.0.0-16
+
+- Optimized the memory allocation of the ReadBuffer classes. The
+ buffers from the Transport classes are used, when possible, to
+ avoid the copy.
+
+nxcomp-3.0.0-15
+
+- Reworked the code dealing with the channel congestion control
+ messages for increased efficiency.
+
+- Removed the pending_ flag from the proxy and channel class mem-
+ bers. If needed, the classes will query the transport buffers
+ to see whether there is data pending.
+
+- Removed the additional parameter from NXTransFlush().
+
+- The proxy doesn't issue anymore a sync control message on a X
+ reply. Anyway it will respond to the request for compatibility
+ with older versions.
+
+- Removed the dynamic selection of the encoding method for the
+ X_QueryColors request and X_ListFonts, X_QueryColors, X_Query-
+ Font replies. Now all of them use the differential encoding to
+ better leverage the stream compression.
+
+- Fixed to build on SUNs where we don't have endian.h.
+
+nxcomp-3.0.0-14
+
+- When handling partial proxy messages, don't try to determine how
+ many bytes still need to be read if the ZLIB stream compression
+ is enabled.
+
+- If a message can't be located, the ReadBuffer class checks if it
+ is possible to consume the data already in the transport buffer.
+
+- Optimize the MD5 routines by determining the CPU endianess at
+ compile time.
+
+- Force Drawable and GContext to be CARD32 in NXproto.h.
+
+nxcomp-3.0.0-13
+
+- Changed the semantic of the NXDisplayFlushHandler callback. The
+ function is called when new data is sent to the remote proxy or,
+ with a 0 length, upon receiving a new token reply, so that the
+ agent can update its congestion state.
+
+- Added the NXTransCongestion() function. It returns a value bet-
+ ween 0 and 9 indicating the congestion level based on the tokens
+ remaining. A value of 9 means that the link is congested and no
+ further data can be sent.
+
+- Removed the congestion and synchronization callbacks. They are
+ superseded by the new NXTransCongestion() implementation.
+
+nxcomp-3.0.0-12
+
+- Send the token replies at the end of the encode loop instead of
+ flushing the buffer immediately.
+
+- Fixed TR05E01687. Correctly detect CTRL-ALT-SHIFT-ESC keystrokes.
+
+- Renamed the option 'block' as 'tile'.
+
+- Ignored the option 'menu', targeting the X11 agent.
+
+nxcomp-3.0.0-11
+
+- Removed the 'interactive' attribute from generic channels. We now
+ use the 'prioritized' attribute which yields the same result.
+
+- Simplified the channels' read loop by always reading only once.
+
+- The channels flush the link as soon as the token is exceeded even
+ if the flush policy is set to deferred.
+
+- Reserved more cache memory for the images when running a shadow
+ session.
+
+nxcomp-3.0.0-10
+
+- Added the NXDisplayWriteHandler callback definition.
+
+- Removed the code that forced the proxy to retain in the cache the
+ images referenced at session startup.
+
+- Disabled the persistent image cache since this is not supported
+ by the current agent. This will save the overhead caused by the
+ image house-keeping process.
+
+nxcomp-3.0.0-9
+
+- Fixed a cast problem in GetBytesReadable().
+
+nxcomp-3.0.0-8
+
+- Added the NXTransTime() utility. It return the time in milliseconds
+ elapsed since the last call to the same function. Useful for bench-
+ marking the Xlib layer.
+
+- Ignored the option 'block' targeting the X11 agent.
+
+nxcomp-3.0.0-7
+
+- Ignored the options 'shadow', 'shadowmode' targeting the X11 agent.
+
+- Added the session type 'shadow'.
+
+nxcomp-3.0.0-6
+
+- Fixed TR08D01484. Fixed a bug in the cleanup of the RenderAddGlyphs
+ messages. We clean up only the glyphs with depth 8, width greater
+ than 1 and pixmap byte pad 4.
+
+- Added file COPYING.
+
+nxcomp-3.0.0-5
+
+- Updated the copyright notices to the current year.
+
+nxcomp-3.0.0-4
+
+- Imported changes up to nxcomp-2.1.0-6.
+
+- Fixed TR12D01563. Changed the configure script to always build the
+ library with the -fPIC option. This is related to the way SELinux
+ works.
+
+- Fixed the dependency from local endianess for 16-bit color RDP un-
+ packing functions. This caused wrong colors to be displayed when the
+ proxy and the X server were running on two separate machines having
+ different endianess.
+
+- Fixed TR10D01523. The Channel::handleDrain() method now accounts
+ for the fact that agent connections can't be drained.
+
+- Changed the Tight and Hextile decoding functions to use the X ser-
+ ver's byte order.
+
+nxcomp-3.0.0-3
+
+- Changed the main loop to handle the 3.0.0 version.
+
+nxcomp-3.0.0-2
+
+- Updated the file VERSION.
+
+nxcomp-3.0.0-1
+
+- Opened the 3.0.0 branch based on nxcomp-2.0.0-81.
+
+nxcomp-2.0.0-81
+
+- Fixed the dependency from local endianess for JPEG and PNG decomp-
+ ression functions. This caused wrong colors to be displayed when
+ the proxy and the X server were running on two separate machines
+ having different endianess.
+
+- Fixed the number of entries in the handleColormap() function.
+
+nxcomp-2.0.0-80
+
+- Fixed TR06D01404. Removed the warning issued when calling the
+ AgentTransport::drain() method.
+
+nxcomp-2.0.0-79
+
+- Updated copyright to year 2006.
+
+nxcomp-2.0.0-78
+
+- Fixed a bug in the cleanup of the RenderAddGlyphs messages.
+
+- Minor improvements to the encoding of the RenderCompositeGlyphs
+ and RenderComposite requests.
+
+- Added 'client' to the list of the ignored options.
+
+nxcomp-2.0.0-77
+
+- Added cleanup of the padding bytes in the RenderCompositeGlyphs
+ and RenderAddGlyphs requests.
+
+nxcomp-2.0.0-76
+
+- Before adding the frame's bytes to the tokens, the frame length
+ is normalized based on the stream compression ratio of the last
+ frame sent. This avoids entering the drain loop too early when
+ the data is highly compressible.
+
+- Moved the render messages' private data in a union to reduce the
+ footprint of the render store.
+
+nxcomp-2.0.0-75
+
+- The action performed on the remote message store and the affected
+ position are encoded as a single value. This saves approximately
+ 1 bit per each message.
+
+- Created more Compat classes to handle the backward compatibility
+ with the 1.4.0 and 1.5.0 versions.
+
+nxcomp-2.0.0-74
+
+- Added support for the RLE pack method and made it the default if
+ the selected link type is LAN.
+
+- Removed the legacy support for the 'render' option provided at X
+ server side.
+
+- When defining LAME in ClientChannel.h, the channel has the chance
+ of suppressing more opcodes by the handleTaintLameRequest() call.
+ This is for test purposes.
+
+nxcomp-2.0.0-73
+
+- The X_NXSetUnpackColormap and X_NXSetUnpackAlpha now carry their
+ data in compressed form. The alpha data is compressed using the
+ ZLIB RLE encoding, while the colormap data is compressed using
+ the default ZLIB deflate.
+
+- Thanks to the above changes, ZLIB data compression of all messa-
+ ges which do not have a specific encoding is turned off, so that
+ we can make better use of the final stream compression.
+
+- Created new message structures to handle the compatibility with
+ the old proxy versions. When connected to an old proxy version
+ the agent should use the NXSetUnpackColormapCompat() and NXSet-
+ UnpackAlpha() interfaces.
+
+nxcomp-2.0.0-72
+
+- Solved a compatibility problem with the 1.X.X versions due to the
+ new render encodings.
+
+nxcomp-2.0.0-71
+
+- Improvements to X_RenderSetPictureClipRectangles.
+
+- Fixed handleUnpack() to pass the correct byte order parameter to
+ to the unpack alpha function.
+
+- Added the --parent parameter to the client even in pulldown mode.
+
+- Fixed a deallocation bug in StaticCompressor.
+
+nxcomp-2.0.0-70
+
+- Added compression of X_RenderSetPictureFilter, X_RenderSetPicture-
+ Transform, X_RenderTrapezoids and X_RenderTriangles.
+
+nxcomp-2.0.0-69
+
+- Changed the format of the persistent cache to accommodate the new
+ encoding of the render opcodes. Caches from the 1.4.0 and 1.5.0
+ should be still loaded and saved correctly when connected to and
+ old version of the library.
+
+- Improved the encoding of the X_CreatePixmap, X_ChangeGC, X_Render-
+ CompositeGlyphs, X_RenderComposite, X_RenderCreateGlyphSet, X_Rend-
+ erFreePicture and X_RenderCreatePicture messages. Added new classes
+ to handle the backward compatibility.
+
+- Made the static compression and decompression code reside in the
+ same class.
+
+nxcomp-2.0.0-68
+
+- Improved the encoding of the X_RenderCreateGlyphSet and X_Render-
+ FreeGlyphSet requests.
+
+nxcomp-2.0.0-67
+
+- Modified the following session messages:
+
+ From: "Session: Session starting at..."
+ To: "Session: Starting session at..."
+
+ From: "Session: Session terminating at..."
+ To: "Session: Terminating session at..."
+
+- Improved the encoding of the requests creating or freeing an XID.
+ This affects X_CreateGC, X_CreateWindow, X_CreatePixmap, X_Render-
+ CreatePicture, X_FreeGC, X_DestroyWindow, X_FreePixmap, X_Render-
+ FreePicture.
+
+- Added 'streaming' and 'backingstore' to the list of options used
+ by agents.
+
+- Modified the info messages to print the ZLIB compression paramet-
+ ers to be more compact and only use two lines.
+
+nxcomp-2.0.0-66
+
+- When part of an agent, the proxy will wait for the NXTransDestroy()
+ function to initiate the shutdown.
+
+nxcomp-2.0.0-65
+
+- Starting from this version the NX client can control the behaviour
+ of the client proxy by monitoring the messages marked as "Session".
+
+ At the early initialization the proxy will print:
+
+ "Session: Session starting at '...'.
+
+ The ellipsis here represent the current timestamp, as reported by
+ the POSIX function ctime():
+
+ Once the session is running, the proxy will print:
+
+ "Session: Session started at '...'.
+
+ At the time the session is being shut down, the proxy will print:
+
+ "Session: Session terminating at '...'.
+
+ Followed by:
+
+ Session: Session terminated at '...'.
+
+ The message "Info: Starting X protocol compression." is removed,
+ replaced by the message 'Session started at...' with the same
+ meaning.
+
+ Once the message 'Session: Session terminated at..." is read from
+ the output, the client can optionally wait for the proxy process
+ to complete and terminate with an exit code 0.
+
+- The "Session" messages are not printed when the proxy is running
+ on the NX server side, as part of an agent.
+
+nxcomp-2.0.0-64
+
+- Reduced the default token limit from 32 to 24. The synchronizat-
+ ion callback is triggered by the tokens going below half the li-
+ mit.
+
+nxcomp-2.0.0-63
+
+- Added -I/usr/include/c++ to makedepend.
+
+nxcomp-2.0.0-62
+
+- The house-keeping process is now started upon the initialization,
+ if the memory cache is enabled, and, on the X server side, when
+ the remote actually requested access to the image cache.
+
+nxcomp-2.0.0-61
+
+- Added a NX_HANDLER_SYNCHRONIZATION callback to NXTransHandler().
+ The handler is called when the agent can use the available band-
+ width to synchronize X objects that are corrupted or incomplete.
+
+ The reason can be:
+
+ NX_SYNCHRONIZATION_BEGIN: The synchronizationis is allowed.
+
+ NX_SYNCHRONIZATION_END: The synchronizationis must stop.
+
+ The reason can be determined by agents by using the NXBeginSynch-
+ ronization and NXEndSynchronization values defined in NXvars.h.
+
+- Bytes from 14 to 24 in the X_NXGetControlParameters reply report,
+ respectively, the frame timeout, the ping timeout, the preferred
+ image split mode and the split size threshold.
+
+nxcomp-2.0.0-60
+
+- The following messages used by the NX client and server have been
+ changed. The NX client and server should be modified accordingly.
+
+ From: "Info: Shutting down the link and exiting."
+ To: "Info: Shutting down the NX transport."
+
+ From: "Info: End of session requested by remote proxy."
+ To: "Info: End of NX transport requested by remote"
+
+ From: "Info: End of session requested by agent termination."
+ To: "Info: End of NX transport requested by agent."
+
+ From: "Info: End of session requested by signal '...'."
+ To: "Info: End of NX transport requested by signal '...'."
+
+ From: "Info: Shutting down the link and exiting."
+ To: "Info: Shutting down the NX transport."
+
+ From: "Info: Waiting for cleanup timeout to complete."
+ To: "Info: Waiting the cleanup timeout to complete."
+
+ From: "Info: Waiting for watchdog process to complete."
+ To: "Info: Waiting the watchdog process to complete."
+
+nxcomp-2.0.0-59
+
+- Added more debug information regarding the timing of packets sent
+ and received.
+
+- Added the possibility to redirect the log output to a file that can
+ be later shared with nxssh running in "binder" mode. This is useful
+ when testing the forwarding of the SSHD connection by nxssh to the
+ agent. Activated by defining BINDER in Loop.cpp.
+
+nxcomp-2.0.0-58
+
+- Fixed the unpack alpha procedure to only rely on the image's byte
+ order.
+
+- Solved the X_PutImage encoding problem introduced in the 2.0.0-56
+ version and restored the compatibility with the 1.5.0 version.
+
+nxcomp-2.0.0-57
+
+- Added a NXTransFile() function. It returns the name of the files
+ used by the proxy for the current session.
+
+ The type parameter can be:
+
+ NX_FILE_SESSION: Usually the file 'session' in the user's session
+ directory.
+
+ NX_FILE_ERRORS: The file used for the diagnostic output. Usually
+ the file 'errors' in the session directory.
+
+ NX_FILE_OPTIONS: The file containing the NX options, if any.
+
+ NX_FILE_STATS: The file used for the statistics output.
+
+ The returned string is allocated in static memory. The caller must
+ copy the string upon returning from the function, without freeing
+ the pointer.
+
+- Fixed the PANIC in the handling of the abort split messages.
+
+- The encode and decode routines may write one byte past the nominal
+ end of the encode buffer. This additional byte is now included in
+ the payload. This is actually a bug, but harmless.
+
+nxcomp-2.0.0-56
+
+- Added the X_NXAbortSplit request. It can be used to interrupt the
+ streaming of all the messages currently in the split store for
+ the specified resource. Depending if the split store did or did
+ not contain split messages, the client will receive an immediate
+ end-split or no-split notification.
+
+- Removed the split modes NXSplitModeEager and NXSplitModeLazy. The
+ available modes are now NXSplitModeSync and NXSplitModeAsync. The
+ mode NXSplitModeAsync replaces the two old modes and is now the
+ default. Similarly to NXSplitModeEager, it makes the proxy split
+ only messages that exceed a size threshold, but the threshold is
+ generally smaller than in the previous versions.
+
+ #define NXSplitModeDefault 0
+ #define NXSplitModeAsync 1
+ #define NXSplitModeSync 2
+
+- Renamed X_NXSplit to X_NXSplitData, X_NXAbortSplit to X_NXSplitEv-
+ ent.
+
+- The proxy now enters a drain loop, when in congestion state, and
+ waits until the decongestion. Also the X channels are drained if
+ blocked.
+
+- The select is restarted immediately if only the proxy is selected
+ and the data read doesn't make a complete message.
+
+- The size of the shared memory segment used by the X server proxy
+ is now negotiated at startup and the selected value is printed in
+ the session log.
+
+- Added the option 'encrypted'. It tells the local proxy if it is
+ running as part of a program providing encryption of the point to
+ point communication. This is useful to determine if the proxy can
+ block waiting for data or needs to yield to the client to let it
+ handle the remote connection.
+
+nxcomp-2.0.0-55
+
+- Fixed handleRestart() to correctly send the end-split event only
+ after the split sequence has been closed by the client.
+
+- Fixed a possible memory error in the Keeper class occurring if the
+ image caches were erased while in the middle of a loop.
+
+nxcomp-2.0.0-54
+
+- Added a '--parent' option when running the client in dialog mode.
+ This is the process id that needs to be signaled in the case the
+ user chooses to do so.
+
+nxcomp-2.0.0-53
+
+- Solved a bug in the abort split procedure. The procedure assumed
+ that the split had to be at the head of the list. This may not be
+ the case if the split was loaded from disk asynchronously, after
+ a different split with the same checksum was recomposed.
+
+- By defining STRICT in Loop.cpp, the number of available tokens is
+ set to 1. This can be used to trigger the congestion more often
+ than it would possible when testing the software with the default
+ settings.
+
+- Added more debug output to the procedures handling the streaming
+ of the images.
+
+- Reset the channel's split pending and congestion flags in the fin-
+ ish procedure. Not doing so caused some additional loops at chan-
+ nel shutdown.
+
+- Fixed a bug on Cygwin that prevented the log files to be succes-
+ sfully reopened when the size limit was exceeded.
+
+- Failures to write to the agent transport are reported sooner when
+ the channel is finished. This saves a few more loops at session
+ shutdown.
+
+nxcomp-2.0.0-52
+
+- Started implementing a new handler to let the agent include arbit-
+ rary data in the transport statistics. The parameter, in this case,
+ is a pointer to a pointer to a null terminated string. The pointer
+ is set at the time the handler is registered. The pointed string
+ will have to be filled by the agent with its statistics data. For
+ now, only the interfaces and the stubs exist.
+
+- Disabled the timestamp cache as it still causes rounding problems
+ when calculating the current bitrate.
+
+nxcomp-2.0.0-51
+
+- Removed SelectPackMethod(), not used anymore, from Pack.c.
+
+nxcomp-2.0.0-50
+
+- Added the X_NXFinishSplit request. It forces the proxy to comple-
+ tely transfer all the split messages for the given resource, and
+ then notify the agent.
+
+- Fixed the statistics to not account the split bits to the control
+ token.
+
+nxcomp-2.0.0-49
+
+- Fixed a bug that caused the split timeout to be reset even if a
+ different channel had splits to send.
+
+- Removed an error condition that arose when a split operation was
+ requested by a different channel than the first to connect. The
+ reason is that an auxiliary channel (like the one created by the
+ server to store the keyboard configuration) can be the first to
+ open a connection to the X server, then can come the agent, that
+ is actually using the NX opcodes. The proxy will now simply print
+ a debug message.
+
+- Removed a further error condition that was assumed by the proxy
+ if a pending flush was detected while no channel was selected for
+ output. This can actually happen if the channel was dropped and,
+ in the meanwhile, the user requested the proxy statistics.
+
+nxcomp-2.0.0-48
+
+- Added a 'type' parameter to NXTransFlush(). The new NX_FLUSH_IDLE
+ type should be used by agents when they have finished handling all
+ their clients and are going to wait for more input. This is the
+ case, for example, of the X agent returning from WaitForSomething()
+ after having set a small timeout to find out if there are clients
+ ready, or the case of a RDP agent finding that there are no opcodes
+ to read from the RDP server. The 'idle' flush should be requested
+ also when the X11 agent is waiting for a split to complete. When
+ the flag is used, the proxy uses the available bandwidth to encode
+ more low-priority data, like the payload of images being streamed.
+
+nxcomp-2.0.0-47
+
+- Added a new RGB image encoder. For now the encoder uses a static
+ Z stream to compress the image data in the destination buffer and
+ allows the agent to use the simplest encoding by still separating
+ the alpha channel from the image data. The new encoder can be the
+ the base for implementing color reduction by dithering or a color-
+ mapped translation of the image similar to PNG, but without the
+ PNG overhead and with the colormap being sent to the client using
+ the NXSetUnpackColormap() opcode.
+
+- Put the routines implementing static deflating and inflating of
+ a ZLIB buffer from the Compressor and Decompressor classes to Z.h
+ and Z.cpp, so that they can be reused by the new RGB encoder.
+
+nxcomp-2.0.0-46
+
+- Fixed a segfault arising when trying to start a child without the
+ NX transport.
+
+nxcomp-2.0.0-45
+
+- Undefined the MATCH directive.
+
+nxcomp-2.0.0-44
+
+- Changed the encoding of the X_CreatePixmap, X_CreateGC, X_Render-
+ CreatePicture, X_CreateWindow, RenderCreateGlyphSet.cpp. The Xid
+ of the drawable is included in the checksum of the X_CreateGC and
+ X_CreatePixmap message. This leverages the way GC and Pixmaps are
+ allocated in the X agent to obtain better compression.
+
+- Removed the code handling the reset of the proxy connection. This
+ functionality was unused since when the persistence is handled by
+ the agent.
+
+- Added a specific section in the statistics output for the render
+ extension.
+
+nxcomp-2.0.0-43
+
+- Fixed a bug that could have caused the sending of multiple 'end
+ split' messages for the same split sequence.
+
+- Added handling of the option 'strict'.
+
+nxcomp-2.0.0-42
+
+- Added a missing channel switch directive when encoding abort split
+ messages at the server side. This could cause a decoding error on
+ the client.
+
+nxcomp-2.0.0-41
+
+- Ensured that the link is flushed immediately on the X server side
+ when important keyboard or mouse activity is detected in input.
+
+- Implemented a timestamp cache to avoid calling gettimeofday() when
+ it is enough to use the last timestamp gotten from the system. The
+ cache can be disabled by undefining CACHE_TIMESTAMP in Timestamp.h.
+
+nxcomp-2.0.0-40
+
+- Added the karma delay field to the X_NXGetControlParameters reply.
+
+- Solved a bug with the decoding of split messages likely to happen
+ only when using link type LAN.
+
+nxcomp-2.0.0-39
+
+- Implemented separate flow control for the generic channels and the
+ image streaming data.
+
+- Improved the split procedure to load a message from the disk cache
+ if found after it was originally discarded because locked.
+
+nxcomp-2.0.0-38
+
+- Renamed the 'shmem' option as 'shseg'. The 'shmem' option becomes
+ specific to the agent and will be used together with 'shpix' option
+ to indicate if, respectively, the shared memory extension and the
+ use of the shared pixmaps must be enabled in the agent server. The
+ new option will be instead used by the proxy to determine the size
+ of the memory segment shared between the proxy and the X server.
+
+- Added the 'shmem', 'shpix', 'keyboard' and 'clipboard' to the list
+ of ignored options. The 'keyboard' option should become a synonym
+ of 'kbtype'. The 'clipboard' option will tell the NX agent if the
+ clipboard support should be disabled for security reasons.
+
+nxcomp-2.0.0-37
+
+- Ensured that, when running a raw session, the persistent cache is
+ loaded and saved only once in the session lifetime.
+
+- Added the 'product' keyword to the list of recognized options. The
+ option is ignored by the proxy, but can be used by the client or
+ server to facilitate the support.
+
+nxcomp-2.0.0-36
+
+- Added the remote version number in the X_NXGetControlParameters
+ reply.
+
+- Solved a bug related to the removal of the split stores.
+
+- Removed the unused code dealing with the flush timeouts.
+
+nxcomp-2.0.0-35
+
+- Added an alert to notify the user about the failure of the XDMCP
+ session.
+
+nxcomp-2.0.0-34
+
+- The active channels and the agent resources are now stored in a
+ list container.
+
+- Added the X_NXFreeSplit request. The request is currently unused
+ because the split store is freed automatically when it becomes
+ empty, but can be useful in future if we want to implement other
+ otpimizations.
+
+nxcomp-2.0.0-33
+
+- There is now a split store for each agent resource. This allows
+ the proxy to divide the bandwidth among the agent resources.
+
+- A simple round-robin load-balancing is implemented, dividing the
+ bandwidth equally among all the split stores.
+
+- If there is a previous request being streamed for the same res-
+ ource, cached messages are appended to the split store and then
+ committed in the original order. This makes possible to stream
+ the colormap and the alpha channel data even if the split invol-
+ ves multiple PutImage or PutPackedImage operations in a single
+ start-split/end-split sequence.
+
+- Implemented the commit store class. Made the commit store expand
+ the message in the final buffer, instead of leveraging the mes-
+ sage store.
+
+- Channels having a drop command pending are checked before trying
+ to load or save the cache. This prevents a potential problem with
+ the protocol violation error that could be reported by the client
+ side proxy.
+
+- The current bitrate is now calculated at the time the transport
+ actually writes the data to the network, not at the time the data
+ is appended to the transport by the upper layers. The reason is
+ that the data can be compressed by the stream compressor and so
+ we can calculate the real bitrate only after having flushed the
+ ZLIB stream. This fixes the wrong numbers that could be reported
+ by the statistics in the previous versions.
+
+nxcomp-2.0.0-32
+
+- More progress in the implementation of the new image streaming.
+ This version has been tested to work when connecting to an 1.5.0
+ server. Due to the significant changes in the way the streaming
+ works in the newer versions, split is never activated by a 2.0.0
+ server connecting to a 1.5.0 client.
+
+- Fixed the NXTransClose() function to check if the fd matches the
+ NX agent connection.
+
+- Fixed the includes in Socket.h to compile on Solaris and MacOSX.
+
+nxcomp-2.0.0-31
+
+- Changed the NX transport functions that didn't require a NX fd
+ parameter to include one. The value can be NX_FD_ANY to signify
+ any running NX transport.
+
+nxcomp-2.0.0-30
+
+- More progress in the new implementation of image streaming.
+
+- This version is apparently compatible with the 1.5.0 client but
+ needs further testing.
+
+nxcomp-2.0.0-29
+
+- Implemented the NXTransHandler() interface and made the proxy
+ use the callback, when it is installed, instead of the notifi-
+ cation events.
+
+- Modified the agent transport to report an EOF condition as soon
+ as the channel is dropped, instead of reporting the error only
+ after the proxy shutdown. This allows the agent to handle its
+ clients while the proxy is handling the grace timeout.
+
+- Added a test facility to verify if the client and server caches
+ match at shutdown.
+
+- More advances in the new implementation of streaming.
+
+nxcomp-2.0.0-28
+
+- Made the session shutdown faster, normally below 1 second. The
+ grace time is now 500 ms once all channels have been dropped.
+
+nxcomp-2.0.0-27
+
+- The house-keeping process will now run a number of iterations
+ (currently 100) and then will exit. The proxy will check the
+ exit code and, if it was requested by the child, will restart
+ it. This is intended to keep the memory consumption low, as I
+ noted that after a big number of iterations the performance of
+ the allocator start to degrade quickly.
+
+nxcomp-2.0.0-26
+
+- Started implementing the NXTransHandler() interface to let the X
+ application hook a callback and be notified by the proxy when an
+ event occurs. At the moment only congestion events are supported.
+ The interface makes possible for the caller to provide a generic
+ parameter. This parameter is passed back to the handler function.
+ The parameter is expected to be the Xlib display pointer, given
+ that the proxy doesn't have access to the Xlib structures.
+
+- Moved all the internal variables shared between Xlib, nxcompext
+ and the X server in nxcomp. Declarations and function prototypes
+ moved to NXvars.h.
+
+- Removed the NXGetCleanupParameters() and NXGetImageParameters()
+ interfaces and the remaining references to the unused display
+ buffer and image cleanup functions.
+
+- In this version the images streaming functionality is disabled.
+ Because of that, expect compatibility problems when connecting
+ to a different nxcomp version.
+
+nxcomp-2.0.0-25
+
+- Forced the end of the session earlier if a shutdown has been re-
+ quested by the local side but the remote proxy is not responding.
+
+nxcomp-2.0.0-24
+
+- Changed the loop deleting the file items in Keeper to pick the
+ first element instead of looping through the iterator.
+
+- More problems with the libstdc++ allocators. During the tests, I
+ found that the Keeper class can leak industrial amounts of memory.
+ Valgrind says that the objects that are not freed are the File
+ items we allocate in collect(). As this looked suspicious, I log-
+ ged the constructors and destructors and can say that everything
+ is OK on our side. Unfortunately, by removing the spleeps used
+ to let the program work silently in background, one can find that
+ the memory occupation still grows by a MB every few seconds. This
+ is less a problem on Windows, where the memory occupation remains
+ almost constant. See the comment on __USE_MALLOC below.
+
+- Increased the maximum size of a message that the proxy is allo-
+ wed to cache to 4MB. This makes possible to cache many replies
+ (like the X_QueryFont replies) that often exceeded the previous
+ limit.
+
+nxcomp-2.0.0-23
+
+- Fixed a compatibility problem with the 1.5.0 that arose when
+ encoding an image with caching and streaming temporarily disa-
+ bled.
+
+- Removed the __USE_MALLOC define in Types.h because this is what
+ the g++ developers want. I'll try to avoid flames and will not
+ comment on this.
+
+- Added a --with-use-malloc configure option. This option should
+ be used when building the release packages on GCC versions that
+ support it.
+
+- Started fixing the commit procedure to be able to deal with the
+ alpha channel.
+
+nxcomp-2.0.0-22
+
+- Prevented channels from being dropped while in the middle of a
+ read loop.
+
+- Added a small utility ensuring that the SIGCHLD we receive in
+ the main loop can be always identified as pertaining to an our
+ child.
+
+- Increased the space available for the control messages at the
+ beginning of the encode buffer and ensured that there is always
+ enough space for adding a token message, in the case this is
+ required by the flush procedure.
+
+- Made all cache files readable only by the user.
+
+nxcomp-2.0.0-21
+
+- Solved a bug in the streaming of images that caused the agent's
+ clients to never resume when connected to an old proxy version.
+
+nxcomp-2.0.0-20
+
+- Disabled again streaming of the alpha channel data. By enabling
+ it, the agent randomly fails to repaint the exposed regions. The
+ reason is to be investigated.
+
+nxcomp-2.0.0-19
+
+- Implemented the split mode NXSplitModeSync. When this mode is
+ selected, the proxy will not send data for the split at the head
+ of the list until the remote peer has confirmed that the message
+ is not available in the image cache. This is going to be useful
+ in combination with the lazy encoding.
+
+- Improved the error detection in the case of failure when saving
+ a recomposed split on disk.
+
+- Added X_NXSetUnpackAlpha to the set of requests that is possible
+ to stream.
+
+nxcomp-2.0.0-18
+
+- Enabled the 2.0.0 features that were disabled for test purposes.
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+nxcomp-2.0.0-17
+
+- Introduced a new channel of type 'slave'. Opening a slave channel
+ should let the proxy fork a new NX client instance (or whatever
+ is in the NX_SLAVE environment) and pass to it the channel's desc-
+ riptors. This client instance should authenticate the peer, for
+ example using the proxy cookie (see how this is implemented in
+ nxsensor) and then negotiate the service to be used on the channel.
+ This can be used to implement forwarding of arbitrary ports or ad-
+ ditional services, like a simple file transfer protocol. For now
+ the implementation is incomplete. Opening a slave channel will
+ result in the remote proxy just dropping the channel connection.
+
+- The proxy is forcibly flushed at the end of each loop. This is a
+ temporary fix until the agents are updated to flush the proxy link
+ on demand.
+
+- Added a new alert to be used in the case the RDP session is closed
+ and replaced with a new session using the same Windows account.
+
+- Added a forward declaration of class RenderMinorExtensionStore in
+ file RenderExtension.h to compile using gcc 4.0.X.
+
+- Added removal of all .orig file when running a 'make clean'.
+
+- The code uses again the 2.0.0 style shutdown (the one waiting for
+ the watchdog process to terminate).
+
+nxcomp-2.0.0-16
+
+- Added the NXTransChannel() interface to allow agents to create
+ new channels connected to the port that will be forwarded by the
+ remote proxy. The function returns 1 on success, 0 if the NX
+ transport is not running, or -1 in the case of error. On success,
+ the descriptor provided by the caller can be used for all the
+ subsequent I/O, including selecting the descriptor to check if
+ I/O is possible. The type parameter not only tells to the proxy
+ the remote port where the channel has to be connected, but gives
+ a hint about the type of data that will be carried by the channel,
+ so that the proxy can optimize the compression and schedule the
+ traffic on the slow link.
+
+ The type can be:
+
+ NX_CHANNEL_X: The channel will carry X traffic and it
+ will be connected to the remote X display.
+
+ NX_CHANNEL_CUPS: The channel will carry CUPS/IPP protocol.
+
+ NX_CHANNEL_SMB: The channel will carry SMB/CIFS protocol.
+
+ NX_CHANNEL_MEDIA: The channel will transport audio or other
+ multimedia data.
+
+ NX_CHANNEL_HTTP: The channel will carry HTTP protocol.
+
+ NX_CHANNEL_FONT: The channel will forward a X font server
+ connection.
+
+ Only the proxy running at the NX server/X client side will be
+ able to create a X, CUPS, SMB, MEDIA and HTTP channel. A proxy
+ running at the NX client/X server side can create font server
+ connections. The channel creation will also fail if the remote
+ end was not set up to forward the connection.
+
+ To create a new channel the agent will have to set up a socket-
+ pair and pass to the proxy one of the socket descriptors.
+
+ Example:
+
+ #include <sys/types.h>
+ #include <sys/socket.h>
+
+ int fds[2];
+
+ if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fds) < 0)
+ {
+ ...
+ }
+ else
+ {
+ //
+ // Use fds[0] locally and let the
+ // proxy use fds[1].
+ //
+
+ if (NXTransChannel(fds[1], NX_CHANNEL_X) <= 0)
+ {
+ ...
+ }
+
+ //
+ // The agent can now use fds[0] in
+ // read(), write() and select()
+ // system calls.
+ //
+
+ ...
+ }
+
+ Note that all the I/O on the descriptor should be non-blocking,
+ to give a chance to the NX transport to run in the background
+ and handle the data that will be fed to the agent's side of the
+ socketpair. This will happen automatically, as long as the agent
+ uses the XSelect() version of the select() function (as it is
+ normal whenever performing Xlib I/O). In all the other cases,
+ like presumably in the agent's main loop, the agent will have
+ to loop through NXTransPrepare(), NXTransSelect() and NXTrans-
+ Execute() functions explicitly, adding to the sets the descript-
+ ors that are awaited by the agent. Please check the implementa-
+ tion of _XSelect() in nx-X11/lib/X11/XlibInt.c for an example.
+
+nxcomp-2.0.0-15
+
+- Some changes aimed at finding a workaround to the unreliability
+ of the font server connections. The X server seems to be really
+ picky about the network latency, so we try to read immediately
+ from the channel just being created, instead of waiting for a
+ new loop. Additionally the proxy will keep reading from the font
+ server connections even after the maximum length of the frame
+ is exceeded, in the hope that it will be able to send a complete
+ message in a single frame.
+
+- updated the various internal consistency tests run when the TEST
+ or INFO flags are enabled.
+
+nxcomp-2.0.0-14
+
+- It seems that the closure of the socket sometimes takes several
+ seconds, on Windows, after the connection is broken, with the
+ result that the alert can be shown long after the user has gone
+ after the failed session. We now skip the closure of the proxy
+ link on Windows if we are about to exit.
+
+- The code uses the 1.5.0 style shutdown (the one waiting for the
+ term signal in the main process) to be able to test the library
+ with the old server. To activate the new shutdown procedure be
+ sure the define SHUTDOWN_COMPATIBLE_1_5_0 is unset.
+
+nxcomp-2.0.0-13
+
+- Ensured that static members in channels are reset at the time a
+ new proxy is created.
+
+- Adjusted the token parameters for link modes other than modem.
+
+nxcomp-2.0.0-12
+
+- Handled compatibility with 1.X.X versions not sending the count
+ field in the token.
+
+- The proxy link is now flushed automatically if the agent has not
+ set the deferred flush mode.
+
+nxcomp-2.0.0-11
+
+- Significant modifications to allow the proxy to keep data in the
+ encode buffer across multiple loops, until the data is flushed
+ because an explicit request by the agent or. Besides maximizing
+ the amount of data sent in a single frame, this makes it possi-
+ ble to move any packet coalescence strategy in the agent, while
+ still using an 'immediate' flush policy.
+
+- Modified the procedure handling the proxy congestion. Each token
+ now carries a counter which represents the multiple of TokenBytes
+ data bytes that need to be confirmed by the remote end. The ser-
+ ver side proxy will need to reply by including the value of the
+ counter. When sending a new token, the tokens are decremented by
+ the counter and the client side proxy enters in congestion when
+ the available tokens becomes zero or negative.
+
+nxcomp-2.0.0-10
+
+- Implemented specific encoding of the X_NXSetCacheParameters
+ request.
+
+- Handled the compatibility with older versions not supporting the
+ new request. In this case the request is handled at the local si-
+ de, preventing the X requests to be cached or split, even without
+ the cooperation of the remote side.
+
+nxcomp-2.0.0-9
+
+- Modified the shutdown procedure to not rely on the TERM signal
+ when the proxy needs to wait for the server to complete. We will
+ now print the following message in the session log:
+
+ Info: Watchdog running with pid 'n'.
+ Info: Waiting for watchdog process to complete.
+
+ The NX server will have to kill the process with the given pid
+ to mandate the proxy shutdown. This solves the TR11C01192.
+
+- Added the X_NXSetCacheParameters request. It tells to the proxy
+ how to handle caching of X requests, namely if requests should
+ be stored in the memory cache, split in smaller data chunks and,
+ in the case of images, saved on disk in the persistent image
+ cache. The request affects all the X messages until the proxy
+ is further configured.
+
+- Enabling and disabling loading and saving of persistent images
+ due to a X_NXSetCacheParameters is still to be implemented.
+
+- Implemented font channel compatibility with older versions. If
+ the font port is queried and the remote proxy doesn't support
+ the tunneling of font server connections, an empty string is
+ returned.
+
+- The option 'resize', used by agents, is now silently ignored.
+ This solves the TR10C01061.
+
+- Added the missing reference to TR08C000981.
+
+nxcomp-2.0.0-8
+
+- Discarded the first idea of setting the font path implicitly in
+ the X server side proxy, by means of a multi-pass operation and
+ added the NXGetFontParameters() request and reply. If the proxy
+ has been configured accordingly, the request returns the X font
+ path that can be set by the agent to tunnel the font server con-
+ nections through the NX link.
+
+- Changed the parsing of the font server port to be able to handle
+ the defaults.
+
+nxcomp-2.0.0-7
+
+- More work on tunneling of font server connections.
+
+- The synchronization requests are now replied at the same time
+ as a new request is received, by checking if the channel has
+ already gone past the awaited sequence number. This avoids the
+ delay caused by the previous versions in the case the expected
+ reply had been handled asynchronously, inside the write loop.
+
+nxcomp-2.0.0-6
+
+- The display is again passed to the client using the -display
+ parameter.
+
+- The option 'type' is now ignored at X server side. Support at
+ the X server side had been left for compatibility with older
+ versions of the proxy.
+
+- Added direct support for more session types, namely 'unix-cde',
+ 'unix-xdm', 'unix-console', 'unix-default'. The 'unix-console'
+ and 'unix-default', similarly to 'unix-application', will now
+ trigger the 'raw' mode.
+
+nxcomp-2.0.0-5
+
+- Renamed Png.h and Png.cpp to Pgn.h and Pgn.cpp to avoid name
+ clashes on Windows.
+
+- The distclean target now removes the autom4te.cache directory.
+
+nxcomp-2.0.0-4
+
+- Added the 'kill=n' option to let the proxy add the process to
+ the list of daemons that must be terminated at session shutdown.
+ Multiple 'kill=n' options can be specified. The proxy will send
+ to each process a SIGTERM signal before exiting.
+
+- Removed the code that forcibly disabled the RENDER extension on
+ Solaris. Eventual compatibility problems will be now handled in
+ the NX agent.
+
+- The path to the client executable is now assumed to be in the
+ NX_CLIENT environment. If the variable is not set, the proxy
+ will guess the location based on the target platform. This is
+ part of the FR11C01215.
+
+nxcomp-2.0.0-3
+
+- More code cleanup. Protocol step 5 and cache step 2 are assumed
+ by default. This allows us to remove the various channel caches
+ that are not used anymore.
+
+- Removed the outdated encodeBegin() and encodeEnd() methods.
+
+nxcomp-2.0.0-2
+
+- Added compatibility with the 1.5.0 and 1.4.0 versions. Protocol
+ version older than the 1.4.0 will cause the proxy to drop the
+ connection.
+
+- Rewritten the version negotiatiation logic to better handle the
+ compatibility between the local and the remote version.
+
+- Removed the conditional code handling the compatibility with
+ the protocol encodings from 1 to 4.
+
+- Small adjustments to the session negotiation procedure to give
+ more hints in the case of errors. A dialog is now issued if the
+ remote proxy drops the connection due to a probable authentica-
+ tion failure or when the remote proxy version is not compatible
+ with our version.
+
+nxcomp-2.0.0-1
+
+- Opened the 2.0.0 branch based on nxcomp-1.5.0-80.
+
+nxcomp-1.5.0-80
+
+- Fixed a bug that prevented the Unix socket to be created in the
+ right directory. This affected the ability of the server to run
+ NX sessions without the agent encoding.
+
+nxcomp-1.5.0-79
+
+- Solved a bug in the 15 to 16 bpp conversion for RDP sessions.
+
+- Corrected a typo in the PANIC message of Unpack16To24 function.
+
+- Optimized the 16 bpp RDP decompression routine.
+
+nxcomp-1.5.0-78
+
+- Implemented the FR11C01215. The following environment variables
+ are checked to determine the location of the relevant NX direct-
+ ories:
+
+ $NX_ROOT The root NX directory is the place where the session
+ directory and the cache files are created. This is
+ usually overridden by passing the 'root=' option. By
+ default, the root NX directory is assumed to be the
+ directory '.nx' in the user's home.
+
+ $NX_SYSTEM The directory where NX programs and libraries reside.
+ If not set, the value is assumed to be '/usr/NX'.
+ Programs, libraries and data files are respectedly
+ searched in the 'bin', 'lib' and 'share' subdirecto-
+ ries.
+
+ $NX_HOME The NX user's home directory. If $NX_ROOT is not set
+ or invalid, the user's NX directory is created here.
+
+ $NX_TEMP The directory where the X11 Unix Domain Sockets and
+ all temporary files are to be created.
+
+ $NX_CLIENT The full path to the nxclient executable. If the va-
+ riable is not set, the nxclient executable will be
+ run assuming that the program is in the system path.
+ This can be useful on platforms like Windows and the
+ Mac where nxclient is located in a different direct-
+ ory compared to the other programs, to make easier
+ for the user to execute the program from the shell.
+
+ Other environment variables:
+
+ $HOME The variable is checked in the case $NX_HOME is not
+ set, null or invalid.
+
+ $TEMP The variable is checked whenever the $NX_TEMP direct-
+ ory is not set, null or invalid.
+
+ $PATH The path where all executables are searched, except
+ nxclient. If $NX_CLIENT is not set, also the client
+ executable is searched in the system path.
+
+ $XAUTHORITY
+ This is the file containing the X11 authorization
+ cookies. If not set, the file is assumed to be in
+ the user's home (either $NX_HOME or $HOME).
+
+ $LD_LIBRARY_PATH
+ System-wide library search order. This should be set
+ by the program invoking the proxy.
+
+- Extended the usage message to document the relevant environment.
+
+- Made the WaitChild() function interruptible. This allows the user
+ to terminate the connection procedure immediately, by sending a
+ signal to the proxy process while an abort dialog is shown in the
+ foreground. This is part of the solution to the TR11C01216.
+
+- Implementation of the FR11C01215 is not yet complete. The client
+ program and the nxauth/xauth are still searched using the previ-
+ ous logic. In particular, the NX_CLIENT variable is ignored.
+
+nxcomp-1.5.0-77
+
+- Corrected the typo in the alert dealing with VNC authentication
+ failures. This solves the TR11C01199.
+
+nxcomp-1.5.0-76
+
+- Added the missing initialization in the client and server proxy
+ constructors.
+
+nxcomp-1.5.0-75
+
+- Starting from this version the build procedure will automatically
+ create a DLL on Windows.
+
+- Disabled exceptions in the compiled code.
+
+- Disabled run-time type information to further reduce the size of
+ the executable.
+
+- Compiling with GCC 4.0.0 and -fno-exceptions produces a warning
+ in some files, due to control apparently reaching the end of a
+ non void function. This is bogus and has been confirmed to be a
+ GCC 4.0.0 bug solved in more recent versions.
+
+nxcomp-1.5.0-74
+
+- Imported changes from nxcomp-1.6.0-4.
+
+- Solved a compilation error on Solaris and MacOSX platforms.
+
+- The 'font' option now accepts either a numeric value (for a TCP
+ port) or a 'unix/:port' or 'tcp/:port' specification. In the case
+ of Unix ports, we assume that a port specification "unix/:7100"
+ corresponds to the "/tmp/.font-unix/fs7100" socket and a port like
+ "unix/:-1" corresponds to "/tmp/.font-unix/fs-1".
+
+- An absolute file path is also accepted as a valid socket. This is
+ useful to test the forwarding of the font server connection, for
+ example by running a normal X client and pointing the socket to
+ the X server.
+
+- Protocol step 7 is now only assumed when connecting to a remote
+ proxy version 1.6.0 or later.
+
+nxcomp-1.5.0-73
+
+- Use the include files from nx-X11 if the nx-X11/include directory
+ is found. The previous configure checked the presence of nx-X11/
+ exports/include, that might not be built at the time this library
+ is compiled.
+
+nxcomp-1.5.0-72
+
+- Fixed a problem on AMD64 due to the size of the area pointed by
+ the argument of NXTransReadable(). The ioctl() requires a pointer
+ to an int, at least on Linux. The original _X11TransBytesReadable()
+ function simply calls the ioctl() by passing the pointer that is
+ provided. Returning the value assuming a pointer to a long crashes
+ some applications, among them xterm. Now NXTransReadable() follows
+ the same schema of the ioctl() call and stores the result assuming
+ a pointer to an int.
+
+nxcomp-1.5.0-71
+
+- Ensured that the NX trasport is destroyed on NXTransExit() even if
+ the parent has overridden our signal handlers.
+
+- Added attribute 'noreturn' to NXTransExit().
+
+- Small change to the shutdown procedure to send the "Waiting for a
+ further signal" just after the watchdog is started.
+
+nxcomp-1.5.0-70
+
+- Added the definition of protocol step 7. The new protocol step is
+ implicitly assumed when activating the font server channel, so that
+ NX clients and servers may decide what to do by verifying the patch
+ version of the peer software. This makes possible to activate the
+ feature without stepping up the 1.5.0 version of the software.
+
+nxcomp-1.5.0-69
+
+- Added the -fPIC GCC flag when compiling on AMD64 architectures.
+
+- Small changes to configure.in to have specific CFLAGS.
+
+- Created a new configure using autoconf 2.59.
+
+- Added the 'mask=n' option to determine how channel ids are distri-
+ buted between client ans server. By default, channels whose ids are
+ multiple of 8 (starting from 0) are reserved for the client side.
+ All other channels can be allocated at the NX server side.
+
+- A check is missing on the protocol supported by the remote side,
+ so it is likely that mixing this version with older 1.5.0 will not
+ work.
+
+- The release has the debug logs enabled.
+
+nxcomp-1.5.0-68
+
+- Added provision for opening new channels on both client and server
+ side. This required small changes to the way channel ids are mapped
+ and retrieved, so that both sides now support bidirectional mapping
+ of file descriptors to channels.
+
+- Made the code handling allocation of new generic channels to reside
+ in the base Proxy class.
+
+nxcomp-1.5.0-67
+
+- Renamed the 'embedded keyboard' channels as 'aux' channel.
+
+- Renamed 'samba' channels as 'smb'.
+
+- The 'samba' and 'smb' options can now be used interchangeably. The
+ same applies to the 'keybd' and 'aux' options, used to set up the
+ auxiliary X channel.
+
+- Added a new font channel. The channel is used to forward X font
+ server connections from the X server on the NX client to the remote
+ NX server. The channel is not yet functional and requires change to
+ the channel allocation mechanism.
+
+- Added a common interface to create new listening sockets. This is
+ currently used for additional services, but not for the X display
+ sockets.
+
+- Simplified the interface used to accept new connections to channels
+ being forwarded.
+
+- Removed the -V option as nxproxy is not using dlopen() anymore.
+
+- Removed the inclusion of ClientChannel.h in Proxy.cpp that caused
+ test symbols to be reverted to undefined.
+
+nxcomp-1.5.0-66
+
+- Made failures setting the IPTOS_LOWDELAY on the proxy socket to
+ cause a warning, instead of an error.
+
+- Made the clean target delete the Cygwin specific libraries.
+
+- Updated the configure and Message.h to deal with GCC 4. Solves the
+ TR08C000981.
+
+nxcomp-1.5.0-65
+
+- Removed the warning issued on parsing the agent option 'rootless'.
+ Solves the TR08C00959.
+
+- MacOSX 10.4 defines socklen_t. Made the definition conditional so
+ that we can still support older versions. Solves the TR07C00926.
+
+- Updated the ChangeLog to include references to the solved TRs.
+
+nxcomp-1.5.0-64
+
+- Imported the 1.6.0 changes in the maintenance 1.5.0.
+
+- Removed a wrong assertion that might cause the session to fail
+ when the software was compiled with TEST enabled in Proxy.cpp.
+
+- The nxclient dialog process is signaled with SIGKILL on Windows,
+ as the SIGTERM is ignored. This solves the TR07C00929.
+
+- Ensured the JPEG error flag is always set before jumping out of
+ the Jpeg decompression.
+
+- Skipped errors encontered setting the TCP_NODELAY flag on Mac.
+ Solves TR08C00940.
+
+- Few cosmetic changes.
+
+nxcomp-1.5.0-63
+
+- Ensured that the parent is checked often in the keeper process,
+ so that, in the case of a premature death, the child is exited
+ earlier.
+
+nxcomp-1.5.0-62
+
+- Some performance tuning of the LAN and WAN link modes.
+
+nxcomp-1.5.0-61
+
+- Fixed the problems arisen with loading or saving the image files
+ on Windows by forcing the streams to be opened in binary mode.
+ These problems have been triggered by the recent Cygwin upgrade.
+
+- Removed the logs that had be left enabled for test purposes.
+
+nxcomp-1.5.0-60
+
+- Made all errors encountered while unpacking an image just print
+ a warning in the session log. Such errors are not fatal but the
+ client monitors the state of the session at startup, so that by
+ marking image decompression errors as such may cause the session
+ to be aborted.
+
+- Marked as warnings also errors encountered by trying to load an
+ image from disk.
+
+nxcomp-1.5.0-59
+
+- When detected, the CTRL+ALT+SHIFT+ESC sequence is removed from
+ the event stream.
+
+- Also modified the message in the session log to issue a warning,
+ instead of an error.
+
+nxcomp-1.5.0-58
+
+- Added a setjmp() before yielding the control to the JPEG library.
+ This makes possible to recover from the JPEG decompression errors
+ that were previously fatal.
+
+- In the commit split request, the client id is now encoded by the
+ client channel beside the propagate flag. The client id is igno-
+ red by the decoding party. As in the old protocol versions, the
+ committing client is taken from the client id that was originally
+ sent together with the packed image.
+
+- Fixed the compilation problem when defining OPCODES in Misc.cpp.
+
+- Skipped the synchronous flush of the proxy link when connecting
+ to a previous NX version.
+
+- Ensured that the new alerts are only requested when connected to
+ a compatible proxy.
+
+- Ignored the option 'fullscreen', targeting the agents.
+
+nxcomp-1.5.0-57
+
+- Added more alerts and changed the name of those dealing with the
+ resume of a session.
+
+- Added the MIXED define. When set, the proxy will let all logs go
+ to the standard error. This is useful to interleave the Xlib log
+ output with the proxy output in a single file.
+
+- Added a new alert to report an I/O error at agent reconnection.
+ This is one of those alert that can't be actually shown, but are
+ included to offer a consistent view to the agent implementation.
+
+nxcomp-1.5.0-56
+
+- Added the split mode NXSplitModeSync. By selecting this mode,
+ the proxy will try to empty the split store immediately, until
+ all messages marked in such mode will be synchronized. The im-
+ plementation is left to future versions.
+
+ #define NXSplitModeSync 3
+
+- Added the messages specific to RDP and VNC sessions in NXalert.h.
+ Included are also a few alerts related to changes to the color
+ depth and desktop geometry that may be eventually mandated by the
+ remote server.
+
+- Corrected a typo in NXalert.h
+
+nxcomp-1.5.0-55
+
+- Added the 'mode' field in the X_NXStartSplit request. It determi-
+ nes the strategy that the proxy will adopt to handle the image.
+ If set to 'eager', the proxy will only split the messages whose
+ size exceeds the split threshold (the threshold can be found in
+ the X_NXGetControlParameters reply). If mode is set to lazy, the
+ proxy will split any image that it is not able to find in its
+ cache.
+
+ The opcode and the two available modes are defined in NXproto.h,
+ currently:
+
+ #define NXSplitModeDefault 0
+ #define NXSplitModeEager 1
+ #define NXSplitModeLazy 2
+
+- All requests related to image streaming now carry a 'resource' id.
+ The id is currently ignored by the proxy in the case of X_NXCom-
+ mitSplit requests.
+
+- Added a new NXSetSplitMode() request. It determines the strategy
+ that the proxy will adopt to stream the images. If set to 'eager'
+ the proxy will only split the messages whose size exceeds the
+ split threshold, otherwise it will split all the images, regard-
+ less their size. This is in preparation of the lazy encoding in
+ agent.
+
+- Slightly decreased the startup timeout compared to the value it
+ had in the 1.4.0. This timeout is used to retain the images used
+ during session startup in the persistent cache.
+
+nxcomp-1.5.0-54
+
+- Modified the text of the begin-reconnection alert to mention the
+ speed of the connection detected by the agent.
+
+nxcomp-1.5.0-53
+
+- Reworked the handling of the abort-split events issued by the re-
+ remote proxy so that we now finalize the procedure and restart the
+ client asynchronously, in the middle of the write loop.
+
+nxcomp-1.5.0-52
+
+- Rewritten the internal interface to the notification events. There
+ are now five different split notification events:
+
+ NXNoSplitNotify The operation didn't cause any actual split.
+ The client can be immediately restarted.
+
+ NXStartSplitNotify A split is ongoing. The client should be
+ suspended until the end of the split.
+
+ NXCommitSplitNotify A complete request has been recomposed. The
+ client can commit the given request to the
+ X server.
+
+ NXEndSplitNotify The split operation was duly completed. The
+ client can be restarted.
+
+ NXEmptySplitNotify No more split operation are pending. The
+ agent can use this information to implement
+ specific strategies, requiring for example
+ that all messages have been recomposed at
+ the remote end. This can include updating
+ the drawables that were not synchronized
+ because of the lazy encoding.
+
+- Removed the X_NXSync and X_NXKarma operations, not used anymore by
+ the NX agents.
+
+- Increasing or decreasing a timeout makes it respectively equal to
+ the base timeout or to the base timeout / 4.
+
+nxcomp-1.5.0-51
+
+- Improved the mechanism by which synchronization replies are sent
+ to the X client proxy.
+
+- Using the leftPad field as passed by the nxagent 1.5.0-58 doesn't
+ seem to work with the MIT-SHM. The workaround is to disable the
+ MIT-SHM operation in the case of 1 bpp images.
+
+- Removed the limitation on the size of the shared memory segment
+ that had been introduced for test purposes.
+
+nxcomp-1.5.0-50
+
+- Solved compilation problem when --with-info was not given.
+
+nxcomp-1.5.0-49
+
+- Improved support for color matching from 15 and 16 bpp to 24 and
+ 32 bpp in RDP sessions.
+
+- Solved TR05C00910. This was about "shadows" that might appear in
+ RDP sessions when small elements like tooltips were drawn.
+
+nxcomp-1.5.0-48
+
+- Added a 'commit' field in X_NXCommitSplit request. When zero, the
+ X server side proxy will unlock the message in the message store,
+ without actually committing the image to the X server. The new
+ field required changes to the encoding. This means that this ver-
+ sion is not compatible with older 1.5.0 nxcomp releases.
+
+- Added a new control message. This is used by NXTransFlush() to for-
+ ce a roundtrip between the proxies and speed-up the handling of
+ the synchronous replies.
+
+nxcomp-1.5.0-47
+
+- Made the timeouts dynamic, based on the user input and the current
+ bitrate.
+
+- Set the available tokens to 8. This allows for 16 KB to be sent on
+ a modem before having to wait for a reply.
+
+- Added provision for removing a dialog on the remote end. This can
+ be used, for example, to get rid of a message that was displayed
+ by the agent at the beginning of a lengthy operation.
+
+- Fixed a fault that arose when trying to run the proxy on a display
+ whose name began with the 'nx' string.
+
+- Running a client or server session on a display host beginning with
+ 'nx' should be now possible.
+
+- Flush is now always immediate when there is already data queued in
+ the TCP socket.
+
+nxcomp-1.5.0-46
+
+- Created the NXalert.h header from Alert.h to share the alert codes
+ with the agents. The new NXTransAlert() interface can be used to
+ start an alert on the remote side.
+
+- Created the NXTransParse*() and NXTransCleanup() wrappers.
+
+- Temporarily using the single-dash style when passing parameters to
+ nxclient until the double-dash style is fixed.
+
+nxcomp-1.5.0-45
+
+- Motion events are now flushed at the time the X server channel is
+ sending the token reply.
+
+- Renamed NXDialog() to NXTransDialog() and added a window ID parame-
+ ter, to be used by the agent when starting the "pulldown" dialogs.
+
+- Also renamed the other NX utility functions.
+
+nxcomp-1.5.0-44
+
+- Solved a bug that prevented auxiliary X connections from working
+ with the agent.
+
+- Added the missing check on the proxy pointer in HandleTimer() as
+ it may be actually called before the proxy is created.
+
+nxcomp-1.5.0-43
+
+- Started tuning the performance. For now, the available tokens are
+ set to an improbable value of 10000.
+
+nxcomp-1.5.0-42
+
+- Disabled the X server side remote expose events for test purposes.
+ This is intended uncover the display problems introduced by the
+ new handling of exposures in the X11 agent.
+
+- Fixed some timestamp related functions to avoid rounding problems.
+
+- Moved the timestamps of split, frame and flush from the Control
+ to the Proxy class.
+
+- Made the X server side proxy to skip updating the counters related
+ to token management.
+
+- Made also the X server side use deferred flushes.
+
+- Modified handleFrame() to manage both pings and data frames and
+ send the token before the actual write operation.
+
+- Cleaned the pseudo-files used to load the control parameters.
+
+- Cleaned up the FIXME's in the lower layers. More FIXME's remain in
+ the frontend classes.
+
+- Added a further counter to the statistics tracking the number of
+ network writes performed on the proxy link.
+
+nxcomp-1.5.0-41
+
+- Now the watchdog process doesn't kill the parent. The termination
+ event is determined by monitoring the child. This is advisable to
+ avoid interfering with the signal handling in agent.
+
+- The house-keeping process is not started if differential compres-
+ sion (and thus caching of images) is disabled.
+
+- Wait for the watchdog to terminate before starting the house-keep-
+ ing process.
+
+- Fixed the problem of gray stripes in white areas when using 15bpp
+ RDP compression. This solves the TR06C00916.
+
+- Added a log in Message.cpp to tell when an image is removed from
+ the memory cache.
+
+- Removed most of the logs. Only left the logs directly related to
+ the deferred flushes.
+
+- Removed a warning due to a missing definition in NX.h.
+
+nxcomp-1.5.0-40
+
+- Added the signal '12' to the set of blocked signal on Cygwin. This
+ is what is delivered to the application when it tries to create a
+ shared memory segment when the cygserver is not running. The call
+ later returns "Operation not implemented", only useful if you have
+ survived to the signal.
+
+- Modified the configure script to not link against cygipc.
+
+- Improved error handling in the negotiation phase.
+
+- Reset the last signal received when aborting a connection attempt.
+ Not doing that might cause a warning.
+
+nxcomp-1.5.0-39
+
+- Both channels and proxy can now deal with incomplete messages by
+ waiting for the full data to become available. This is not going
+ to work when the transport is connected to an agent that is run-
+ ning in-process, so the timeout must be really small.
+
+- Made the main loop more compact by letting a single function read
+ from proxy and channels. The same change applies to writing to
+ descriptors that are reported to be ready.
+
+- Optimized the loop to report as ready the agent descriptors that
+ have become available after the proxy execution phase.
+
+- Now the proxy will try to asynchronously read from its descriptor
+ after having read from the channel.
+
+- Unified the routine setting the routines setting the read and write
+ descriptors and the timeouts.
+
+- Unified the routine handling the channel events.
+
+- Reintroduced the last ping timestamp to avoid sending more than a
+ single ping every PingTimeout milliseconds.
+
+- The cleanup procedure now waits for the watchdog and house-keeping
+ processes to terminate.
+
+- Reverted the change occurred in 1.5.0-35 about the byte-ordering
+ problem in decompression of PNG and JPEG images.
+
+- More coding about deferred flushes.
+
+- Relevant debug logs are enabled in the main loop, in the proxy and
+ in the channel classes, so use only for testing.
+
+nxcomp-1.5.0-38
+
+- Started the implementation of deferred writes based on the new NX
+ transport.
+
+- Solved a problem with the statistics file affecting the Windows
+ platform. Basically it seems that Cygwin or the stdc++ library
+ don't deal correctly with files that are reopened just after
+ having unlinked them.
+
+- Implemented support for 15 bpp RDP bitmaps.
+
+- Added "rdpcolors" and "rdpcache" to the list of parameters that
+ are ignored in ParseEnviromentOptions().
+
+- This version has lot of logs enabled and some forced cleanups in
+ the case of unexpected conditions. Avoid to use it for long-last-
+ ing test sessions.
+
+nxcomp-1.5.0-37
+
+- Now splitting of images is fully disabled when running with link
+ LAN. Previously the split was not executed by the proxy, but the
+ agent was configured to send the start/end sequence.
+
+- Added the check protecting the proxy from token underflow. In the
+ previous code the check was left out to verify the conditions un-
+ der which this event might be encountered.
+
+- NXTransWrite() and NXTransWriteVector() allocate a context before
+ calling handleRead(), so they can correctly return in the case of
+ a cleanup.
+
+nxcomp-1.5.0-36
+
+- Modified the channel write loop to interleave abort split events
+ between the writes to the X server socket.
+
+nxcomp-1.5.0-35
+
+- Solved a byte-ordering problem in decompression of PNG and JPEG
+ images.
+
+- Changed the handleToken() interface to make explicit if a token
+ must be issued because of a ping.
+
+- Small fix to prevent a warning in Jpeg.cpp when TEST is enabled.
+
+nxcomp-1.5.0-34
+
+- Solved a few problems introduced by the rewrite of the read loops
+ in channels.
+
+- Added definition of NXCollectInputFocusNotify.
+
+nxcomp-1.5.0-33
+
+- Implemented a new control flow system based on tokens exchanged bet-
+ ween the proxies. When the clint side runs out of tokens it stops
+ sending data until a new token is returned. Tokens are sent whenever
+ the data written to the socket exceeds the amount of data set for a
+ scheduled write, so the proxy is free to send a number of smaller
+ frames before running out of tokens.
+
+- The reason the new system is introduced is because the old method
+ had two outstanding problems:
+
+ - It worked very well when the proxies were directly connected,
+ but couldn't reliably detect a link congestion when tunneled
+ over SSH.
+
+ - In the attempt of reducing the data queued to the TCP layer, it
+ didn't leverage all the available bandwidth.
+
+- Moved the final check on the state of the session at the end of
+ execution stage, instead of the beginning. The signals sent by the
+ user to request the statistics could be reset before the proxy had
+ entered the right procedure.
+
+- Added the session type 'unix-rootless', to be used for single apps
+ run with the agent in rootless mode.
+
+nxcomp-1.5.0-32
+
+- Modified the main loop to skip the select when I/O is possible on
+ any of the agent descriptors or the proxy link.
+
+- Now the house-keeping process is allocated in the heap instead of
+ the stack.
+
+nxcomp-1.5.0-31
+
+- The server channel now performs asynchronous reads from the display
+ by interleaving them with data decoded from the remote proxy.
+
+- Improved the handling of the memory-to-memory transport.
+
+nxcomp-1.5.0-30
+
+- Redesigned the handling of the congestion events to work more re-
+ liably and to report the events to the remote peer earlier.
+
+- Increased the size of the shared memory segment when the MIT-SHM
+ extension is activated.
+
+- Solved a bug that prevented the ping timeout to work as expected.
+
+- Ensured that, when entering the main select(), neither the chan-
+ nels or the proxy have pending messages in the read buffers.
+
+- There is now only a single case where we can have pending messa-
+ ges, namely in the handling of the MIT-SHM events.
+
+- Solved a bug introduced by the 1.5.0-29 that made the proxy en-
+ ter the select with a null timeout.
+
+- Renamed LINK_TYPE_AUTO to LINK_TYPE_NONE in NXproto.h.
+
+nxcomp-1.5.0-29
+
+- Now encoding data from the agent descriptors happens in the same
+ context as data is written to the buffer.
+
+- Optimized the handling of the congestion events to avoid running
+ further unneeded loops.
+
+- Added timer handling utilities.
+
+nxcomp-1.5.0-28
+
+- Added code providing information about the reason of the failure
+ encountered connecting to the local X server. This greatly helps
+ when troubleshooting X authorization problems.
+
+- On connection failure a warning message is printed in the session
+ log.
+
+- Removed the warning that was previously printed when the MIT-SHM
+ extension failed to be initialized on Windows. Shared memory has
+ problems on Cygwin and it currently doesn't work in NXWin.
+
+- Reworked the message printed in the case of link failure.
+
+nxcomp-1.5.0-27
+
+- Solved a bug in the connection procedure introduced by 1.5.0-25.
+
+nxcomp-1.5.0-26
+
+- Transformed the errors printed on failure of the fork() creating
+ the children into warnings. This can happen quite often on Win-
+ dows, due to well known Cygwin problems. See also the ChangeLog
+ entry for nxcomp 1.4.0-28. This patch closes the TRSL052278 but
+ it's obviously not a long-term solution.
+
+- Set the sticky bit when creating the '/tmp/.X11-unix' directory.
+
+- Modified the Makefile.in to remove the *.out.* files generated by
+ Valgrind.
+
+- Updated the README files.
+
+nxcomp-1.5.0-25
+
+- Changed the directory where the client for the Mac is searched if
+ it is not found in the system path.
+
+- Modified Auth.cpp to use nxauth also on the Mac.
+
+- Reworked the procedure showing the alert dialog when a timeout is
+ encountered in the initial connection.
+
+- Removed the experimental code from the official 1.5.0 branch.
+
+nxcomp-1.5.0-24
+
+- Implemented more experimental classes.
+
+nxcomp-1.5.0-23
+
+- Added the NX_SIGNAL_FORWARD action to NXTransSignal(). This can
+ be used to let the proxy call the original signal handler of the
+ agent after having blocked the signal.
+
+nxcomp-1.5.0-22
+
+- Ensured that we always have a context, even before creating the
+ transport.
+
+- Suppressed the error message printed when passing the -h option.
+
+- Added the experimental code that is currently under development.
+
+nxcomp-1.5.0-21
+
+- Enabled the fake X cookie authentication. This requires checking
+ the remote proxy version to verify that the server supports the
+ new authorization mechanism.
+
+- It's worth noting that the X client side proxy doesn't care which
+ cookie is sent over the connection. The problem is that clients
+ connecting to 1.4.0 servers don't have a method to force the ser-
+ ver to use the fake cookie. This means that we have to solve the
+ problem by letting the proxy check the remote version so that it
+ can omit to replace the cookie when connecting to older servers.
+
+nxcomp-1.5.0-20
+
+- Added the NXTransCongestion() function. It returns true if proxy
+ is in congestion state.
+
+- Removed an incorrect warning that was printed when calling force()
+ for the memory-to-memory transport. The agent could actually re-
+ quire multiple loops to read all data queued for it.
+
+nxcomp-1.5.0-19
+
+- Small optimization in NXTransReadable() to run a new NXTransConti-
+ nue() loop only after at least RetryTimeout milliseconds are pas-
+ sed since the last call and still no data is available. This cuts
+ the number of unneeded loops to 1/4th of the total, probably more,
+ on faster machines.
+
+- Added NXCollectGrabPointerNotify to NXproto.h.
+
+nxcomp-1.5.0-18
+
+- Minor changes to NXTransContinue().
+
+nxcomp-1.5.0-17
+
+- Moved respawning of a new nxclient instance in the cleanup procedu-
+ re. This ensures that the respawn is executed whatever is the rea-
+ son of the session shutdown.
+
+- Added a method to force closure of a given channel in proxy.
+
+- Removed code handling the special case triggered on Windows by the
+ presence of a NX_SESSION variable in the environment.
+
+nxcomp-1.5.0-16
+
+- Added the NXTransSignal() function to let agents tell to the proxy
+ how to handle the standard POSIX signals. Given the SIGINT signal,
+ for example, the caller can specify any of the following actions.
+
+ NX_SIGNAL_ENABLE: A signal handler will have to be installed by
+ the library, so that it can be intercepted by
+ the proxy.
+
+ NX_SIGNAL_DISABLE: The signal will be handled by the caller and,
+ eventually, forwarded to the proxy by calling
+ NXTransSignal() explicitly.
+
+ NX_SIGNAL_RAISE: The signal must be handled now, as if it had
+ been delivered by the operating system. This
+ function can be called by the agent with the
+ purpose of propagating a signal to the proxy.
+
+ As a rule of thumb, agents should let the proxy handle SIGUSR1 and
+ SIGUSR2, used for producing the NX protocol statistics, and SIGHUP,
+ used for disconnecting the NX transport.
+
+- The following signals are blocked by default upon creation of the
+ NX transport:
+
+ SIGCHLD These signals should be always put under the control
+ SIGUSR1 of the proxy. If agents are intercepting them, agents
+ SIGUSR2 should later call NXTransSignal(..., NX_SIGNAL_RAISE)
+ SIGHUP to forward the signal to the proxy.
+
+ SIGINT These signals should be intercepted by agents. Agents
+ SIGTERM should ensure that NXTransDestroy() is called before
+ exiting, to give the proxy a chance to shut down the
+ NX transport.
+
+ SIGPIPE This signal is blocked by the proxy, but not used to
+ implement any functionality. It can be handled by the
+ NX agent without affecting the proxy.
+
+ SIGALRM This is not blocked by the proxy, but could be used
+ in future.
+
+ SIGVTALRM These signals are not used and should not be used in
+ SIGWINCH future versions of the library.
+ SIGIO
+ SIGTSTP
+ SIGTTIN
+ SIGTTOU
+
+- By calling NXTransSignal(..., NX_SIGNAL_DISABLE) nxcomp will res-
+ tore the signal handler that was saved at the time the proxy hand-
+ ler was installed. This means that you should call the function
+ just after the XOpenDisplay() or any other function used to init-
+ ialize the NX transport.
+
+nxcomp-1.5.0-15
+
+- In NXTransContinue(), if the transport is gone, return immediately,
+ that is without having to wait until the NXTransSelect() timeout.
+
+- Ensure that NXTransCreate() has a jump context, just in the case
+ a subsequent operation would cause a cleanup.
+
+nxcomp-1.5.0-14
+
+- Solved a problem with requests left in the agent's buffer when run-
+ ning the NX transport. The agent could have enqueued data to our
+ side and checked the available events but requests could not be
+ written to the proxy because proxy might not have had a chance to
+ enter a new select. We found that this behaviour was triggered by
+ _XEventsQueued, so now a new loop is forced when agent is calling
+ _X11TransDataReadable. The procedure can be optimized, by avoiding
+ an expensive loop when no critical I/O is pending.
+
+- Added a few additional logs to ClientChannel and ServerChannel.
+
+nxcomp-1.5.0-13
+
+- Added the code handling the special cases of an user not specifying
+ a proxy cookie or the case of the X authorization file not contain-
+ ing a value matching the display. In the first case we'll forward
+ the same cookie that was feeded to the proxy, in the second case we
+ will forward to the X server a random generated cookie, similarly to
+ what SSH does in this same condition.
+
+- Rewritten the command line parser. Removed all the command line
+ options parsed on behalf of nxproxy except:
+
+ -C Specify that nxproxy has to run on the "X client"
+ side, listening for connections and impersonating
+ an X server.\n\
+
+ -S Specify that nxproxy has to run in "X server" mode,
+ thus forwarding the connections to daemons running
+ on the client.\n\
+
+ -V n.n.n Request nxproxy to load the given nxcomp version.
+ This option is only present on Solaris and Linux.
+
+ -v Print version information.
+
+ host:port Put at the end, specifies the host and port of the
+ listening proxy.
+
+ value=name Set the NX option to the provided value.
+
+ Multiple NX options can be specified in the DISPLAY environment or
+ on the command line, by using the nx/nx,name=value notation.
+
+- The above information is printed on the console when incurring in
+ a parse error, together with a list of the available option=value
+ parameters.
+
+- Renamed the 'log' option to 'errors'. This makes sense as the de-
+ fault name for the log file is actually 'errors'.
+
+- Now the "Established X server connection" message is printed to
+ the session log only after the X connection has passed the X auth-
+ entication phase. This means that the NX client should become able
+ to show the details of the session log whenever the session fails
+ due to a cookie problem.
+
+- When selecting the additional services without specifying a port,
+ the client proxy will now automatically forward the connections to
+ the corresponding well-known ports of the CUPS, SMB and HTTP servi-
+ ces. Embedded X keyboard connections will be automatically forward-
+ ed to the same display port used to connect to the X server. The
+ user will still have to specify the port to be used for the media
+ connections as we don't have a suitable well-known port.
+
+- Starting from this version, connections to the keybd port will cre-
+ ate real X connection channels. This is required to let connections
+ leverage the fake authorization cookie.
+
+- By testing the forwarding of keybd connections I found that, when
+ letting X clients connect to the port, it is required to provide
+ the X cookie for the unix display. Adding only the TCP cookie will
+ not work. For example, by creating a cookie as in:
+
+ xauth add localhost:2009 MIT-MAGIC-COOKIE-1 6f...f4
+
+ And running:
+
+ xterm xterm -display localhost:2009
+
+ You will get the following error:
+
+ Xlib: connection to "localhost:2009.0" refused by server
+ Xlib: No protocol specified
+
+ Adding also the unix cookie will fix it:
+
+ xauth add localhost/unix:2009 MIT-MAGIC-COOKIE-1 6f...f4
+
+ This seems to be a Xlib problem, with Xlib trying to get the cookie
+ for the UDS port even if the TCP port was requested by the user.
+
+- Fixed a bug that prevented the nxclient dialog to be displayed when
+ the session was abruptedly shut down.
+
+- Fixed the compilation error on Apple MacOSX due to the sa_restorer
+ field in sigaction. As long as this field is present on Linux we
+ will keep following the safer route and will set it explicitly to
+ NULL.
+
+- Included what needs to be included in Process.cpp to compile with
+ older gcc.
+
+nxcomp-1.5.0-12
+
+- Implemented a replacement for the popen() and pclose() that do not
+ rely on a shell to run the command. They were required on Windows,
+ where we don't ship a suitable shell in the install.
+
+- Removed code forcing the PATH to include the bin directory on
+ Windows.
+
+nxcomp-1.5.0-11
+
+- Forced Auth.cpp on Windows to have the directory containing the
+ nxauth executable in the PATH. This is just for testing, until
+ nxclient is fixed.
+
+- Fixed compilation errors on Cygwin and Sun.
+
+- Removed the NX_FORCE_* stubs.
+
+nxcomp-1.5.0-10
+
+- Modified the memory management policies in ReadBuffer to fit all
+ the available bytes in a single buffer allocation.
+
+- The locateMessage() methods now give hints on the amount of data
+ that has to be read.
+
+- The read loop in channel now doesn't yield in the case of prio-
+ ritized messages. This is experimental.
+
+- Removed the check on isTimeToYield() between encodings of multi-
+ ple messages. This is aimed at reducing the risk of leaving pen-
+ ding messages in channels.
+
+- Modified the channels' read loop to always read all the available
+ data.
+
+- Disabled the log output that was selected when compiling with the
+ configure option --with-info. This leaves space for other log out-
+ put to be selected for more up-to-date scopes.
+
+- Implemented the NXTransReadVector() and the NXTransWriteVector()
+ functions to replace READV() and WRITEV().
+
+- Implemented memory-to-memory communication between the agent and
+ the NX proxy by making use of the NXTransAgent() interface in the
+ nx-X11/lib/X11/Xtranssock.c file.
+
+- Added a check in NXTransSelect() for the EBADF and, on Solaris,
+ the EINVAL errors. It can happen in the X11 code that a descript-
+ or has become invalid before it is removed from the managed set
+
+- Rewritten the signal handling functions to restore the old actions
+ and masks when the NX transport is destroyed.
+
+- Added a NXTransAgent() function to let agents tell the proxy which
+ descriptor must be used for the controlling connection. Setting a
+ controlling connection has the effect of disabling further X client
+ connections and makes the proxy terminate when the channel is shut
+ down.
+
+- Solved a problem with setting the initial timeout in the select().
+
+- Modified the Makefile.in to not include -Wno-deprecated when compi-
+ ling C programs.
+
+nxcomp-1.5.0-9
+
+- Fixed a problem that prevented the 1.5.0-8 to work on the NX server
+ side.
+
+- This version has NX_FORCE_NULL_LISTEN_OPTION and NX_FORCE_NEW_SES-
+ SION_OPTION undefined, so it should work in a way that is compati-
+ ble with the old nxcomp.
+
+nxcomp-1.5.0-8
+
+- The new code comes with a preliminary integration of nxcomp with
+ SSH. It is now possible to create the NX transport by just calling
+ the "switch" command as in the following example:
+
+ NX> 299 Switching connection to: NX options: ...
+
+- Other possible forms for the NX switch command are:
+
+ NX> 299 Switching connection to: NX mode: ...
+
+ NX> 299 Switching connection to: NX mode: ... options: ...
+
+ Or just:
+
+ NX> 299 Switching connection to: NX
+
+ The "mode" parameter is there to provide a way to run both enc-
+ rypted and unencrypted connections. Possible values are "encrypt-
+ ed", "unencrypted" or "default", the latter being an alias for
+ "encrypted". Unfortunately I was not able to test unencrypted
+ connections, so this may or may not work.
+
+- The top-level process can create the NX transport layer by calling
+ NXTransCreate(). The user has to set up a socket pair and pass the
+ higher descriptor to nxcomp. nxcomp will later monitor its end, by
+ reading and writing NX-encoded traffic. The user has to call the
+ NXTransExecute() function as often as it is possible, by letting
+ first NXTransPrepare() combine the sets of NX descriptors with the
+ descriptors that are used inside its process. A custom NXTransSel-
+ ect() is provided to optionally replace the original select(). This
+ function saves the original error code and the number of selected
+ descriptors upon exit, so the user can call it, restore the original
+ values as they were returned by the select() and run the rest of
+ the loop unmodified.
+
+- Future versions of the library should provide appropriate methods
+ for passing data to and from the proxy by means of a memcpy(), so
+ that it will be possible to remove the even minimal TCP overhead.
+
+- Note that integration is far from complete. More work is required
+ especially to manage the shutdown cleanly, in a way that gives to
+ SSH a chance to free its resources, and on adding facilities for
+ handling SSH and NX signals in a single function.
+
+- Rewritten the initialization procedure to make possible to run the
+ proxy in-process in an arbitrary connection manager, like SSH or a
+ HTTP utility. The same functionality can be used to embed nxcomp in
+ the NX agents, so that nxcomp has not to run in a separate process.
+
+- A new state-machine handles the advances through the connection
+ stages until the remote proxy (or the forwarder process ) is auth-
+ enticated, options have been negotiated and the session is started.
+
+- The option "session" is now used to pass the name of the session
+ file to the proxy. The parameter was previously used to pass the
+ literal name of the session, as set by the user, and was ignored
+ by the proxy. By default the session log is the standard error of
+ the process. It is anyway required to set the option when running
+ inside SSH, otherwise output will go to the same file as the SSH
+ output. In the NX client this would be the 'sshlog' file.
+
+- This version can be easily crafted to test the new integration by
+ setting the following define:
+
+ NX_FORCE_NULL_LISTEN_OPTION
+
+ This makes possible to test the nxcomp/nxssh integration by using
+ any production 1.4.0 client. To run this version you are required
+ to use nxproxy 1.5.0-4 and nxssh-1.5.0-6.
+
+- New functions handling enabling and disabling signals, based on
+ sigprocmask().
+
+- Improved error reporting when failures are encountered while ne-
+ gotiating the session.
+
+nxcomp-1.5.0-7
+
+- Caches are saved with a version identifier 1.4.0 so that they are
+ not discarded after upgrading the software to the 1.5.0.
+
+- Made values of T_* enumerations to be all lower case.
+
+- Updated copyright to year 2005.
+
+- Started working on an interface for running nxcomp in-process, as
+ a additional transport layer of nxssh or nxagent.
+
+nxcomp-1.5.0-6
+
+- Modified the configure script and the makefiles to not include the
+ -Wstrict-prototypes and -Wmissing-prototypes compilation flags. The
+ -Wnested-externs and -Wmissing-declarations flags are not included
+ when using GCC 3.
+
+- Removed the initial newline from string "NXPROXY - Version" printed
+ at program startup.
+
+- Made X authentication compatible with 1.4.0 clients. This is a tem-
+ porary solution while code is updated to handle the new X authori-
+ zation scheme.
+
+nxcomp-1.5.0-5
+
+- Added an Auth class to handle the X authentication. The NX server
+ should now use the same proxie cookie that is passed by the client
+ at session startup. The X server side proxy will forward the autho-
+ rization credentials by replacing the fake cookie with the real co-
+ okie, as it is read from the auth file using the xauth utility. The
+ implementation is based on the corresponding code found in the SSH
+ client and comes with the same limitations: only MIT-MAGIC-COOKIE-1
+ cookies are checked and the authorization file is read only once,
+ at the time the instance is initialized. If the auth file changes
+ along the life of the session, the old cookie will still be used.
+ This works with X servers because of an undocumented "feature".
+ See also nx-X11.
+
+nxcomp-1.5.0-4
+
+- Adjusted for alarm(0) returning an inconsistent value in ConnectTo-
+ Remote().
+
+- Small changes to Types.h, Jpeg.cpp and Png.cpp to compile with gcc
+ 3.4.2.
+
+- Cosmetic changes to the ChangeLog file.
+
+nxcomp-1.5.0-3
+
+- Removed test code from ServerChannel.cpp.
+
+- Small cosmetic change in Loop.cpp.
+
+- Tested for compatibility against 1.4.1-8.
+
+nxcomp-1.5.0-2
+
+- Changed VERSION file according to TRCL052336.
+
+nxcomp-1.5.0-1
+
+- Opened the 1.5.0 branch based on 1.4.1-9.
+
+nxcomp-1.4.1-9
+
+- Implemented methods PACK_RDP_PLAIN_64K_COLORS and PACK_RDP_PLAIN_-
+ 16M_COLORS. It seems that 16 bpp plain bitmaps can be seldom recei-
+ ved. This doesn't seem to be the case of 24 bpp bitmaps.
+
+nxcomp-1.4.1-8
+
+- The new code enables use of 16 bpp and 32 bpp RDP bitmaps. This re-
+ quired modifications to the following files:
+
+ Misc.h
+ Misc.cpp
+ Loop.cpp
+ Control.cpp
+ ServerChannel.cpp
+ Unpack.h
+ Unpack.cpp
+
+- Lots of cosmetic changes compared to the original code in 1.4.1-7.
+
+- Merged the 1.4.0 and the 1.4.1 branches by importing changes up to
+ the 1.4.1-7.
+
+nxcomp-1.4.0-30
+
+- Modified the function checking the Unix socket where X connections
+ will be forwarded. The function will not fail if the socket itself
+ doesn't exist yet. This solves the TRCL042203.
+
+- Moved the code checking for the CTRL+ALT+SHIFT+ESC sequence to a
+ separate function. The implementation will now look for a different
+ sequence on the MacOS/X platform. This should solve the TRCL042182.
+
+nxcomp-1.4.0-29
+
+- Solved a bug that could cause proxy to stop reading data from the
+ X channels due to an incorrect calculation of the bytes queued on
+ the proxy link. The bug only affected Linux kernels of the 2.0/2.2
+ series.
+
+- Fixed a problem in the proxy class that could let the select time-
+ out to become zero.
+
+nxcomp-1.4.0-28
+
+- Prevented the main proxy process from quitting when the fork() of
+ any of the children fails. This can actually happen on Windows due
+ to conflicts in reallocating any of the Cygwin DLLs.
+
+- Reworked handling of the priority flag in channels when dealing
+ with the X_InternAtoms and X_AllocColor requests to reduce the time
+ of session startup. Priority is never set in case of X_InternAtom
+ requests and replies as we assume that most clients use the appro-
+ priate Xlib function to pipeline multiple requests in a single net-
+ work operation.
+
+- The timeout after which proxy will abort the peer connection is
+ still 120 seconds. An alert dialog will be shown earlier, after 30
+ seconds instead of 60.
+
+nxcomp-1.4.0-27
+
+- Removed the code setting priority on channels on ButtonPress and
+ Button release events. It seems preferrable to delay the flush and
+ pack more events in a single frame. This makes possible to get the
+ ButtonRelease together with the ButtonPress.
+
+- Fixed error detection in SetNoDelay() where a positive result
+ could produce a 'not supported' message in debug mode.
+
+nxcomp-1.4.0-26
+
+- Reworked the check aimed at detecting the clock drifts. The previ-
+ ous code, introduced in 1.3.2-2, had the undesired side-effect of
+ resetting the proxy timeout. This could cause the proxy to never
+ detect that the other end had been killed.
+
+- The default behaviour of proxy is now to terminate the session at
+ the time an error is encountered. This includes network failures.
+
+- Added a new dialog to be shown to the user whenever the session
+ is terminated abnormally.
+
+nxcomp-1.4.0-25
+
+- Fixed a bug in handling of suppression of errors generated by
+ committing the image splits. Other errors, unrelated to the commit
+ of split, could be suppressed. This might cause the hangup of the
+ session when the suppressed error was matching a reply.
+
+nxcomp-1.4.0-24
+
+- When killing the proxy process -9 the watchdog could remain alive.
+ This caused the SSH link to keep the stderr open, with the effect
+ that former proxy message were not flushed to the session log.
+ Now the watchdog checks every second if the parent is dead, so
+ that file descriptors can be closed as soon as possible.
+
+- SetupDisplaySocket() tried to force the connections to the X
+ server on the UNIX port whenever the display was set to localhost.
+ This patch was intended to fix a bug in nxclient, using the TCP
+ port even when the display was set to a UNIX socket. This beha-
+ viour caused problems when running nxclient on a remote host by
+ means of a ssh -X. Proxy will now adhere to the display setting.
+
+nxcomp-1.4.0-23
+
+- Added the possibility to respawn nxclient at the end of session.
+ This is an useful feature when powering thin-clients where NX
+ is the only application made available.
+
+- This configuration applies system-wide to the local client ins-
+ tallation. By default it is disabled. It can be enabled by the
+ by creating a 'noexit' file in the directory '/usr/NX/share',
+ or at compile time, by setting ENABLE_RESTART_ON_SHUTDOWN to 1.
+
+- Note that the solution is not perfect yet, as there are cases
+ where session could die without going through HandleShutdown(),
+ for example if a decoding error is raised in the communication
+ with the remote peer and the subsequent restore of the proxy
+ link fails to succeed.
+
+nxcomp-1.4.0-22
+
+- Corrected typos in Timestamp.h and Loop.cpp.
+
+nxcomp-1.4.0-21
+
+- Tuned the handling of RenderCompositeGlyphs. Now compression of
+ RENDER shows an average ratio of 8:1. This is a steady increase
+ compared to the 5:1 of the 1.3.2 version. The overall advantage
+ when running clients displaying a large amount of text is 30%.
+
+nxcomp-1.4.0-20
+
+- Added a new message store for the CreatePixmap request.
+
+- Fixed handleCopy() to only send the data part past the offset.
+ This fix can save a significant amount of traffic, especially
+ when sending many small images whose size doesn't reach the
+ threshold set for compressing them.
+
+nxcomp-1.4.0-19
+
+- Added tuning of all the RENDER requests. RenderCompositeGlyphs
+ will require further work.
+
+- Completed porting of the RENDER requests to the new templates.
+
+nxcomp-1.4.0-18
+
+- Tuned the handling of RenderCreatePicture and RenderFreePicture.
+
+- Created a new template system for writing new message encoders.
+
+- Renamed getBits() in EncodeBuffer with diffBits(). The getBits()
+ method now returns the bits actually allocated in the buffer and
+ can be called multiple times.
+
+nxcomp-1.4.0-17
+
+- Provided specific encoding of the remaining RENDER requests and
+ added compression of RenderCreateGlyphSet.
+
+nxcomp-1.4.0-16
+
+- Code underwent through 7 different patch versions but seems to
+ be stable now. It still needs to provide specific encoding for
+ RenderCreatePicture RenderChangePicture and RenderFreePicture.
+ Code will likely include incompatible changes at any new version
+ until the new encoding will stabilize, so be sure that you use
+ the same nxcomp version at both sides.
+
+- Created the infrastructure for compressing extension messages
+ based on the minor opcode. A new class, MinorMessageStore, has
+ to be inherited by stores requiring specific compression, so
+ that all the encoding methods of the parent can be redirected
+ to it. The RENDER extension is now compressed using this new
+ class.
+
+- Managed to maintain the compatibility with caches created by the
+ 1.3.X version. Caches will be saved using the old format if the
+ remote version is not a 1.4.x. When restoring a cache created
+ by the 1.3.x with both proxies being the newest version, RENDER
+ mesages will be discarded without having to discard the whole
+ cache.
+
+- Added a member to the message class to store the identity size.
+ This field is now used instead of the default data offset to
+ manage the message data, that is the part of message after the
+ identity.
+
+- Removed the warnings printed in the session log when passing the
+ 'kbtype' and the 'geometry' options to the proxy. These options
+ are actually used by agents.
+
+nxcomp-1.4.0-15
+
+- Started implementation of the new framework for handling enco-
+ ding of X extensions.
+
+- Renamed the overloaded methods handleEncode() and handleDecode()
+ to handleEncodeCached(), handleEncodeIdentity() and handleDecode-
+ Cached(), handleDecodeIdentity().
+
+- Updated the copyright notice to year 2004.
+
+nxcomp-1.4.0-14
+
+- Added the new channel for HTTP connections. This channel can be
+ used to let applications running on the NX server get access to
+ data and applications made available by a HTTP daemon running at
+ the client side.
+
+ This channel is not used at the moment by nxclient. It can be
+ activated by passing http=1 to the NX server side proxy and the
+ value http=80 to the NX client side.
+
+nxcomp-1.4.0-13
+
+- Quick patch to run on MacOS/X where inet_addr("127.0.0.1")
+ alone seems to fail to return a valid interface.
+
+nxcomp-1.4.0-12
+
+- Few cosmetic changes to logging.
+
+- Removed the debug output.
+
+nxcomp-1.4.0-11
+
+- Removed code used for simulating the new forwarding function-
+ ality without client and server support.
+
+nxcomp-1.4.0-10
+
+- Implemented authentication of the forwarder to the listening
+ proxy. If a session cookie is required, the forwarder must
+ provide the cookie upon connection.
+
+ An authentication phase at the time the forwarder connects
+ to the NX client side is strongly suggested because it is usu-
+ ally this side that sends the authorization cookie. Without
+ such a forwarder authentication, the local peer would reveal
+ the cookie to the first process connecting to the port.
+
+- If no cookie is specified in the switch command, the forward-
+ er is required to skip the authentication phase. This can be
+ useful when running the programs on the command line.
+
+- The implementation required appropriate changes to session
+ negotiation in nxssh. This version requires nxssh-1.4.0-8.
+
+nxcomp-1.4.0-9
+
+- Fixed the startup procedure to correctly negotiate the cookie
+ when the X server side proxy is listening for a forwarder.
+
+- When listening for a local forwarder (that is when the listen
+ option is enabled at X server side), proxy will listen for the
+ forwarder on the localhost interface.
+
+- This version has ports and and other parameters hardcoded for
+ testing purposes and is not intended for normal use.
+
+nxcomp-1.4.0-8
+
+- Slightly modified the text of FAILED_PROXY_CONNECTION alert.
+
+nxcomp-1.4.0-7
+
+- Added provision for leaving a running dialog showing an OK box
+ if proxy is exiting abnormally. This seems to fail to yield the
+ expected results as, at the present moment, client checks if
+ parent has exited.
+
+- Added a Binder class invoked when calling proxy with -B option.
+ It would serve as a replacement of the modifications I'm doing
+ in nxssh. The class is just a framework and the implementation
+ is unfinished.
+
+nxcomp-1.4.0-6
+
+- Added a line in the session log if the connection procedure is
+ aborted due to a signal.
+
+- Fixed ParseHostOption() to let it take in account the proxy
+ port offset when passing 'host:port' as the last parameter at
+ X server side.
+
+nxcomp-1.4.0-5
+
+- Lowered the default port offsets used for CUPS and SMB services
+ to 2000 and 3000. Arbitrary ports can be used by passing the ser-
+ vice's port at proxy startup. By default, anyway, the port is at
+ the same offset of the proxied display. Considering that the NX
+ server uses to start the first session at display 1000, we must
+ lower some of the defaults to avoid interference with the normal
+ X sessions run on the server.
+
+ Session at display ":1000" will have:
+
+ . Forwarding of CUPS connections at 3000.
+
+ . Forwarding of SMB connections at 4000.
+
+ . The listening proxy (at NX server side) at 5000. This
+ port is not used when enabling SSH tunneling
+
+ . The proxied X display (NX agent or proxy) at 7000.
+
+ . Forwarding of multimedia channels at 8000.
+
+ . Forwarding of embedded keyboard connections at 9000.
+
+- Turned off the log output.
+
+nxcomp-1.4.0-4
+
+- Managed to get the X client side proxy connect to the remote
+ peer. This means that some parameters that were implicitly
+ assumed based on the proxied port simulating the X display
+ must be now specified in the NX display string.
+
+- The 'port' parameter now specifies the remote TCP port where
+ the local proxy will connect to the remote peer. In previous
+ versions this parameter also affected the proxied port. This
+ was mainly a side effect, as the remote peer was always con-
+ tacted at port 4000 plus the proxied display offset.
+
+- Added the 'listen' parameter to tell to the proxy that is go-
+ ing to accept the peer connection on which port it will be
+ contacted. By default, similarly to the previous version, the
+ proxy will listen at the proxied display offset.
+
+- A check has been added in order to disallow passing both the
+ 'accept' and the 'connect' parameter at the same time. A simi-
+ lar check affects the 'listen' parameter.
+
+- Renamed the previously unused 'sync' channel as 'cups'.
+
+nxcomp-1.4.0-3
+
+- Preserved the ability of version 1.3.2 to load caches generated
+ by this version.
+
+nxcomp-1.4.0-2
+
+- Small fixes to compile under Solaris 8.
+
+nxcomp-1.4.0-1
+
+- Opened the 1.4.0 branch.
+
+nxcomp-1.3.2-4
+
+- Fixed a problem with shmget(). Code in ServerChannel checked
+ the return value for being greater then 0, while 0 can actual-
+ ly be a valid segment.
+
+- When memory cache is disabled, nxcomp will explicitly set the
+ appropriate control variables dealing with loading and saving
+ of the persistent cache. This can be considered a cosmetic
+ change as nxcomp will disable NX delta compression if memory
+ cache is not available and this has an implicit effect on the
+ ability to load and save such a cache.
+
+nxcomp-1.3.2-3
+
+- Removed inclusion of zlib.h in Png.cpp. Conflicting symbols
+ with zlib.h from nx-X11 could cause compilation to fail.
+
+nxcomp-1.3.2-2
+
+- Added a function to take into account the clock drifts at the
+ time we check the ping from the remote proxy. This can be
+ caused by the user changing the system time or by small adjust-
+ ments introduced by the operating system making the clock go
+ backward. Such events could cause the proxy link to be shut
+ down and reconnected.
+
+- Reduced the length of lines printed in statistics when showing
+ the details of X protocol's opcodes. This is intended to help
+ nxclient to keep the whole statistics in the 'details' window,
+ so that users don't have to use the scrollbars.
+
+nxcomp-1.3.2-1
+
+- Opened the 1.3.2 branch.
+
+nxcomp-1.3.1-5
+
+- It seems that Solaris can return an EINVAL error selecting a
+ shutdown descriptor even before we actually close the socket.
+ We now ignore the condition on Solaris. This is definitely a
+ Solaris bug.
+
+nxcomp-1.3.1-4
+
+- Increased the timeout after which proxy will abort the peer
+ connection to 120 seconds. An alert dialog will now be shown
+ after 60 seconds, instead of the 30 seconds being the default
+ in the previous version. Some users reported the timeout to
+ be too short in the case of temporary network failures.
+
+nxcomp-1.3.1-3
+
+- Some optimizations in the cache house-keeping process. Now it
+ runs at lower system priority in respect to the parent. Any 2
+ iterations through directories and images, it also sleeps for
+ a tiny amount of time. This further decreases the system load.
+
+- Removed the underline characters and added a colon in the
+ title of this ChangeLog to fully comply with format used in
+ the release notices.
+
+nxcomp-1.3.1-2
+
+- Fixed a crash when running both client and server on the SPARC
+ Solaris. An optimization used to avoid byte-swapping when both
+ hosts have the same endianess doesn't work on SPARC if buffer
+ is not aligned to word boundary. A better version of the code
+ should check the CPU, not the OS, as this probably applies to
+ other processors.
+
+nxcomp-1.3.1-1
+
+- Opened the 1.3.1 branch.
+
+nxcomp-1.3.0-50
+
+- Disabled the processor limit in X client side proxy. In previous
+ versions the processor load limit was set to an idle time ratio
+ of 2. This was likely to cause an unwanted slowdown on very old
+ hardware or when running the server as guest OS inside a VMWare
+ virtual machine.
+
+nxcomp-1.3.0-49
+
+- Last minute update on proxy shutdown bug on Cygwin. A stack
+ trace reveals that faillure happens in the static destructor of
+ the BlockCacheSet class. It seems that problem appeared just
+ after having upgraded to the latest version of Cygwin DLL. Now
+ the destructor is skipped at shutdown.
+
+nxcomp-1.3.0-48
+
+- Further fix to overcome the shutdown problem on Windows.
+
+nxcomp-1.3.0-47
+
+- Used T_files::value_type() in Keeper.cpp. The form without the
+ explicit constructor fails to compile with GCC 2.91 on RH 6.2.
+
+- Fixed '==' -> '=' in configure.in to build under RH 6.2 and
+ probably other platforms.
+
+nxcomp-1.3.0-46
+
+- The cleanup procedure now skips deletion of the IO streams
+ under Windows. This is intended to overcome a strange segfault
+ occurring at random time, at the time proxy is being shutdown.
+
+nxcomp-1.3.0-45
+
+- Newer versions of the stdlibc++ do not seem to be able to deal
+ with NULL strings or non printable characters. This caused the
+ standard error stream to get sometimes corrupted in the case
+ TEST and DEBUG logs were enabled in Loop.cpp.
+
+nxcomp-1.3.0-44
+
+- Disabled TEST and DEBUG logs in ServerChannel.
+
+nxcomp-1.3.0-43
+
+- Fixed a crash when unpacking an image in server proxy in the
+ case the unpack state for the given channel had not been
+ previously created.
+
+nxcomp-1.3.0-42
+
+- Small modification to setSchedule() to not account previous
+ data accumulated in the encode buffer. The new code seems to
+ allow better use of the available bandwidth.
+
+nxcomp-1.3.0-41
+
+- Further fix in Tight decompression. Content of the main write
+ buffer was not removed before flushing the unpacked data to
+ the X server link.
+
+nxcomp-1.3.0-40
+
+- Removed the code marked as FIXME in Loop and ServerChannel.
+ Code was used in previous version to override any pack method
+ other than NO_PACK and to disable initialization of the shared
+ memory.
+
+nxcomp-1.3.0-39
+
+- Solved the problem with unpacking of RDP text on big-endian
+ architectures. The width field in PutPackedImage was put as
+ 16 bits and extracted as 32 bits at decoding side.
+
+- Moved the code checking if any of the children has exited in a
+ specific function. This function is now called any time signals
+ are newly enabled. This works even on Solaris.
+
+- Enabled use of shared memory with Tight image decompression.
+
+- Added event NXCollectPropertyNotify to NXproto.h.
+
+nxcomp-1.3.0-38
+
+- Message locks are now checked before splitting a message.
+
+nxcomp-1.3.0-37
+
+- Added a further counter to yield encoding data if the amount
+ of output bytes to be written to channels exceeds a threshold.
+
+- Modified proxy to write data immediately if the encoding loop
+ was interrupted.
+
+nxcomp-1.3.0-36
+
+- Further fix required by Tight decompression. By handling mul-
+ tiple writes in the Tight class we may flush the main write
+ buffer in the wrong order. If Tight decompression is enabled,
+ the buffer is now flushed before decoding the packed image.
+
+- A SIGCHLD is raised any time signals are newly enabled. This
+ allows the main loop to wait() the pid of children that had
+ exited while signals were disabled.
+
+nxcomp-1.3.0-35
+
+- Fixed Tight decompression by handling multiple writes to the
+ channel's transport inside the decompression function.
+
+- Made Tight decompressor in ServerChannel a pointer instead of
+ an instance of the class. Class is allocated the first time it
+ is referenced.
+
+- Rewritten handleUnpack() in ServerChannel to use a switch()
+ on the pack method instead of multiple if().
+
+nxcomp-1.3.0-34
+
+- Disabled RENDER extension when running X agent sessions on
+ the Solaris client. Problems seem to be caused by incompati-
+ bilities in the implementation of RENDER on the Sun X server
+ shipped by default. We did not test NX with the XFree86 X
+ server, but it seems that, when using the Sun X server, even
+ plain X clients don't make full use of the extension.
+
+nxcomp-1.3.0-33
+
+- Added 4 new fields to the X_NXGetControlParameters reply.
+ A dialog should be shown by agent if proxy was not able to
+ negotiate a persistent cache or if a cache was selected but
+ not loaded because incompatible or corrupted.
+
+- Fixed a bug on Solaris where socket() must be recreated if
+ the first connect() fails. Not a problem. The strange thing
+ is that if you reuse the socket(), the subsequent connect()
+ is successful and the program fails as soon as you try to
+ write to it.
+
+nxcomp-1.3.0-32
+
+- Added request X_NXFreeUnpack to free the resources allocated
+ by the remote proxy to unpack images for the given agent's
+ client
+
+- Added an alert at X server side if proxies were not able to
+ negotiate a persistent cache or if a cache was selected but
+ not loaded at X server side (that means that probably cache
+ was not compatible or corrupted). The alert is not enabled
+ at the moment. Before enabling it, we need to find a way to
+ deal with full-screen mode.
+
+- Tuning of MIT-SHM parameters.
+
+nxcomp-1.3.0-31
+
+- Modified the following requests to carry the id of the
+ agent's client:
+
+ - X_NXSetUnpackGeometry
+ - X_NXSetUnpackColormap
+ - X_NXSetUnpackAlpha
+ - X_NXPutPackedImage
+
+ Now each agent's client has its own record pointing to the
+ geometry, colormap and alpha channel that will be used to
+ unpack the image. Code is not finished yet so it is advisable
+ that agents' writers keep using client id 0. Note also that
+ the final solution will require some changes to the way split
+ notifications are sent to agent that I plan to implement in
+ the next versions.
+
+- The X_NXSetUnpackGeometry request has now a message store.
+ This should reduce the overhead to the minimum even in the
+ case of dumb agents not checking if the current geometry
+ matches the image to be unpacked.
+
+nxcomp-1.3.0-30
+
+- Improved handling of short-circuited replies at X client
+ side. Request opcodes are now pushed in the sequence queue
+ to determine if a reply is expected. In this case tainting
+ of reply is skipped to preserve the sequence ordering of
+ any event or error that could have generated by the reply.
+ This seems to solve all the problems reported by people
+ running a NX session in virtual desktop mode nested in an
+ existing session being run in single application mode.
+
+- Modified the cleanup procedure to print the 'Waiting for'
+ message in the session log only at the time all X channels
+ have been actually shut down. This message can be used by
+ the NX server to find out the appropriate time to close
+ the session.
+
+- Added the selected session type to the 'Using pack method'
+ message printed at startup.
+
+- Added the option to close down the proxy link and perform
+ a clean shutdown of the session, re-read the whole session
+ configuration or restart the proxy link when a SIGHUP is
+ delivered to the proxy process. The default behaviour is
+ to close down the session. The new default (the old one was
+ to restart the link) is a required feature to let users run
+ full sessions using single application mode f.e. in a LTSP
+ environment. I noted that when the controlling terminal of
+ the X session is closed, a SIGHUP is delivered to the X
+ server side proxy (probably it is delivered to all the con-
+ nected clients, and, thus for NX, only to the proxy). This
+ signal can be used to terminate the whole session.
+
+nxcomp-1.3.0-29
+
+- Changed defaults to disable image masks when running proxy
+ in single application mode. The new configuration requires
+ changes in NX server and in NX X11 library. Users should
+ experience much better image quality when using NX on slow
+ links. This comes at the cost of slightly worse compression
+ ratios.
+
+nxcomp-1.3.0-28
+
+- Opcode of request was not rewritten by server channel when
+ using link LAN. This caused problems with taint of replies.
+
+nxcomp-1.3.0-27
+
+- Modified the split store and the split procedures in client
+ channel to always return the client id in the notification
+ events. The new field is added to event at byte offset 28
+ to preserve compatibility with previous agent releases. The
+ modification permits to agent to match the commit of alpha
+ channel with the original image, if requests are split by
+ proxy.
+
+- Temporarily set the timeout used to poll MIT-SHM completion
+ events coming from X server to 0. More testing is required.
+
+- Fixed an inconsistent message generated in statistics due to
+ a division by 0.
+
+nxcomp-1.3.0-26
+
+- Modified pending timeout from 1 to 0 milliseconds. This means
+ that both channels and proxy are now immediately restarted to
+ let them consume all data left in their read buffer.
+
+- When querying the X server for MIT-SHM support, size of name
+ in X_QueryExtension request was sent as 32 bits instead of 16.
+ This caused request to fail on big endian architectures.
+
+- Modified the MIT-SHM initialization procedure to always send
+ all the 3 protocol requests also in the case of early failures.
+
+nxcomp-1.3.0-25
+
+- Implemented handling of the new X_NXSetUnpackAlpha message.
+ Performances are very satisfactory. Using most of the current
+ GNOME and KDE applications, caching reaches 90% of the total
+ messages.
+
+- Modified the persistent cache management routines to handle
+ backward compatibility with proxy versions prior of 1.3.0.
+
+- It has been made possible to send both X_NXSetUnpackColormap
+ and X_NXSetUnpackAlpha messages with 0 entries to temporarily
+ disable use of the colormap or the alpha channel and free the
+ resources allocated by the server channel class.
+
+- Added function UnpackAlpha() to Unpack.cpp.
+
+nxcomp-1.3.0-24
+
+- Using WriteBuffer::registerPointer() to track growing of the
+ write buffer in handleFastWrite() functions. This problem
+ existed even in 1.2.2 but never shown up because we didn't
+ have to use the pointer after data had been written to the
+ write buffer. Now, instead, we have to post-process the write
+ buffer to copy data to the shared segment.
+
+- Optimized memory allocations running with link LAN to save a
+ memcpy() any time new data is allocated in the scratch buffer.
+
+- When running with link LAN the scratch buffer is now used only
+ when:
+
+ - A further allocation would case growing of the write buffer
+ (and, thus, a memcpy() of the previous content).
+
+ - When data to added is bigger than the write threshold.
+
+ In previous versions the scratch buffer was used any time the
+ total amount of data to be written (write buffer + scratch
+ buffer) exceeded the scheduled write threshold. This caused
+ small writes to be appended even when a single write could
+ be obtained without reallocating the buffer.
+
+- Preliminary support for transporting the alpha channel in a
+ separate message in case of 32 bits displays using the RENDER
+ extension.
+
+nxcomp-1.3.0-23
+
+- Modified the mask used to open the shared memory segment on
+ OS/X to 0777. We have to better investigate why the previous
+ 0600 mask doesn't work even if the user running the proxy is
+ the same user running the X server.
+
+nxcomp-1.3.0-22
+
+- Implemented MIT-SHM support on LAN connections.
+
+- More MIT-SHM bug fixes.
+
+nxcomp-1.3.0-21
+
+- Better use of the shared segment through an improved
+ algorithm leveraging the offset field of the X_ShmPutImage
+ request. The new algorithm greatly reduces the amount of
+ polls the proxy needs to perform to find if the completion
+ event has arrived.
+
+- Implemented MIT-SHM support for X_PutImage requests.
+
+- Implemented option shmem=value. Use of this option is anyway
+ discouraged. Proxy will allocate the shared memory segment
+ based on the size of the in-memory cache set by the user.
+ Use of MIT-SHM is disabled when user did set a memory cache
+ smaller than 2MB (for example on the embedded client).
+
+- Rewritten post-processing of images in server channel loop.
+
+- Improved error handling to ensure we intercept all MIT-SHM
+ X errors before they reach the NX agent.
+
+- Solved a problem that was causing channels to not reflect
+ shared memory support flags set in control.
+
+nxcomp-1.3.0-20
+
+- Solved a compatibility problem when mixing proxy versions
+ 1.2.2 and 1.3.0.
+
+nxcomp-1.3.0-18
+
+- Rewritten interfaces to shared memory initialization in
+ client and server channel.
+
+- Server channel checks for the completion event until a
+ timeout before reusing the shared memory segment.
+
+- Flush flag was not cleared after the write buffer had been
+ flushed in handleWrite() of both client and server channels.
+ This could lead to multiple fragmented writes, affecting
+ the performances.
+
+- Added -lcygipc to linking on Windows platform.
+
+- Added a check on GCC version to see if -Wnested-externs
+ -Wmissing-declarations are valid options.
+
+nxcomp-1.3.0-17
+
+- Implemented initial support for MIT-SHM extension in the
+ network path between the X server proxy and the real X
+ server. Presently it works only for X_NXPutPackedImages.
+
+- Modified configure.in to compile under FreeBSD.
+
+- Small changes to sources due to FreeBSD support.
+
+nxcomp-1.3.0-16
+
+- Fixed caching of RENDER extension on MacOS/X and Solaris.
+
+- Under Solaris an explicit call to EnableSignal() is needed
+ at the end of the signal handler as raising a signal seems
+ to reset the previous settings.
+
+- Can't find a way to get bytes queued for write on Solaris as
+ both FIONWRITE and TIOCOUTQ don't seem to be available. This
+ means that NX server on Solaris is only able to detect con-
+ gestions on proxy link at the time a write fails with error
+ EAGAIN.
+
+- Starting from this version, render extension messages are not
+ automatically discarded from cache when running agent based X
+ sessions. This is in preparation of render support introduced
+ in this release.
+
+nxcomp-1.3.0-15
+
+- Changed default to force writes if X channels exceed buffer
+ limits. This change was suggested by benchmarks performed on
+ Win32.
+
+- Wrapped IO on cache files in functions performing better error
+ checking.
+
+- General cleanup in handling of socket options for MacOS/X and
+ Solaris.
+
+nxcomp-1.3.0-14
+
+- Corrupted persistent caches were not deleted in case loading
+ of any of the message stores failed. To run further sessions
+ on the same host, user had to delete the cache file manually.
+
+- Improved error handling in JPEG decompression. Now connection
+ is reset in case of failure.
+
+- Before performing JPEG or PNG decompression, image is better
+ checked to verify if loading from disk failed.
+
+- Improved error handling in case of failure loading persistent
+ cache from disk. On MacOS/X istream -> fail() doesn't seem to
+ work properly. This needs further investigation.
+
+- The default installation path of nxclient is searched under
+ MacOS/X at the time nxclient is invoked in dialog mode.
+
+nxcomp-1.3.0-13
+
+- Fixed a (further) compilation problem under Solaris. Now static
+ libraries are first searched under /usr/sfw/lib (in case Sun
+ would decide to include them in future releases).
+
+nxcomp-1.3.0-12
+
+- Fixed parsing of command line when passing option -V.
+
+- Correctly detected ENOPROTOOPT when setting TCP_NODELAY socket
+ option on MacOS/X and Solaris.
+
+nxcomp-1.3.0-11
+
+- Given option in configure to specify what needs to be built
+ statically:
+
+ --with-static-png enable static linking of PNG library
+ --with-static-jpeg enable static linking of JPEG library
+ --with-static-z enable static linking of Z library
+
+nxcomp-1.3.0-10
+
+- Fixed a problem in saving of persistent cache on big-endian
+ machines.
+
+nxcomp-1.3.0-9
+
+- Testing with different settings to check if it's possible to
+ increase the performances under Windows.
+
+- Solved a problem in parsing of options that prevented proxy
+ to connect to a remote session running at port offset 0.
+
+- Fixed two warnings compiling on Solaris.
+
+- Changed configure.in to first check for nx-X11 includes
+ and libraries. Added "/usr/openwin/bin/makedepend" to path
+ searched for the executable.
+
+nxcomp-1.3.0-8
+
+- Small cleanup in configure.in and files modified by Gregorz
+ Kryza to add support for Solaris.
+
+- A new configure script has been generated using autoconf-2.57-3.
+
+nxcomp-1.3.0-7
+
+- Added support for detection of Solaris in configure script.
+ Now Makefile.in uses ranlib instead of ar.
+
+- Small changes in source and header files to support Solaris.
+
+nxcomp-1.3.0-4
+
+- Corrected a bug that could cause priority on proxy and channels
+ to be not taken in account at the time proxy tries to determine
+ if it's time to flush the proxy link.
+
+- Better implementation of abort split notification by X server
+ proxy to its remote peer. The new implementation doesn't
+ need to set a timeout and permits notifications to be received
+ earlier.
+
+- Improved support for 'tainting' XSync() messages coming from
+ X clients in single application mode. Now a X_GetInputFocus
+ is sent to the real X server any n such messages received by
+ proxy.
+
+- Included support for 15 bpp displays. It seems that handling
+ them as 16 bpp it's OK.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcomp_README b/doc/_attic_/NoMachine_documentation_files/nxcomp_README
new file mode 100644
index 000000000..f35cce6b5
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcomp_README
@@ -0,0 +1,21 @@
+README
+------
+
+Building
+--------
+
+1. To compile:
+
+ > tar zxvf nxcomp-X.Y.Z-N.tar.gz
+ > cd nxcomp
+ > ./configure
+ > make
+
+ You'll have to run gmake under Solaris.
+
+2. The 'make install' target is not currently supported
+ in the Makefile, but it should be simple to fix.
+
+You need at least nxproxy and nxagent packages to enjoy this code. Check the
+NoMachine website at http://www.nomachine.com to get the latest release.
+
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ b/doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ
new file mode 100644
index 000000000..f9418635c
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcomp_README-IPAQ
@@ -0,0 +1,21 @@
+README-IPAQ
+-----------
+
+1. Install a cross-compiler for ARM. You can find detailed
+ informations at:
+
+ http://www.ailis.de/~k/knowledge/crosscompiling/toolchain.php
+
+ There are also binaries needed to install the cross-compiler.
+
+2. Configure and compile libXcomp using:
+
+ $ ./configure --with-ipaq
+ $ make
+
+ After compilation type:
+
+ $ arm-linux-strip libXcomp.*
+
+3. Remember that you also need nxproxy to actually run your NX X
+ session.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG
new file mode 100644
index 000000000..941e9b411
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcompext_CHANGELOG
@@ -0,0 +1,806 @@
+ChangeLog:
+
+nxcompext-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxcompext-3.4.0-1.
+
+- Updated copyright to year 2011.
+
+nxcompext-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxcompext-3.3.0-4.
+
+- Updated version number.
+
+- Updated copyright to year 2009.
+
+nxcompext-3.3.0-4
+
+- Fixed TR03G02199. The color palette allocated for encoding an image
+ having 256 colors or less was not freed.
+
+nxcompext-3.3.0-3
+
+- Now setting the correct event serial number when sending collect
+ notifies back.
+
+nxcompext-3.3.0-2
+
+- Updated VERSION.
+
+nxcompext-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxcompext-3.2.0-1.
+
+nxcompext-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxcompext-3.1.0-2.
+
+nxcompext-3.1.0-2
+
+- Updated file VERSION to match the current release version.
+
+nxcompext-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxcompext-3.0.0-18.
+
+nxcompext-3.0.0-18
+
+- Removed the remaining debug output.
+
+nxcompext-3.0.0-17
+
+- Changed the copyright notices at the beginning of the files that
+ were referring to NXPROXY to refer to NXCOMPEXT.
+
+nxcompext-3.0.0-16
+
+- Handle the reply failure in NXGetShmemParameters().
+
+nxcompext-3.0.0-15
+
+- Separated the functionalities made available by NXQueryDisplay()
+ in three distinct functions:
+
+ NXDisplayReadable() Query the number of bytes readable from
+ the display connection.
+
+ NXDisplayFlushable() Query the number of the outstanding bytes
+ to flush to the display connection.
+
+ NXDisplayCongestion() Return a value between 0 and 9 indicating
+ the congestion level of the NX transport.
+
+- Renamed NXQueryDisplayError() to NXDisplayError().
+
+nxcompext-3.0.0-14
+
+- Removed support for Rdp, Tight and Hextile packed images encod-
+ ing since they have been made obsolete by the new NX server.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+nxcompext-3.0.0-13
+
+- Allocate 1024 additional bytes for the Jpeg compression, instead
+ of 512, to avoid failures on very tiny images.
+
+- Removed support for the special *PNG_JPEG* pack method.
+
+nxcompext-3.0.0-12
+
+- Implemented the NXEncodeBitmap() method. This is a very simple
+ encoder removing the 4th byte in 32 bits-per-plane images. For
+ the other pixmap depths it simply returns a pointer to the orig-
+ inal image data, saving the copy. This encoding is intended to
+ better leverage the stream compression on low bandwidth links.
+
+- Removed the quality parameter from the RGB/RLE encoding function.
+
+nxcompext-3.0.0-11
+
+- Removed the additional parameter in the call to NXTransFlush().
+
+nxcompext-3.0.0-10
+
+- Moved the _NXRDPGlyph and _NXRDPText declarations from NXlib.h
+ to NXproto.h to force fields to be CARD32.
+
+- Fixed a typo in NXSetDisplayBuffer() that could cause a double
+ free.
+
+- Fixed a compilation error with old GCC versions.
+
+- Removed the warning issued on AMD64 when compiling with the logs
+ enabled.
+
+nxcompext-3.0.0-9
+
+- Added the NXDisplayCongestion query type to NXQueryDisplay(). It
+ returns a value between 0 and 9, with 9 meaning that the link is
+ congested and no further data can be sent.
+
+- Added the NXSetDisplayBuffer() function. It allows the caller to
+ set the display output buffer size at runtime.
+
+- Removed the congestion and synchronization callbacks.
+
+nxcompext-3.0.0-8
+
+- Removed the warnings issued when purging the collected data at
+ display reset.
+
+nxcompext-3.0.0-7
+
+- Added the NXSetDisplayWriteHandler() interface. The function
+ registers a callback that will be invoked every time more data
+ is written to the display socket.
+
+nxcompext-3.0.0-6
+
+- Made NXQueryDisplay() take into account the bytes in the display
+ buffer when queried for the bytes flushable.
+
+nxcompext-3.0.0-5
+
+- Added file COPYING.
+
+nxcompext-3.0.0-4
+
+- Updated copyright notices to the current year.
+
+nxcompext-3.0.0-3
+
+- Imported changes up to nxcompext-2.1.0-4.
+
+- Fixed TR12D01564. Changed configure script to build library with
+ -fPIC option.
+
+- Added 256 byte to the size of Jpeg destination buffer.
+
+nxcompext-3.0.0-2
+
+- Updated the file VERSION.
+
+nxcompext-3.0.0-1
+
+- Opened the 3.0.0 branch based on nxcompext-2.0.0-33.
+
+nxcompext-2.0.0-33
+
+- Placed the inclusion of jpeglib.h after the X includes to fix a
+ possible compilation error.
+
+nxcompext-2.0.0-32
+
+- Avoid to copy the data to the scratch buffer and yield the task
+ of padding the output to _XSend() in the NXPutPackedImage(), NX-
+ SetUnpackAlpha() and NXSetUnpackColormap() requests.
+
+- Added support for the RLE pack method.
+
+nxcompext-2.0.0-31
+
+- The X_NXSetUnpackColormap and X_NXSetUnpackAlpha now carry their
+ data in compressed form. The alpha data is compressed using the
+ ZLIB RLE encoding, while the colormap data is compressed using
+ the default ZLIB deflate.
+
+- Created new message structures to handle the compatibility with
+ the old proxy versions. When connected to an old proxy version
+ the agent should use the NXSetUnpackColormapCompat() and NXSet-
+ UnpackAlpha() interfaces.
+
+nxcompext-2.0.0-30
+
+- Removed the unfriendly warning printed if a client tried to reset
+ the library multiple times.
+
+nxcompext-2.0.0-29
+
+- Made possible to compile even if makedepend is not found.
+
+nxcompext-2.0.0-28
+
+- Added the NXSetDisplaySynchronizationHandler() interface. The NX
+ transport will use the callback to report when the agent can use
+ the available bandwidth to synchronize the X objects that are
+ corrupted or incomplete.
+
+- Bytes from 14 to 24 in the NXGetControlParameters() reply report,
+ respectively, the frame timeout, the ping timeout, the preferred
+ image split mode and the split size threshold.
+
+nxcompext-2.0.0-27
+
+- Changed the image cleanup functions and the Png and Jpeg encoders
+ to be independent from the host endianess.
+
+- Enabled again the image cleanup on big endian machines.
+
+nxcompext-2.0.0-26
+
+- Added the NXAbortSplit() request.
+
+- Added information about the size of the shared memory segment used
+ by the remote proxy in the NXGetShmemParameters() reply.
+
+nxcompext-2.0.0-25
+
+- Renamed the NXGetSplitResource() and NXGetUnpackResource() utili-
+ ties to NXAllocSplit() and NXAllocUnpack(). They can be called
+ with a NXAnyResource parameter to get the first available id or
+ requre a specific resource. From this version the resource must
+ be explicitly reserved. NXFreeUnpack() and NXFreeSplit() check
+ if the resource was allocated and don't do anything if it is not
+ the case. NXAllocSplit() and NXAllocUnpack() return NXNoResource
+ if the resource can't be reserved.
+
+nxcompext-2.0.0-24
+
+- NXFlushDisplay() now verifies whether the XlibDisplayWriting flag
+ is set before flushing the display buffer. in this case, it only
+ flushes the NX link.
+
+nxcompext-2.0.0-23
+
+- Implemented a move-to-front strategy for the image cache, to mi-
+ nimize the number of lookups.
+
+- Fixed the problems imtroduced by the new cache implementation by
+ modifying the memory allocation routines in Jpeg.c and Pgn.c.
+
+- Temporarily fixed the cleanup problems on big-endian machines by
+ skipping the operation.
+
+- Added a NXSetDisplayStatisticsHandler() to let the agent include
+ arbitrary data in the transport statistics. The parameter is a
+ pointer to a pointer to a null terminated string. The pointer is
+ set at the time the handler is registered. The pointed string can
+ be filled by the agent with its statistics data.
+
+nxcompext-2.0.0-22
+
+- The NXCacheFindImage() returns a pointer to the checksum, if the
+ image is found.
+
+- The image cache uses the data passed to NXCacheAddImage() instead
+ of making a copy.
+
+- The Z stream used by the RGB encoder is allocated at initializat-
+ ion and freed at reset.
+
+nxcompext-2.0.0-21
+
+- Removed the reliance on the local byte order in the image cleanup
+ functions.
+
+nxcompext-2.0.0-20
+
+- Added the NXFinishSplit() request. It forces the proxy to comple-
+ tely transfer all the split messages for the given resource, and
+ then notify the agent.
+
+nxcompext-2.0.0-19
+
+- Enabled again the cleanup of images.
+
+- Updated to comply with the new NXTransFlush() interface.
+
+nxcompext-2.0.0-18
+
+- Moved all the declarations in Rgb.c at the beginning of the block
+ to avoid the possible compilation errors with old compilers.
+
+nxcompext-2.0.0-17
+
+- Added a new RGB image encoder. For now the encoder uses a static
+ Z stream to compress the image data in the destination buffer and
+ allows the agent to use the simplest encoding by still separating
+ the alpha channel from the image data. The new encoder can be the
+ the base for implementing color reduction by dithering or a color-
+ mapped translation of the image similar to PNG, but without the
+ PNG overhead and with the colormap being sent to the client using
+ the NXSetUnpackColormap() opcode.
+
+- Created a new NXCleanImage() function that takes a XImage pointer
+ and uses either the CleanXYImage() or the CleanZImage() routines
+ to cleanup the padding bits.
+
+nxcompext-2.0.0-16
+
+- Added a parameter to NXFlushDisplay() to specify what needs to be
+ flushed. The parameter can be one the following values, defined
+ in NXvars.h:
+
+ NXFlushBuffer Only the Xlib buffer is to be flushed.
+
+ NXFlushLink Flush both the Xlib buffer and any pending
+ data encoded by the NX transport.
+
+ NXFlushIdle Inform the NX transport that the agent is
+ idle. This will let the NX transport encode
+ more low-priority data, and then flush the
+ link.
+
+- Ensured that the padding bytes are cleaned when creating a new
+ PNG image. It seems that some images are still missed. This is
+ to be investigated.
+
+nxcompext-2.0.0-15
+
+- Ensured that the packed image cache is recreated only on a size
+ change.
+
+nxcompext-2.0.0-14
+
+- Updated to get the karma delay field from the X_NXGetControlPara-
+ meters reply.
+
+nxcompext-2.0.0-13
+
+- Added the NXSetDisplayPolicy() and NXSetDisplayFlushHandler() in-
+ terfaces. The second function registers a callback that will be
+ invoked by the NX transport when the number of bytes encoded by
+ the proxy exceeds the threshold set for the scheduled write.
+
+- Added the NXFlushDisplay() and NXQueryDisplay() interfaces. They
+ are used to hide the corresponding NX transport functions to the
+ application. NXQueryDisplay() can be called with the NXDisplay-
+ Flushable or NXDisplayReadable parameters, to get, repectively,
+ the number of bytes that are queued to the NX transport and the
+ number of bytes that is possible to read.
+
+- Included the remote proxy version in the NXGetControlParameter()
+ reply.
+
+nxcompext-2.0.0-12
+
+- Added the NXGetSplitResource() and NXGetUnpackResource utilities.
+ These can be used by the client to find out the first unused id
+ available for a split or unpack operation.
+
+- Added the NXFreeSplit() request function. It makes the resource
+ available for the next operation and tells the proxy to destroy
+ all the storage associated to the split.
+
+- Renamed the NXNumberOfConnections constant to NXNumberOfResources.
+
+nxcompext-2.0.0-11
+
+- Changed NXForceDisplayError() to also shut down the NX transport
+ by calling NXTransClose().
+
+- Updated to comply with the new NX function prototypes introduced
+ in nxcomp-2.0.0-31.
+
+nxcompext-2.0.0-10
+
+- NXQueryDisplayError() now checks the predicate function only if
+ the I/O error was not encountered already.
+
+nxcompext-2.0.0-9
+
+- Added the NXSetDisplayErrorPredicate(), NXSetDisplayBlockHand-
+ ler(), NXSetDisplayCongestionHandler(), NXSetLostSequenceHand-
+ ler() interfaces to let the user set the values used internal-
+ ly. All functions return the previous handler. See ChangeLog
+ in nx-X11-2.0.0-16 and nx-X11-2.0.0-17.
+
+- Moved all the internal variables shared between Xlib, nxcompext
+ and the X server in nxcomp. Declarations and function prototypes
+ moved to NXvars.h.
+
+- Some name changes. In particular the NXContinueOnDisplayError()
+ function iss renamed NXHandleDisplayError() and NXDisplayError()
+ is now renamed NXQueryDisplayError(). To verify if the display
+ is valid, NXQueryDisplayError() will now call the _NXDisplayEr-
+ rorPredicate function, or, if the predicate function is not set,
+ will simply check the value of the XlibDisplayIOError flag.
+
+- Removed the NXGetCleanupParameters() and NXGetImageParameters()
+ interfaces and the remaining references to the unused display
+ buffer and image cleanup functions.
+
+- Updated the NoMachine copyright notice to year 2006.
+
+nxcompext-2.0.0-8
+
+- Removed the unused screen parameter from XSetUnpackGeometry().
+
+- NXSetUnpackGeometry() now fails if no visual is provided.
+
+nxcompext-2.0.0-7
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Removed the misplaced DXPC copyright notices from the license.
+ They were copied from NXCOMP but they don't apply in any way to
+ NXCOMPEXT.
+
+nxcompext-2.0.0-6
+
+- Added the NXSetCacheParameters() request. It tells to the local
+ proxy how to handle the X requests, namely if the next requests
+ have to be stored in the memory cache, split in smal data chunks,
+ and in the case of images, saved on disk in the persistent image
+ cache. The request will affect all X messages, including plain
+ and packed images. It can be used to tell the proxy to discard
+ images coming from some selected operations, like GLX or XVideo.
+
+nxcompext-2.0.0-5
+
+- Added the NXGetFontParameters() request and reply. If the proxy
+ has been configured accordingly, the request returns the X font
+ path that can be set by the agent to tunnel the font server con-
+ nections through the NX link.
+
+nxcompext-2.0.0-4
+
+- Initial work on font server tunneling.
+
+nxcompext-2.0.0-3
+
+- Renamed the NXSetExposeEvents request to NXSetExposeParameters.
+
+nxcompext-2.0.0-2
+
+- Modified the configure and the makefiles to support the Cygwin
+ environment.
+
+- Renamed Png.h to Pgn.h to avoid name clashes on Windows.
+
+- The distclean target now removes the autom4te.cache directory.
+
+nxcompext-2.0.0-1
+
+- Opened the 2.0.0 branch based on nxcompext-1.5.0-20.
+
+nxcompext-1.5.0-20
+
+- Removed the code installing a SIGSEGV handler before trying to
+ clean an image in NXCleanImageInPlace().
+
+nxcompext-1.5.0-19
+
+- Added the NXUnsetLibraryPath() function to specify the behaviour
+ of the Popen() in the X server. If the _NXUnsetLibraryPath flag
+ is set, the Popen() will remove the LD_LIBRARY_PATH variable from
+ the environment before running the child process. This will cause
+ the X server to run the process (for example the keyboard initia-
+ lization utilities) by using the native system libraries, instead
+ of the libraries shipped with the NX environment.
+
+nxcompext-1.5.0-18
+
+- Moved the declarations of _NXEnable* and related structures from
+ Xlibint.h to NXlibint.h.
+
+- Use the include files from nx-X11 if the nx-X11/include directory
+ is found. The previous configure checked the presence of nx-X11/
+ exports/include, that might not be built at the time this library
+ is compiled.
+
+nxcompext-1.5.0-17
+
+- Added the -fPIC GCC flag when compiling on AMD64 architectures.
+
+- Removed all warnings when compiling with GCC4.
+
+- Small changes to configure.in to have specific CFLAGS.
+
+- Created a new configure using autoconf 2.59.
+
+nxcompext-1.5.0-16
+
+- Added the 'mode' field in the NXStartSplit() request. It determi-
+ nes the strategy that the proxy will adopt to handle the image.
+ If set to 'eager', the proxy will only split the messages whose
+ size exceeds the split threshold (the threshold can be found in
+ the NXGetControlParameters() reply). If mode is set to lazy, the
+ proxy will split any image that it is not able to find in its
+ cache.
+
+ The opcode and the two available modes are defined in NXproto.h,
+ currently:
+
+ #define NXSplitModeDefault 0
+ #define NXSplitModeEager 1
+ #define NXSplitModeLazy 2
+
+- All requests related to image streaming now carry a 'resource' id.
+ The id is currently ignored by the proxy in the case of NXCommit-
+ Split() requests.
+
+nxcompext-1.5.0-15
+
+- Removed the NXSync() and NXKarma() operations, not used anymore
+ by the NX agents.
+
+- Updated to comply with changes occurred in the numbering of the
+ notification events and in the interface to the image streaming
+ functions.
+
+nxcompext-1.5.0-14
+
+- Accounted for the missing xoffset field in clean-up of XYPixmaps.
+
+nxcompext-1.5.0-13
+
+- Added a 'commit' field in NXCommitSplit(). When zero, the remote
+ proxy will remove the message from the split store, without send-
+ ing the recomposed image to the X server.
+
+nxcompext-1.5.0-12
+
+- Added the NXContinueOnDisplayError() function to specify the be-
+ haviour of the Xlib I/O error handler. If the flag is set to true,
+ Xlib will simply return, instead of quitting the program. This
+ leaves to the application the responsibility of checking the sta-
+ te of the XlibDisplayIOError flag.
+
+- Changed NXDisplayIsValid() to NXDisplayError() and inverted the
+ logic. Now the function returns true if the display pointer is
+ NULL or the XlibDisplayIOError flag is set.
+
+- Added the NXForceDisplayError() function, to shutdown the display
+ descriptor and force Xlib to set the I/O error flag.
+
+nxcompext-1.5.0-11
+
+- Added -I../nx-X11/exports/include to CCINCLUDES in Makefile.in.
+
+nxcompext-1.5.0-10
+
+- Added FindLSB() to replace ffs() that may be not present on some
+ systems.
+
+- Some cosmetic changes.
+
+nxcompext-1.5.0-9
+
+- Fixed a printf() that prevented the code to compile if TEST was
+ enabled.
+
+nxcompext-1.5.0-8
+
+- Implemented the NXLib interface for asynchronous handling of the
+ XGetInputFocus requests and replies.
+
+nxcompext-1.5.0-7
+
+- Removed the _NXFlushSize parameter. New agents run the NX trans-
+ port in-process, so we don't get any benefit from increasing the
+ display buffer size.
+
+nxcompext-1.5.0-6
+
+- Added a NXDisplayIsValid() to check that the display is not NULL
+ and that the descriptor was not shut down after an IOError. The
+ reason a function is needed for this is that the flags field is
+ only in Xlibint and it is not visible to Xlib applications.
+
+nxcompext-1.5.0-5
+
+- Added the NXGetCollect*Resource utility functions, returning the
+ first available small integer resource id that can be used in a
+ subsequent collect request.
+
+nxcompext-1.5.0-4
+
+- Added the NXNumberOfConnections constant.
+
+nxcompext-1.5.0-3
+
+- Implemented the NXLib interface for the asynchronous handling of
+ the XGrabPointer requests and replies.
+
+- Solved an error in image cleaning that prevented the 8 bits-per-
+ pixel images to be completely cleaned. Due to the bug, only half
+ of the total lines were cleaned.
+
+- Removed a bug that prevented the cleaning of XYPixmaps images of
+ bitmap unit 32 and byte order LSB.
+
+- Renamed the NXImageCache variables to show they are global. They
+ are currently used in the nxagent code.
+
+nxcompext-1.5.0-2
+
+- Changed VERSION file.
+
+nxcompext-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nxcompext-1.4.1-1
+
+- Removed the configure option --with-static. There are two options
+ now, --with-static-png and --with-static-jpeg, to offer a greater
+ degree of control on the resulting library.
+
+- This version differs from the 1.4.0-3-KRY1 in the way that the con-
+ figure script is generated by GNU Autoconf 2.57, the same version
+ used for nxcomp.
+
+- Opened the 1.4.1 branch.
+
+nxcompext-1.4.0-3
+
+- Updated the VERSION file to reflect the 1.4.0 status.
+
+nxcompext-1.4.0-2
+
+- Imported changes from the latest 1.3.2 development branch.
+
+- The 1.4.0 branch already had a 1.4.0-1 version. The changes from
+ the 1.4.0-1 were up to date with the 1.3.2-2 version.
+
+nxcompext-1.3.2-6
+
+- Fixed problem with icons in KDE and Mozilla on SPARC Solaris. The
+ problem was related to cleaning of one-bit XYPixmaps on big-endian
+ hosts, where shift of the cleaning mask executed in the wrong di-
+ rection.
+
+nxcompext-1.3.2-5
+
+- Changes in Clean.c to compile on Solaris.
+
+nxcompext-1.3.2-4
+
+- Fixed a bug in clean image procedures for 1bit XYPixmaps. The bug
+ caused Mozilla to trash some transparent icons in web pages and
+ the toolbar.
+
+- Added cleaning of the padding bytes at the end of the data chunk
+ inside XImage structure
+
+- Implemented handling of SIGSEGV during cleanup in case of static
+ data.
+
+- Moved image cleanup and masking code in new Clean.c and Mask.c
+ sources.
+
+- Corrected few typos in NXCollectImage code.
+
+nxcompext-1.3.2-2
+
+- Imported 1.4.0-1 changes from the 1.4.0 development branch.
+
+- Modified NXAllocColors to handle errors generated allocating
+ each requested color. A per-color result code is now returned
+ to the caller.
+
+- Code cleanup in Png.h and Png.c.
+
+nxcompext-1.3.2-1
+
+- Opened the 1.3.2 branch.
+
+nxcompext-1.3.1-2
+
+- Removed the underline characters and added a colon in the
+ title of this ChangeLog to fully comply with format used in
+ the release notices.
+
+nxcompext-1.3.1-1
+
+- Opened the 1.3.1 branch.
+
+nxcompext-1.3.0-18
+
+- Added the _NXLostSequenceHandler function to let NX agents
+ suppress the error message and modify the default Xlib
+ behaviour when out-of-order sequence numbers are received.
+ Pointer to function is assigned to _NXLostSequenceFunction
+ in XlibInt.c.
+
+- Original output buffer size in stock XFree86 is 2048. We try
+ to reduce context switches and help stream compression by
+ increasing the maximum size of the buffer 8192. _NXFlushSize
+ determines when the display buffer is actually flushed. It is
+ set by default to 4096 in XlibInt.c and set to 0 to use the
+ maximum available size at the time NXGetControlParameters()
+ is called.
+
+nxcompext-1.3.0-17
+
+- In handling of asynchronous GetProperty replies a warning
+ message was printed in session log when a null property was
+ stored in the state structure. This message is now printed
+ only if TEST is defined.
+
+nxcompext-1.3.0-16
+
+- Added asynchronous handling of GetProperty request and reply
+ by means of the NXCollectProperty and NXGetCollectedProperty
+ requests and the NXCollectPropertyNotify event.
+
+nxcompext-1.3.0-15
+
+- Added 4 new fields to the X_NXGetControlParameters reply.
+
+nxcompext-1.3.0-14
+
+- Added request X_NXFreeUnpack to free the resources allocated
+ by the remote proxy to unpack images for the given agent's
+ client
+
+nxcompext-1.3.0-13
+
+- Modified the following requests to carry the id of the
+ agent's client in the field resource:
+
+ - X_NXSetUnpackGeometry
+ - X_NXSetUnpackColormap
+ - X_NXSetUnpackAlpha
+ - X_NXPutPackedImage
+
+nxcompext-1.3.0-11
+
+- Modified the MIT-SHM initialization procedure to always send
+ all the 3 protocol requests also in the case of early failures.
+
+nxcompext-1.3.0-10
+
+- Added handling of X_NXSetUnpackAlpha request.
+
+- It has been made possible to send both X_NXSetUnpackColormap
+ and X_NXSetUnpackAlpha messages with 0 entries to temporarily
+ disable use of the colormap or the alpha channel and free the
+ resources allocated by the remote proxy.
+
+nxcompext-1.3.0-9
+
+- Solved a compatibility problem when mixing proxy versions
+ 1.2.2 and 1.3.0 due to the missing X_NXGetShmemParameters
+ request.
+
+nxcompext-1.3.0-7
+
+- Reduced the number of requests needed to setup the shared
+ segment at X server proxy from 4 to 3.
+
+- Small changes to the shared memory interface to support
+ path X agent to X client proxy.
+
+nxcompext-1.3.0-6
+
+- Implemented initial support for MIT-SHM extension in the
+ network path between the X server proxy and the real X
+ server.
+
+- Configure script now checks for the FreeBSD environment.
+
+- New configure script generated using autoconf-2.57-3.
+
+- Removed the XFree86 CCDEFINES from Makefile.in.
+
+nxcompext-1.3.0-5
+
+- Cosmetic changes.
+
+- Started to convert configure.in to the new layout adopted
+ for nxcomp.
+
+- Created file CHANGELOG.
+
+nxcompext-1.3.0-4
+
+- More fixes in image clean-up.
+
+nxcompext-1.3.0-3
+
+- Many fixes in image clean-up functions to handle differences
+ in endianess between client and X server.
+
+nxcompext-1.3.0-2
+
+- Modified configure.in to compile under Solaris.
+
+nxcompext-1.3.0-1
+
+- First 1.3.0 version based on nxcompext-1.2.2-12.
+
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcompext_README b/doc/_attic_/NoMachine_documentation_files/nxcompext_README
new file mode 100644
index 000000000..39648e76b
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcompext_README
@@ -0,0 +1,15 @@
+README
+------
+
+1. To compile:
+
+ > tar zxvf nxcompext-X.Y.Z-N.tar.gz
+ > cd nxcompext
+ > ./configure
+ > make
+
+ You'll have to run gmake under Solaris.
+
+2. The 'make install' target is not currently supported
+ in the Makefile, but it should be simple to fix.
+
diff --git a/doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG
new file mode 100644
index 000000000..3472a4afe
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxcompshad_CHANGELOG
@@ -0,0 +1,404 @@
+ChangeLog:
+
+nxcompshad-3.5.0-2
+
+- Fixed TR03G02189. Now key combinations involving the Shift keys
+ are recognized correctly.
+
+nxcompshad-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxcompshad-3.4.0-3.
+
+- Updated copyright to year 2011.
+
+nxcompshad-3.4.0-3
+
+- Updated copyright to year 2010.
+
+nxcompshad-3.4.0-2
+
+- Fixed TR08G02256. Now the Shadow session is shown correctly with
+ MIT-SHM extension disabled.
+
+- Improved updateShadowFrameBuffer() and ~Poller() functions.
+
+- Avoided memory leak.
+
+nxcompshad-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxcompshad-3.3.0-3.
+
+- Updated version number.
+
+- Updated copyright to year 2009.
+
+- Improved error messages logging in case of initialization failures.
+
+nxcompshad-3.3.0-3
+
+- Fixed TR01G02158. Keymap initialization could be incorrect because
+ of a type mismatch on 64 bit platforms.
+
+nxcompshad-3.3.0-2
+
+- Updated VERSION.
+
+nxcompshad-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxcompshad-3.2.0-3.
+
+nxcompshad-3.2.0-3
+
+- Improved keycode translation.
+
+nxcompshad-3.2.0-2
+
+- Solved a problem when sending fake modifier events.
+
+- Added support for keyboard events handling for the web player.
+
+- Changed keycodes translation for Solaris keyboard.
+
+- Corrected a problem for keycodes translation from Solaris keyboard.
+
+- Fixed TR02F02001. In shadow session the shadower's keyboard layout
+ could be wrong. Now keycodes are correctly translated if master and
+ shadow keyboards have different layouts.
+
+- Added NXShadowGetScreenSize() and NXShadowSetScreenSize() functions,
+ so that the shadow session can handle correctly the resize of the
+ master session window.
+
+- Solved a compilation problem on GCC 4.3.
+
+nxcompshad-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxcompshad-3.1.0-2.
+
+nxcompshad-3.1.0-2
+
+- Updated file VERSION to match the current release version.
+
+nxcompshad-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxcompshad-3.0.0-19.
+
+nxcompshad-3.0.0-19
+
+- Skip initialization of damage extension if it was already disabled.
+
+nxcompshad-3.0.0-18
+
+- The poller destructor checks if the damage extension is in use.
+
+- Small changes to the function getting the screen content in the case
+ damage is not in use.
+
+nxcompshad-3.0.0-17
+
+- Cleanup of some log messages.
+
+nxcompshad-3.0.0-16
+
+- Disabled some log message in the functions initializing the poller.
+
+nxcompshad-3.0.0-15
+
+- Before calling XTest functions, it is checked if the connection to
+ master X server has been initialized.
+
+nxcompshad-3.0.0-14
+
+- After the shm segment is created, its mode is changed and it is
+ marked for destroying. A check on the number of attaches is done.
+
+nxcompshad-3.0.0-13
+
+- Creating the shm segment even if the uid of master X server can't be
+ retrieved.
+
+- Fixed reallocation of update region.
+
+- Checking if the master X server provides XTest extension.
+
+nxcompshad-3.0.0-12
+
+- Fixed a compiler warning on AMD64 platform.
+
+- Changed configure script to add -fPIC option.
+
+- Fixed a mismatch in UpdateManager destructor.
+
+nxcompshad-3.0.0-11
+
+- Fixed the function setting the uid of shm segment.
+
+- Sync with the master X server before marking the shm segment to be
+ destroyed.
+
+nxcompshad-3.0.0-10
+
+- Setting the shm segments as readable only by the master X server
+ process.
+
+- Mark shm segments to be destroyed when the last process detach.
+
+- Enabled keycode translation in order to allow keyboards of different
+ models to work.
+
+nxcompshad-3.0.0-9
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Added file COPYING.
+
+- Changes to translate keycodes between different keyboard types. The
+ keycodes are translated through the keysym.
+
+- Changes to convert a Mode_switch key to ISO_Level3_Shift if it is
+ needed.
+
+nxcompshad-3.0.0-8
+
+- Added interface function NXShadowDisableShm disabling the use of
+ MIT-SHM extension.
+
+- Added interface function NXShadowDisableDamage disabling the use of
+ DAMAGE extension.
+
+- Added interface function NXShadowSetDisplayUid setting the uid of
+ shadowed X server
+
+- Changed the owner of shared memory segments to the uid of the sha-
+ dowed X server.
+
+- Fixed logWarning method.
+
+- Moved the code initializing the use of shared memory to shmInit
+ method of X11 Poller.
+
+nxcompshad-3.0.0-7
+
+- Removed the class qualifier in the declaration of destroyUpdate-
+ ManagerRegion().
+
+nxcompshad-3.0.0-6
+
+- Fixed build errors on 64 bit platforms.
+
+- Called XTestGrabControl to override possible grabs of the X server.
+
+nxcompshad-3.0.0-5
+
+- Added some stub members to the Poller class. These are intended to
+ handle keyboard state.
+
+- Changes in the default polling algorithm to disable the line pri-
+ ority persistence.
+
+nxcompshad-3.0.0-4
+
+- If a low layer handling of screen changes is available (DAMAGE in
+ case of X11), polling routine uses it and returns immediately.
+
+- Creating a Damage notify object if the extension is supported.
+
+- DamageNotify events are saved in the update region. After all avail-
+ able events have been handled, the content of screen is retrieved
+ by ShnGetImage requests.
+
+- XDamageSubtract and XSync are done before any event handling.
+
+- Damages are requested as raw rectangles.
+
+- Added Xdamage and Xrandr to required libraries.
+
+- Fixed a problem with some lines not refreshed in shadowing mode.
+
+nxcompshad-3.0.0-3
+
+- Added destroyUpdateManagerRegion() method to UpdateManager class.
+
+- Turned off some log messages.
+
+- Changed configure.in to remove warnings related to deprecated header
+ files and options.
+
+- Changed Makefile.in to remove autom4te.cache dir if the target is
+ 'distclean'.
+
+- Removed multi-word file names.
+
+nxcompshad-3.0.0-2
+
+- Changes to get the screen of original display by a ShmGetImage.
+
+- Exit the polling loop if more than 50 ms have elapsed.
+
+nxcompshad-3.0.0-1
+
+- Created nxcompshad based on nxshadow-3.0.0-7.
+
+nxshadow-3.0.0-7
+
+- Deleted files KeyCursorTmp.cpp, scancodes.h, constant.h.
+
+- Renamed NXshadow.h to Shadow.h.
+
+- Merged NXshadowEvent.h with Shadow.h.
+
+- Fixed configure.in, changed Makefile.in to build Xcompshad library,
+ rebuilt configure script.
+
+nxshadow-3.0.0-6
+
+- Implemented a callback mechanism to ask the caller program if screen
+ polling have to be suspended.
+
+nxshadow-3.0.0-5
+
+- Changes to comply with the library name.
+
+- Fixed a bug in CorePoller that could prevent the update of the last
+ line of a rectangle.
+
+nxshadow-3.0.0-4
+
+- Removed some parameters of the NXShadowAddUpdaterDisplay() function.
+
+nxshadow-3.0.0-3
+
+- Updated copyright notices to the current year.
+
+- Code cleanup in KeysCursorTmp.c file.
+
+nxshadow-3.0.0-2
+
+- If master agent uses shared memory extension, the GetImage is rea-
+ lized by XShmGetImage() function.
+
+- Added new parameters to NXShadowAddUpdaterDisplay() function, the
+ depth and bit mask color of the master display.
+
+nxshadow-3.0.0-1
+
+- Opened the nxshadow-3.0.0 branch based on the nxaccess-3.0.0-13.
+
+- Renamed NXaccess.h NXaccessEvent.h and RegionM.h files as NXshadow.h
+ NXshadowEvent.h and Regions.h.
+
+- Modified the Makefile.in file and configure scripts in order to
+ compile the component.
+
+nxaccess-3.0.0-13
+
+- Fixed X11Poller.cpp pre-processing.
+
+nxaccess-3.0.0-12
+
+- Fixed build problems on Solaris.
+
+nxaccess-3.0.0-11
+
+- Added NXShadowUpdateBuffer() function. This function creates the
+ buffer for the polling.
+
+- If the scaline fails, the polling will suspend for 50 ms.
+
+- Added some functions in order to access data member class.
+
+nxaccess-3.0.0-10
+
+- Used XTEST extension to make the shared display create input events.
+
+nxaccess-3.0.0-9
+
+- Added the mouse events.
+
+- Now, it's possible to connect to X server display or agent display,
+ the display's content is captured by GetImage and sent to another
+ display by PutImage.
+
+nxaccess-3.0.0-8
+
+- Added KeysCursorTmp.cpp file.
+
+- Solved a problem with the keys, when the window lost focus the Key-
+ Release events weren't propagated.
+
+nxaccess-3.0.0-7
+
+- Added functions in order to remove issues with some keys combina-
+ tion.
+
+nxaccess-3.0.0-6
+
+- Added functions to simulate keys Ctrl + Alt + Del in order to run
+ the Task Manager application.
+
+- Now nxaccess is able to manage all switches between desktops.
+
+nxaccess-3.0.0-5
+
+- Solved a problem with the cursor shape. After a while, the cursor
+ shape are no more updated.
+
+- Now the cursor is updated only when it changes its shape.
+
+- Removed a dirty lines after screen updates.
+
+- Removed the unused file Keyboard.cpp.
+
+- Added the colorCorrect() macro in NXaccess.h.
+
+- Removed the colorCorrect() function in Updater.cpp.
+
+nxaccess-3.0.0-4
+
+- Renamed some source files and functions conforming them to the name
+ of component.
+
+nxaccess-3.0.0-3
+
+- Removed the parameter of type Display in all methods of the class
+ Poller.
+
+- Print, Break and Pause keys are enabled.
+
+nxaccess-3.0.0-2
+
+- Modified the Makefile.in in order to avoid compiling the executive
+ file.
+
+- Removed the unused file Main.cpp.
+
+- The Windows keys are enabled.
+
+- Synchronized local and remote states of Num_Lock, Caps_Lock and
+ Scroll_Lock.
+
+- Updated the NoMachine copyright notices.
+
+nxaccess-3.0.0-1
+
+- Opened the 3.0.0 branch based on the nxmirror-2.0.0-3.
+
+nxmirror-2.0.0-3
+
+- Added the keyboard events for all layouts.
+
+- The mouse wheel button is enabled.
+
+nxmirror-2.0.0-2
+
+- Completed implementation of the keyboard events only for italian
+ layout.
+
+- Added the mouse events and shape cursor.
+
+nxmirror-2.0.0-1
+
+- Opened the 2.0.0 branch based on the 1.5.0-60.
+
+- Added CHANGELOG.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG b/doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG
new file mode 100644
index 000000000..e5dff2e4f
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxproxy_CHANGELOG
@@ -0,0 +1,216 @@
+ChangeLog:
+
+nxproxy-3.5.0-1
+
+- Opened the 3.5.0 branch based on nxproxy-3.4.0-2.
+
+- Updated copyright to year 2011.
+
+nxproxy-3.4.0-2
+
+- Updated copyright to year 2009.
+
+nxproxy-3.4.0-1
+
+- Opened the 3.4.0 branch based on nxproxy-3.3.0-2.
+
+- Changed version number.
+
+nxproxy-3.3.0-2
+
+- Updated VERSION.
+
+nxproxy-3.3.0-1
+
+- Opened the 3.3.0 branch based on nxproxy-3.2.0-1.
+
+nxproxy-3.2.0-1
+
+- Opened the 3.2.0 branch based on nxproxy-3.1.0-2.
+
+nxproxy-3.1.0-2
+
+- Updated version number.
+
+nxproxy-3.1.0-1
+
+- Opened the 3.1.0 branch based on nxproxy-3.0.0-4.
+
+nxproxy-3.0.0-4
+
+- Added file COPYING.
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+nxproxy-3.0.0-3
+
+- Updated the copyright notices to year 2007.
+
+nxproxy-3.0.0-2
+
+- Updated the file VERSION.
+
+nxproxy-3.0.0-1
+
+- Opened the 3.0.0 branch based on nxproxy-2.0.0-2.
+
+nxproxy-2.0.0-2
+
+- Updated copyright to year 2006.
+
+nxproxy-2.0.0-1
+
+- Opened the 2.0.0 branch based on nxproxy-1.5.0-10.
+
+nxproxy-1.5.0-10
+
+- Added the JPEG, PNG and Z libraries to the linker when compiling
+ on Cygwin. GCC 3.3.x requires that these libraries are explicitly
+ given while this is not required since GCC 3.4.x.
+
+- Created a new configure using autoconf 2.59.
+
+nxproxy-1.5.0-9
+
+- Removed provision for dynamically loading a different version of
+ the nxcomp library.
+
+nxproxy-1.5.0-8
+
+- Updated to reflect the new naming of the NX transport interfaces.
+
+nxproxy-1.5.0-7
+
+- Modified the Makefile.in to remove the *.out.* files generated by
+ Valgrind when running a 'make clean'.
+
+- Modified the README files and removed files that were outdated.
+
+nxproxy-1.5.0-6
+
+- Removed the NX_FORCE_IDLE_PROXY stubs.
+
+nxproxy-1.5.0-5
+
+- This version has NX_FORCE_IDLE_PROXY undefined, so it should work
+ in a way that is compatible with the old nxproxy.
+
+nxproxy-1.5.0-4
+
+- This software is crafted by default to test the new integration
+ between nxcomp and nxssh. The process will stay idle and will
+ let nxssh create the proxy. Note that the session log will go to
+ 'sshlog', not to 'session'. This will have to be fixed in nxcomp
+ in future versions.
+
+- Removed the references to the "bind" functionality that is not
+ used in the current software.
+
+nxproxy-1.5.0-3
+
+- Added a NX_FORCE_IDLE_PROXY. If set, nxproxy will stay idle and
+ will not try to create a nxcomp proxy. This is used for testing
+ the new in-process nxcomp functionalities with the development
+ versions of nxclient and nxssh software.
+
+nxproxy-1.5.0-2
+
+- Small changes to this file.
+
+nxproxy-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nxproxy-1.4.1-1
+
+- Opened the 1.4.1 branch.
+
+nxproxy-1.4.0-3
+
+- We were lucky. We found a machine where nxproxy failed exactly
+ in the same way described by multiple users in their reports.
+ The error was the same ('dlopen: win32 line 126') and neither
+ rebasing the Cygwin DLLs or removing all the other Cygwin li-
+ braries worked. So the problem had necessarily to be in a bug-
+ gy Cygwin dlopen() implementation. To solve this I had to make
+ changes to the nxproxy code on Windows, so it links to nxcomp
+ at compile time in the way specified below. As far as I can
+ tell, any other way fails. This seems to be another Cygwin bug:
+ the linker says that everything is OK but then the executable
+ can't be run. Both the Cygwin's bash and the command.com say
+ 'Permission denied'.
+
+ LIBS = -L../nxcomp -lstdc++ -Wl,-e,_mainCRTStartup -lXcomp \
+ -lcygipc -static -lpng -static -ljpeg -lz
+
+nxproxy-1.4.0-2
+
+- Added a Binder class invoked when calling proxy with -B option.
+ It would serve as a replacement of the modifications I'm doing
+ in nxssh. The class is just a framework and the implementation
+ is unfinished.
+
+- Solved a potential problem in Main.c with NXExit() being called
+ after the dlclose(). This was unlikely to happen as proxy never
+ returns.
+
+nxproxy-1.4.0-1
+
+- Opened the 1.4.0 branch.
+
+nxproxy-1.3.2-1
+
+- Opened the 1.3.2 branch.
+
+nxproxy-1.3.1-2
+
+- Removed the underline characters and added a colon in the
+ title of this ChangeLog to fully comply with format used in
+ the release notices.
+
+nxproxy-1.3.1-1
+
+- Opened the 1.3.1 branch.
+
+nxproxy-1.3.0-7
+
+- Added a check on the OS version when running on MacOS/X.
+ Versions 10.2 and 10.3 differ in the way names are mangled.
+
+- Fixed error detection on dlsym(). The previous code was not
+ able to correctly identify missing symbols.
+
+nxproxy-1.3.0-6
+
+- Modified configure.in to compile under FreeBSD.
+
+nxproxy-1.3.0-5
+
+- Fixed a (further) compilation problem under Cygwin.
+
+nxproxy-1.3.0-4
+
+- New nxproxy is able to load libXcomp by dlopen() under
+ Cygwin. This simplifies both code in Main.c and the
+ configure.in script.
+
+- Changed configure.in to not link with -mwindows under
+ Cygwin. Linking with -mwindows prevented stderr to be
+ correctly output when running nxproxy on a console.
+
+nxproxy-1.3.0-3
+
+- Changed configure.in to first check for nx-X11 includes
+ and libraries. Added "/usr/openwin/bin/makedepend" to
+ path searched for the executable.
+
+nxproxy-1.3.0-2
+
+- Small cleanup in configure.in. A new configure script has
+ been generated using autoconf-2.57-3.
+
+nxproxy-1.3.0-1
+
+- Updated internal version, so this release tries to load
+ libXcomp version 1.3.0.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxproxy_README b/doc/_attic_/NoMachine_documentation_files/nxproxy_README
new file mode 100644
index 000000000..8f95d9f3f
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxproxy_README
@@ -0,0 +1,14 @@
+README
+------
+
+1. To compile:
+
+ > tar zxvf nxproxy-X.Y.Z-N.tar.gz
+ > cd nxproxy
+ > ./configure
+ > make
+
+ You'll have to run gmake under Solaris.
+
+2. The 'make install' target is not currently supported
+ in the Makefile, but it should be simple to fix.
diff --git a/doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ b/doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ
new file mode 100644
index 000000000..7a8a8a958
--- /dev/null
+++ b/doc/_attic_/NoMachine_documentation_files/nxproxy_README-IPAQ
@@ -0,0 +1,27 @@
+README-IPAQ
+-----------
+
+1. Install a cross-compiler for ARM. You can find detailed
+ informations at:
+
+ http://www.ailis.de/~k/knowledge/crosscompiling/toolchain.php
+
+ There are also binaries needed to install the cross-compiler.
+
+2. Configure and compile nxproxy using:
+
+ $ ./configure --with-ipaq
+ $ make
+
+ After compilation type:
+
+ $ arm-linux-strip nxproxy
+
+3. You need libXcomp.so to run nxproxy. Be sure you include the
+ library in your LD_LIBRARY_PATH. For example, you can run:
+
+ > export LD_LIBRARY_PATH $HOME/NX/nxcomp
+ > nxproxy -S localhost:8
+
+4. The package nxscripts contains many examples of NX usage that
+ you can modify to suit your needs.
diff --git a/doc/_attic_/XOrg69_documentation_files/BUILD b/doc/_attic_/XOrg69_documentation_files/BUILD
new file mode 100644
index 000000000..b4f0b3dcf
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/BUILD
@@ -0,0 +1,324 @@
+ Building the X Window System from the X.Org Monolithic Source Distribution
+
+ Jim Gettys and Keith Packard (for X11R6.9)
+ David Dawes and Matthieu Herrb (for XFree86 4.4 RC2)
+
+ 21 December 2005
+
+ Abstract
+
+ This document describes how to build the X Window System from the
+ X.Org monolithic source distribution and is designed to be used in
+ conjunction with the operating system (OS) specific README files.
+
+ NOTE: Refer to the appropriate OS-specific README file in xc/pro-
+ grams/Xserver/hw/xfree86/doc before attempting to build the X dis-
+ tribution. These files often contain additional information that
+ you need to successfully build for your OS.
+
+We highly recommend using gcc to build the X distribution, but X also gener-
+ally builds with the native compiler for each OS platform; The build tools
+known to be required include: gcc, make, C library development package, bi-
+son, flex, ncurses (development package), and Perl.
+
+The monolithic tree also includes copies of some packages maintained outside
+the X.Org project for convenience in building on machines that do not already
+have them installed. These include FreeType 2, fontconfig, expat, xterm,
+and zlib. For most uses however, it is recommended that you install the
+latest version directly from the main distribution site, or use the packages
+provided in your operating system, as they are more likely to be up to date
+with the latest bug fixes and security patches. Depending on your platform,
+use of the bundled versions may be enabled or disabled by default, check the
+Imake configuration files for your platform in xc/config/cf to find out. To
+override the defaults for your platform or to set the path to the installa-
+tion location, see the instructions below on configuring the source via
+xorgsite.def and host.def.
+
+X11R6.9 depends on the following external packages:
+
+ +-------------+----------------+-----------+
+ |Package Name | Version | Included? |
+ +-------------+----------------+-----------+
+ |expat | 1.95.8 | Yes |
+ |fontconfig | 2.2 or newer | Yes |
+ |FreeType | 2.1.8 or 2.1.9 | Yes |
+ |libdrm | 2.0 | Yes |
+ |libpng | 1.2.8 | No |
+ |Mesa | 6.4.1 | Yes |
+ |xterm | Patch 207 | Yes |
+ |zlib | 1.1.4 or 1.2.3 | Yes |
+ +-------------+----------------+-----------+
+
+You can find more information and/or the original sources for these packages
+at their project websites at these URL's:
+
+ +-------------+-------------------------------------------+
+ |Package Name | Website |
+ +-------------+-------------------------------------------+
+ |expat | http://expat.sourceforge.net/ |
+ |fontconfig | http://www.fontconfig.org/ |
+ |FreeType | http://www.freetype.org/ |
+ |libdrm | http://dri.freedesktop.org/libdrm/ |
+ |libpng | http://www.libpng.com/pub/png/libpng.html |
+ |Mesa | http://www.mesa3d.org/ |
+ |xterm | http://dickey.his.com/xterm/xterm.html |
+ |zlib | http://www.zlib.net/ |
+ +-------------+-------------------------------------------+
+
+1. How to get the X11R6.9 distribution source
+
+One way of getting the X11R6.9 source is to obtain it directly from the X.Org
+CVS repository. There are several ways of doing that, and they are described
+in the CVS section of our wiki <URL:http://wiki.x.org/> The CVS tag for this
+release is "XORG-6_9_0". The tag for the maintenance branch for this
+release is "XORG-6_9-branch".
+
+Another method of getting the X11R6.9 source is to either download the 6.9.0
+source tarballs sites from freedesktop.org using either ftp or http. The
+procedure for this is as follows:
+
+ o The X11R6.9 source is contained in the files:
+
+ X11R6.9.0-src1.tar.gz
+
+ X11R6.9.0-src2.tar.gz
+
+ X11R6.9.0-src3.tar.gz
+
+ X11R6.9.0-src4.tar.gz
+
+ X11R6.9.0-src5.tar.gz
+
+ X11R6.9.0-src6.tar.gz
+
+ X11R6.9.0-src7.tar.gz
+
+ These can be found at ftp://ftp.freedesk-
+ top.org/xorg/releases/X11R6.9/src/ or http://xorg.freedesk-
+ top.org/releases/X11R6.9/src/ and similar locations on X.Org mirror
+ sites. X11R6.9.0-src4.tgz and X11R6.9.0-src5.tar.gz contains the fonts.
+ X11R6.9.0-src6.tar.gz contains the documentation source.
+ X11R6.9.0-src7.tar.gz contains the hardcopy documentation.
+ X11R6.9.0-src1.tar.gz, X11R6.9.0-src2.tar.gz and X11R6.9.0-src3.tar.gz
+ contains everything else. If you don't need the docs or fonts you can
+ get by with only X11R6.9.0-src1.tar.gz, X11R6.9.0-src2.tar.gz and
+ X11R6.9.0-src3.tar.gz.
+
+ o Extract each of these files by running the following from a directory on
+ a filesystem containing enough space (the full source requires around
+ 305MB, and a similar amount is required in addition to this for the com-
+ piled binaries):
+
+ gzip -d < X11R6.9.0-src1.tar.gz | tar vxf -
+
+ gzip -d < X11R6.9.0-src2.tar.gz | tar vxf -
+
+ gzip -d < X11R6.9.0-src3.tar.gz | tar vxf -
+
+ gzip -d < X11R6.9.0-src4.tar.gz | tar vxf -
+
+ gzip -d < X11R6.9.0-src5.tar.gz | tar vxf -
+
+ gzip -d < X11R6.9.0-src6.tar.gz | tar vxf -
+
+ gzip -d < X11R6.9.0-src7.tar.gz | tar vxf -
+
+All methods will produce one main source directory called xc.
+
+2. Configuring the source before building
+
+In most cases it shouldn't be necessary to configure anything before build-
+ing.
+
+If you do want to make configuration changes, it is recommended that you
+start by going to the xc/config/cf directory, and copying the file
+xorgsite.def to host.def. Then read through the host.def file (which is
+heavily commented), and set your configuration parameters. Usually you can
+find the default settings by checking the .cf file(s) relevant to your OS.
+
+A good rule to follow is only to change things that you understand as it's
+easy to create build problems by changing the default configuration. Many of
+the configuration parameters are described in the xc/config/cf/README.
+
+If you are using just the X11R6.9.0-src1.tar.gz, X11R6.9.0-src2.tar.gz and
+X11R6.9.0-src3.tar.gz parts of the source dist, you will need to define
+BuildFonts to NO.
+
+3. Using a shadow directory of symbolic links for the build
+
+A recommended practice is to use a shadow directory of symbolic links to do
+the build of X11R6.9 as this allows you to keep the source directory unmodi-
+fied during the build. It has the following benefits:
+
+ o When you are using CVS to maintain your source tree, the update process
+ is not disturbed by foreign files not under CVS's control.
+
+ o It is possible to build X11R6.9 for several different Operating System
+ or architectures from the same sources, shared by read-only NFS mounts.
+
+ o It is possible to build X11R6.9 with different configuration options, by
+ putting a real copy of the host.def file in each build tree and by cus-
+ tomizing it separately in each build tree.
+
+To make a shadow directory of symbolic links, use the following steps:
+
+ o create the directory at the top of the build tree. It is often created
+ at the same level that the xc directory, but this is not mandatory.
+
+ cd the directory containing the xcdirectory
+
+ mkdir build
+
+ o use the "lndir" command to make the shadow tree:
+
+ lndir ../xc
+
+ Note that you can refer to the xc directory with an absolute path if
+ needed.
+
+ See the lndir(1) manual page for details.
+
+If lndir is not already installed on your system, you can build it manually
+from the X11R6.9 sources by running the following commands:
+
+ cd xc/config/util
+
+ make -f Makefile.ini lndir
+
+ cp lndir some directory in your PATH
+
+Occasionally there may be stale links in the build tree, like when files in
+the source tree are removed or renamed. These can be cleaned up by running
+the "cleanlinks" script from the build directory (see the cleanlinks(1) man-
+ual page). Rarely there will be changes that will require the build tree to
+be re-created from scratch. A symptom of this can be mysterious build prob-
+lems. The best solution for this is to remove the build tree, and then re-
+create it using the steps outlined above.
+
+4. Building and installing the distribution
+
+Before building the distribution, read through the OS-specific README file in
+xc/programs/Xserver/hw/xfree86/doc that is relevant to you. Once you have
+addressed the OS-specific details, go your build directory (either the xc
+directory or the shadow tree created before) and run "make World" with the
+BOOTSTRAPCFLAGS set as described in the OS-specific README (if necessary, but
+most systems supported by X11R6.9 don't need BOOTSTRAPCFLAGS). It is advis-
+able to redirect stdout and stderr to World.log so that you can track down
+problems that might occur during the build.
+
+With Bourne-like shells (Bash, the Korn shell, zsh, etc.) use a command like:
+
+ make World > World.log 2>&1
+
+Witch C-shell variants (csh, tcsh, etc), use:
+
+ make World >& World.log
+
+You can follow the progress of the build by running:
+
+ tail -f World.log
+
+ in a terminal.
+
+When the build is finished, you should check the World.Log file to see if
+there were any problems. If there weren't any then you can install the bina-
+ries. By default the "make World" process will exit at the first error. To
+restart the build process after correcting the problems, just run 'make'. If
+Imakefiles or part of the build configuration was changed as part of correct-
+ing the problem, either re-run "make World", or run "make Everything".
+
+If you would prefer "make World" to ignore errors and build as much as possi-
+ble, run it in the following way instead of the way described above:
+
+for Bourne-like shells:
+
+ make WORLDOPTS=-k World > World.log 2>&1
+
+for C-shell variants:
+
+ make WORLDOPTS=-k World >& World.log
+
+To do the install, run "make install" and "make install.man". Make sure you
+have enough space in /usr/X11R6 for the install to succeed. If you want to
+install on a filesystem other than /usr, make a symbolic link to /usr/X11R6
+before installing. To install the tree into a different directory than
+/usr/X11R6 you can specify DESTDIR:
+
+ make install DESTDIR=<install_target_dir>
+
+ make install.man DESTDIR=<install_target_dir>
+
+Cross compiling is supported if the appropriate config files for your target
+platforms exist. You must have the compiler toolchain installed for your tar-
+get platform and the C-compiler must know where those tools exist. To inform
+the build system where your cross compiler is located set the make variable
+CROSSCOMPILEDIR to the directory where the toolchain binaries are installed.
+
+ make World CROSSCOMPILEDIR="<cross compiler dir>";
+
+.
+
+5. Reconfiguring the server (source distribution)
+
+To build a different set of servers or servers with a different set of
+drivers installed:
+
+ 1. Make sure the source for any new drivers is in the correct place (e.g.,
+ driver source should be in a subdirectory of xc/pro-
+ grams/Xserver/hw/xfree86/drivers).
+
+ 2. Change the settings of the server defines in host.def to specify which
+ servers you wish to build. Also, change the driver lists to suit your
+ needs.
+
+ 3. From xc/programs/Xserver, run:
+
+ make Makefile
+ make Makefiles
+ make includes
+ make depend
+ make
+
+6. Other useful make targets
+
+There are some other useful targets defined in the top level Makefile of
+X11R6.9:
+
+ o Everything after a make World, make Everything does everything a make
+ World does, except the cleaning of the tree. It is a way to quickly
+ rebuild the tree after a source patch, but it is not 100% bullet proof.
+ There are cases were it is better to force a full build by using make
+ World.
+
+ o clean does a partial cleaning of the source tree. Removes object files
+ and generated manual pages, but leaves the Makefiles and the generated
+ dependencies files in place. After a make clean you need to re-run
+
+ make includes
+ make depend
+ make
+
+ to rebuild the X11R6.9.
+
+ o distclean does a full cleaning of the source tree, removing all gener-
+ ated files. After a make distclean, make World is the only option to
+ rebuild X11R6.9.
+
+ o includes generates all generated header files and in-tree symbolic links
+ needed by the build. These files are removed by a make clean.
+
+ o depend recomputes the dependencies for the various targets in all Make-
+ files. Depending on the operating system, the dependencies are stored in
+ the Makefile, or as a separate file, called .depend. This target needs
+ the generated include files produced by make includes.
+
+ o VerifyOS displays the detected operating system version. If the numbers
+ shown do not match your system, you probably need to set them manually
+ in host.def and report the problem to Xorg via our bug database at X.Org
+ Bug Database <URL:https://bugs.freedesktop.org/enter_bug.cgi?prod-
+ uct=xorg> or via email at <xorg@lists.freedesktop.org>.
+
+ Generated from Id: BUILD.sgml,v 1.10 alanc Exp $
+
+
+$XdotOrg: xc/BUILD,v 1.7 2005/12/21 05:39:04 kem Exp $
diff --git a/doc/_attic_/XOrg69_documentation_files/ChangeLog.X.org b/doc/_attic_/XOrg69_documentation_files/ChangeLog.X.org
new file mode 100644
index 000000000..5c49bba13
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/ChangeLog.X.org
@@ -0,0 +1,20262 @@
+2005-12-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/xorgversion.def:
+ Version 6.9!
+
+2005-12-21 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * BUILD:
+ * README:
+ * RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/BUILD:
+ * programs/Xserver/hw/xfree86/doc/DESIGN:
+ * programs/Xserver/hw/xfree86/doc/Install:
+ * programs/Xserver/hw/xfree86/doc/LICENSE:
+ * programs/Xserver/hw/xfree86/doc/OS2.Notes:
+ * programs/Xserver/hw/xfree86/doc/README:
+ * programs/Xserver/hw/xfree86/doc/README.DECtga:
+ * programs/Xserver/hw/xfree86/doc/README.Darwin:
+ * programs/Xserver/hw/xfree86/doc/README.I128:
+ * programs/Xserver/hw/xfree86/doc/README.LynxOS:
+ * programs/Xserver/hw/xfree86/doc/README.NetBSD:
+ * programs/Xserver/hw/xfree86/doc/README.OpenBSD:
+ * programs/Xserver/hw/xfree86/doc/README.SCO:
+ * programs/Xserver/hw/xfree86/doc/README.SiS:
+ * programs/Xserver/hw/xfree86/doc/README.Solaris:
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Config:
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Enhancing:
+ * programs/Xserver/hw/xfree86/doc/README.apm:
+ * programs/Xserver/hw/xfree86/doc/README.ati:
+ * programs/Xserver/hw/xfree86/doc/README.chips:
+ * programs/Xserver/hw/xfree86/doc/README.dps:
+ * programs/Xserver/hw/xfree86/doc/README.fonts:
+ * programs/Xserver/hw/xfree86/doc/README.i740:
+ * programs/Xserver/hw/xfree86/doc/README.i810:
+ * programs/Xserver/hw/xfree86/doc/README.mouse:
+ * programs/Xserver/hw/xfree86/doc/README.newport:
+ * programs/Xserver/hw/xfree86/doc/README.r128:
+ * programs/Xserver/hw/xfree86/doc/README.rendition:
+ * programs/Xserver/hw/xfree86/doc/README.s3virge:
+ * programs/Xserver/hw/xfree86/doc/RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/Versions:
+ * programs/xkbcomp/README.config:
+ * programs/xkbcomp/README.enhancing:
+ Update formatted docs.
+
+2005-12-21 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ Updated contributors list and copyright holders.
+
+2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/index.pre:
+ Fix doc and index titles for both X11R6.9 and X11R7.
+
+2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ Additional RELNOTES updates.
+
+2005-12-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * LABEL:
+ Add copyright holders listed in changes committed since 6.8.2.
+
+2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ Update RELNOTES.sgml for X11R6.9/X11R7.0 release (Daniel Stone,
+ Kevin Martin).
+
+2005-12-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Bugzilla #2059 <https://bugs.freedesktop.org/show_bug.cgi?id=2059>
+ Bugzilla #2060 <https://bugs.freedesktop.org/show_bug.cgi?id=2060>
+ Update build instructions for 6.9 and try to answer questions noted
+ in bug reports. List included/required external software.
+
+2005-12-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * extras/Mesa/src/mesa/swrast/s_tritemp.h:
+ Fix to allow building with pre-C99 compilers (Kean Johnston)
+
+ * config/cf/sco5.cf:
+ * config/cf/usl.cf:
+ * lib/misc/snprintf.c:
+ * lib/misc/snprintf.h:
+ * programs/Xserver/hw/xfree86/loader/Imakefile:
+ SCO port fixups (Kean Johnston)
+
+ * lib/GL/mesa/array_cache/Imakefile:
+ * lib/GL/mesa/main/Imakefile:
+ * lib/GL/mesa/math/Imakefile:
+ * lib/GL/mesa/shader/Imakefile:
+ * lib/GL/mesa/shader/grammar/Imakefile:
+ * lib/GL/mesa/shader/slang/Imakefile:
+ * lib/GL/mesa/shader/slang/library/Imakefile:
+ * lib/GL/mesa/swrast/Imakefile:
+ * lib/GL/mesa/swrast_setup/Imakefile:
+ * lib/GL/mesa/tnl/Imakefile:
+ * lib/GL/mesa/tnl_dd/Imakefile:
+ * lib/GL/mesa/x86/Imakefile:
+ Bugzilla #1709 <https://bugs.freedesktop.org/show_bug.cgi?id=1709>
+ Patch #3848 <https://bugs.freedesktop.org/attachment.cgi?id=3848>
+ -DIN_DRI_DRIVER needed when building Mesa (Sérgio M. B.)
+
+ * programs/Xserver/fb/fbpict.c:
+ Regression in Render extension: compositing an 8bpp picture on another
+ 8bpp picture with PictOpSrc produces no output (Fredrik Höglund)
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ Bugzilla #5359 <https://bugs.freedesktop.org/show_bug.cgi?id=5359>
+ Patch #4113 <https://bugs.freedesktop.org/attachment.cgi?id=4113>
+ Segmentation fault when starting Xorg (Mark Kettenis)
+
+2005-12-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/general/Standards.man:
+ * programs/xman/version.h:
+ Version bumps from 6.8 to 6.9
+
+2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * doc/hardcopy/BDF/bdf.PS.gz:
+ * doc/hardcopy/CTEXT/ctext.PS.gz:
+ * doc/hardcopy/FSProtocol/fsproto.PS.gz:
+ * doc/hardcopy/ICCCM/icccm.PS.gz:
+ * doc/hardcopy/ICCCM/icccm.idx.PS.gz:
+ * doc/hardcopy/ICE/ICElib.PS.gz:
+ * doc/hardcopy/ICE/ice.PS.gz:
+ * doc/hardcopy/SM/SMlib.PS.gz:
+ * doc/hardcopy/SM/xsmp.PS.gz:
+ * doc/hardcopy/X11/xlib.PS.gz:
+ * doc/hardcopy/X11/xlib.idx.PS.gz:
+ * doc/hardcopy/XDMCP/xdmcp.PS.gz:
+ * doc/hardcopy/XIM/xim.PS.gz:
+ * doc/hardcopy/XLFD/xlfd.PS.gz:
+ * doc/hardcopy/XProtocol/proto.PS.gz:
+ * doc/hardcopy/XProtocol/proto.idx.PS.gz:
+ * doc/hardcopy/Xaw/widg.idx.PS.gz:
+ * doc/hardcopy/Xaw/widgets.PS.gz:
+ * doc/hardcopy/Xext/DPMS.PS.gz:
+ * doc/hardcopy/Xext/DPMSLib.PS.gz:
+ * doc/hardcopy/Xext/bigreq.PS.gz:
+ * doc/hardcopy/Xext/dbelib.PS.gz:
+ * doc/hardcopy/Xext/evi.PS.gz:
+ * doc/hardcopy/Xext/record.PS.gz:
+ * doc/hardcopy/Xext/recordlib.PS.gz:
+ * doc/hardcopy/Xext/security.PS.gz:
+ * doc/hardcopy/Xext/shape.PS.gz:
+ * doc/hardcopy/Xext/shapelib.PS.gz:
+ * doc/hardcopy/Xext/sync.PS.gz:
+ * doc/hardcopy/Xext/synclib.PS.gz:
+ * doc/hardcopy/Xext/tog-cup.PS.gz:
+ * doc/hardcopy/Xext/xc-misc.PS.gz:
+ * doc/hardcopy/Xi/lib.PS.gz:
+ * doc/hardcopy/Xi/port.PS.gz:
+ * doc/hardcopy/Xi/proto.PS.gz:
+ * doc/hardcopy/Xmu/xmu.PS.gz:
+ * doc/hardcopy/Xt/intr.idx.PS.gz:
+ * doc/hardcopy/Xt/intrinsics.PS.gz:
+ * doc/hardcopy/i18n/Framework.PS.gz:
+ * doc/hardcopy/i18n/LocaleDB.PS.gz:
+ * doc/hardcopy/i18n/Trans.PS.gz:
+ Update hardcopy specs for 6.9/7.0 release.
+
+2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * doc/specs/BDF/bdf.ms:
+ * doc/specs/CTEXT/ctext.tbl.ms:
+ * doc/specs/FSProtocol/protocol.ms:
+ * doc/specs/ICCCM/icccm.ms:
+ * doc/specs/ICCCM/indexmacros.t:
+ * doc/specs/ICE/ICElib.ms:
+ * doc/specs/ICE/ice.ms:
+ * doc/specs/SM/SMlib.ms:
+ * doc/specs/SM/xsmp.ms:
+ * doc/specs/X11/CH01:
+ * doc/specs/X11/abstract.t:
+ * doc/specs/X11/indexmacros.t:
+ * doc/specs/XDMCP/xdmcp.ms:
+ * doc/specs/XIM/xim.ms:
+ * doc/specs/XLFD/xlfd.tbl.ms:
+ * doc/specs/XProtocol/X11.protocol:
+ * doc/specs/XProtocol/indexmacros.t:
+ * doc/specs/Xaw/CH1:
+ * doc/specs/Xaw/TPage_Credits:
+ * doc/specs/Xaw/widg.idxmac.t:
+ * doc/specs/Xext/DPMS.ms:
+ * doc/specs/Xext/DPMSLib.ms:
+ * doc/specs/Xext/bigreq.ms:
+ * doc/specs/Xext/evi.ms:
+ * doc/specs/Xext/record.ms:
+ * doc/specs/Xext/recordlib.ms:
+ * doc/specs/Xext/security.tex:
+ * doc/specs/Xext/shape.ms:
+ * doc/specs/Xext/shapelib.ms:
+ * doc/specs/Xext/sync.tex:
+ * doc/specs/Xext/synclib.tex:
+ * doc/specs/Xext/tog-cup.ms:
+ * doc/specs/Xext/xc-misc.ms:
+ * doc/specs/Xi/library.ms:
+ * doc/specs/Xi/porting.ms:
+ * doc/specs/Xi/protocol.ms:
+ * doc/specs/Xmu/Xmu.ms:
+ * doc/specs/Xt/strings.mit:
+ * doc/specs/i18n/Framework.ms:
+ * doc/specs/i18n/LocaleDB.ms:
+ * doc/specs/i18n/Trans.ms:
+ Update specs for 6.9/7.0 release.
+
+2005-12-19 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/xorg.conf.man:
+ Bug #5116: Refer DRI section details to dri.fd.o.
+
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Bug #2571: Fix cross-compile instructions (Alexander Gottwald)
+
+2005-12-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/doc/CODING:
+ * programs/Xserver/hw/xfree86/doc/exa-driver.txt:
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/Install.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/OS2Notes.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/README.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/Solaris.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/Status.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/XKB-Config.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/ati.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/chips.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent:
+ * programs/Xserver/hw/xfree86/doc/sgml/dps.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810.man:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.man:
+ * programs/Xserver/hw/xfree86/drivers/v4l/v4l.man:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.man:
+ * programs/Xserver/hw/xfree86/getconfig/cfg.man:
+ * programs/Xserver/hw/xfree86/getconfig/getconfig.man:
+ * programs/Xserver/hw/xfree86/input/aiptek/aiptek.man:
+ * programs/Xserver/hw/xfree86/input/citron/citron.man:
+ * programs/Xserver/hw/xfree86/input/fpit/fpit.man:
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.man:
+ * programs/Xserver/hw/xfree86/input/keyboard/keyboard.man:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.man:
+ * programs/Xserver/hw/xfree86/input/ur98/ur98.man:
+ * programs/Xserver/hw/xfree86/XF86Conf.man:
+ Typo fixes, mailing list & url updates, and other changes
+ to prepare for X11R6.9 & 7.0 releases.
+
+2005-12-19 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/README.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent:
+ Update README, RELNOTES and defs.ent.
+
+2005-12-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128.man:
+ Bugzilla #5238 <https://bugs.freedesktop.org/show_bug.cgi?id=5238>
+ Patch #3978 <https://bugs.freedesktop.org/attachment.cgi?id=3978>
+ r128 man page dualhead note update (Alex Deucher)
+
+2005-12-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/xorgversion.def:
+ Version bump: 6.8.99.904 (aka 6.9 RC4)
+
+2005-12-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/etc/pci.ids:
+ * programs/Xserver/hw/xfree86/scanpci/xf86PciStdIds.h:
+ Update to 2005-12-14 snapshot from pciids.sf.net
+
+2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_version.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_driver.c:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ Bump driver version numbers for final X11R6.9 release candidate.
+
+2005-12-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * Makefile:
+ * LABEL:
+ * config/cf/X11.tmpl:
+ * config/util/makedef.cmd:
+ Update release name to 6.9 in preparation for upcoming 6.9 release.
+
+ * doc/man/general/X.man:
+ * doc/man/general/XOrgFoundation.man:
+ Correct spelling of X.Org Foundation name. Updates for 6.9 release.
+
+2005-12-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xterm/88colres.pl:
+ * programs/xterm/INSTALL:
+ * programs/xterm/Imakefile:
+ * programs/xterm/MANIFEST:
+ * programs/xterm/Makefile.in:
+ * programs/xterm/Tekproc.c:
+ * programs/xterm/UXTerm.ad:
+ * programs/xterm/VTPrsTbl.c:
+ * programs/xterm/VTparse.h:
+ * programs/xterm/XTerm-col.ad:
+ * programs/xterm/XTerm.ad:
+ * programs/xterm/aclocal.m4:
+ * programs/xterm/button.c:
+ * programs/xterm/charproc.c:
+ * programs/xterm/config.guess:
+ * programs/xterm/config.sub:
+ * programs/xterm/configure:
+ * programs/xterm/configure.in:
+ * programs/xterm/ctlseqs.ms:
+ * programs/xterm/data.c:
+ * programs/xterm/data.h:
+ * programs/xterm/fontutils.c:
+ * programs/xterm/input.c:
+ * programs/xterm/install.sh:
+ * programs/xterm/main.c:
+ * programs/xterm/menu.c:
+ * programs/xterm/menu.h:
+ * programs/xterm/misc.c:
+ * programs/xterm/os2main.c:
+ * programs/xterm/ptyx.h:
+ * programs/xterm/resize.c:
+ * programs/xterm/screen.c:
+ * programs/xterm/scrollbar.c:
+ * programs/xterm/sinstall.sh:
+ * programs/xterm/termcap:
+ * programs/xterm/terminfo:
+ * programs/xterm/trace.c:
+ * programs/xterm/trace.h:
+ * programs/xterm/util.c:
+ * programs/xterm/version.h:
+ * programs/xterm/xterm.h:
+ * programs/xterm/xterm.log.html:
+ * programs/xterm/xterm.man:
+ * programs/xterm/xterm_io.h:
+ * programs/xterm/xtermcfg.hin:
+ * programs/xterm/vttests/tcapquery.pl:
+ Update xterm to patch 207 from http://dickey.his.com/xterm/xterm.html
+
+2005-12-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/config/Imakefile:
+ Need to include $(XPM_DEFINES) when cpp'ing xdm-config to match
+ settings used in modular build.
+
+2005-12-14 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ Bug #1760: Fix ati wrapper multihead to be dlloader friendly.
+
+ * programs/Xserver/hw/xfree86/common/xf86Globals.c:
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ * programs/Xserver/hw/xfree86/common/xf86Priv.h:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c:
+ Bug #4718: Command line flag to disable ACPI.
+
+2005-12-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xft/xft.pc.in:
+ * lib/Xevie/xevie.pc.in:
+ Make sure .pc files installed by monolith build don't reference
+ .pc files only installed by the modular release (like xproto & xext).
+
+2005-12-12 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ (MouseCommonOptions), (MouseDoPostEvent):
+ Bug #1752: When emulating 3 buttons in "auto" mode, timeout
+ immediately when a mouse movement is detected (Egbert Eich,
+ Kean Johnston, Kevin Martin).
+
+2005-12-11 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/config/xdm-conf.cpp:
+ Bugzilla #5055 <https://bugs.freedesktop.org/show_bug.cgi?id=5055>
+ Add XDMSCRIPTDIR cpp substitution to allow modular tree
+ builder/packager to decide if scripts should go in config, lib,
+ or data directories.
+
+2005-12-09 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ Bug #1106: Fix memory allocation for Render. (Michel Daenzer)
+
+ * programs/xkbcomp/symbols/nl:
+ Bug #3544: Fix various keys on Dutch keyboards. (traxtopel at fastmail
+ dot fm)
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_bios.c:
+ Bug #3869: Don't walk off the end of an array in connector detection.
+ (Eric Anholt)
+
+ * config/makedepend/ifparser.c:
+ Bug #4380: Avoid dividing by zero in gccmakedepend (Vincent Le Ligeour)
+
+ * programs/Xserver/miext/cw/cw.h:
+ Bug #4935: Fix includes. (Eric Anholt)
+
+ * programs/Xserver/fb/fbcompose.c:
+ * programs/Xserver/hw/dmx/dmxpict.c:
+ * programs/Xserver/render/picture.c:
+ * programs/Xserver/render/picturestr.h:
+ Bug #5258: Restore binary compatibility with 6.8.2's PictureRec.
+ (Aaron Plattner)
+
+ * programs/Imakefile:
+ * programs/pclcomp/*:
+ Bug #4853: Remove pclcomp for being non-free.
+
+2005-12-08 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_axp.c:
+ Bug #4928: Fix compilation for Alpha. (Stefaan DeRoeck)
+
+ * programs/Xserver/fb/fbcompose.c:
+ Bug #3944: Fix 24bpp packed pixel. (Søren Sandmann Pedersen)
+
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_driver.c:
+ Fix a non-dlloaderism to make X -configure work.
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ Bug #4361: Change driver probe logic to read the driver list from
+ disk instead of using a compile-time array. Push the fallback drivers
+ to the end of the list so driver probe order stays useful.
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ Bug #1288: Additional refactor of the driver probe logic to keep
+ ati loaded before atimisc.
+
+2005-12-08 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * library.c: (XcursorLibraryPath):
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre200.h:
+ * programs/Xserver/hw/xfree86/xf86cfg/loader.c:
+ (LoaderInitializeOptions):
+ * programs/Xserver/hw/xfree86/xf86cfg/text-mode.c: (TextMode):
+ * programs/mkcfm/mkcfm.c:
+ Allow hard-coded paths to be configurable.
+
+2005-12-06 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xclock/Clock.c:
+ Bugzilla #5251 <https://bugs.freedesktop.org/show_bug.cgi?id=5251>
+ xclock -digital only shows "20" (Egmont Koblinger)
+
+2005-12-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/xorgversion.def:
+ Version bump: 6.8.99.903 (aka 6.9 RC3)
+
+2005-12-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Set DlLibrary to -lc on Solaris 10, since libdl was merged into libc.
+
+ * config/cf/sunLib.tmpl:
+ Replace hardcoded -ldl with DlLibrary.
+
+2005-12-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_version.h:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.h:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ Bump version numbers for X11R6.9/X11R7 RC3.
+
+2005-11-30 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/GL/dri/drm/Imakefile:
+ * lib/XvMC/hw/i810/Imakefile:
+ * lib/XvMC/hw/via/unichrome/Imakefile:
+ * lib/XvMC/hw/via/unichromeProA/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/xf86drm.h:
+ * programs/Xserver/hw/xfree86/os-support/xf86drmCompat.h:
+ * programs/Xserver/hw/xfree86/os-support/bsd/drm/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c:
+ Bug #5016: Pull libdrm from the copy in extras.
+
+2005-11-29 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/fb/Imakefile:
+ * programs/Xserver/fb/fbmmx.c:
+ * programs/Xserver/fb/fbpict.c:
+ Bug #5093: Fix fb for non-SSE machines. (Xavier Bachelot)
+
+ * config/cf/NetBSD.cf:
+ Bug #4828: Better fix for NetBSD thread lib. (Jeremy C. Reed)
+
+2005-11-28 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/xdriinfo/xdriinfo.c: (main):
+ Bug #5146: Fix building of xdriinfo in the presence of NVIDIA libGL by
+ using the GLX 1.3 glXGetProcAddressARB instead of glXGetProcAddress.
+
+2005-11-29 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_video.c
+ Bug #736 <https://bugs.freedesktop.org/show_bug.cgi?id=736>
+ Fix offset for later generation trident chipsets so that Xv data
+ is correctly grabbed from video memory. Spotted by Guy Martin.
+
+2005-11-27 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/Xaw/Pixmap.c:
+ Fix Xaw6 to build without Xpm.
+
+2005-11-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xkbcomp/symbols/pl2:
+ Bug #5070 <https://bugs.freedesktop.org/show_bug.cgi?id=5070>
+ Patch #3816 <https://bugs.freedesktop.org/attachment.cgi?id=3816>
+ Typo in key definition for the pl2 keyboard layout. (Krzysztof Nowicki)
+
+2005-11-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/X11/XKBCvt.c:
+ * config/util/lndir.c:
+ * lib/Xt/Intrinsic.c:
+ Bug #5003 <https://bugs.freedesktop.org/show_bug.cgi?id=5003>
+ Patch #3763 <https://bugs.freedesktop.org/attachment.cgi?id=3763>
+ Xorg code misuses S_IF* macros
+
+2005-11-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/keysymdef.h:
+ Change values of XK_MATHEMATICAL symbols to use 0x1000000 + Unicode
+ value, as Xorg Architecture Task Force agreed last year should be
+ done for all new keysyms mapped to Unicode characters.
+
+2005-11-20 Kean Johnston <kean@armory.com>
+
+ * config/cf/sco5.cf:
+ * config/cf/usl.cf:
+ Set HasSnprintf to NO becuase setting it to YES implies that it
+ has C99 semantics, which neither OS has, despite having the function
+ in libc.
+
+2005-11-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xset/xset.c:
+ Fix typo in #define that caused Xprint support to not be built in
+ modular tree.
+
+2005-11-19 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/Xft/xft.pc.in:
+ * lib/Xevie/xevie.pc.in:
+ Update pkgconfig files to separate library build-time dependencies
+ from application build-time dependencies.
+
+2005-11-18 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/GL/dri/xf86dri.c: (ProcXF86DRIOpenConnection),
+ (ProcXF86DRIGetDeviceInfo):
+ Bug #5060: Fix non-Linux DRI on 64 bit post Linux 32/64 changes.
+
+2005-11-18 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/ddc/xf86DDC.c:
+ Bug #4859: Don't segfault on bad DDC read. (Tony Houghton)
+
+ * config/cf/mingw.rules:
+ * programs/Xserver/Imakefile:
+ Bug #4578: Fix cross-build of Xming. (Colin Harrison)
+
+2005-11-15 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (ViaSwovSurfaceCreate), (ViaSwovSurfaceDestroy):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (viaSetupAdaptors):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvpriv.h:
+ Fix via video surface reallocation and destruction.
+ (Reported by Cedric Berger)
+
+2005-11-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/xinit/Imakefile:
+ * programs/xinit/startx.cpp:
+ * programs/xinit/xinitrc.cpp:
+ Make using full paths in the xinit scripts optional.
+
+2005-11-14 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/font/fontfile/Imakefile:
+ * lib/font/fontfile/dirfile.c:
+ * lib/font/fontfile/fontdir.c:
+ Bug #5047: Make font directory attribs work in modular.
+
+2005-11-14 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/include/servermd.h:
+ Make fb build on darwin/ppc without addition #define hacks
+
+2005-11-14 Kean Johnston <kean@armory.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c: Dont prevent
+ SCO platforms from writing ZAxisMapping now that the OS layers
+ correctly send z-axis events for wheel motion.
+
+2005-11-14 Matthias Hopf <mhopf@suse.de>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c: (MousePreInit):
+ Bug #4915: ButtonMapping default changed from one-to-one mapping
+ to "1 2 3 8 9 10 11...".
+
+2005-11-14 Matthias Hopf <mhopf@suse.de>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c: (MousePreInit):
+ Bug #4915: Move buttonMapping initialization before calling OS
+ specific PreInit.
+
+2005-11-11 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/util/mkshadow/mkshadow.c:
+ Typo in error message: "symbolc link" -> "symbolic link"
+
+2005-11-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c:
+ (R128InitVisualConfigs):
+ Bug #1028: Don't (incorrectly) mark the 24/8 z/stencil case as slow,
+ which resulted in whining at runtime about the visual not being
+ supported.
+
+2005-11-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/xorgversion.def:
+ Version bump: 6.8.99.902 (aka 6.9 RC2)
+
+2005-11-10 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/GL/mesa/main/Imakefile.inc:
+ Add execmem.c and mm.c to Mesa build.
+
+2005-11-09 Kean Johnston <kean@armory.com>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c: Reinstate the
+ default value for ZAxisMapping.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_mouse.c: Do
+ one-to-one mapping of mouse buttons. Turn wheel motion into a
+ Z-axis event instead of treating it directly as a button.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_mouse.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_xqueue.c: Ditto.
+
+2005-11-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/Imakefile:
+ Don't link with libresolv on AIX either. (Dan McNichol)
+
+2005-11-09 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/apple/applewm.c:
+ * lib/windows/windowswm.c:
+ #include "foowmstr.h" -> #include <X11/extensions/foowmstr.h>
+
+2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/ativersion.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_version.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h:
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.h:
+ * programs/Xserver/hw/xfree86/drivers/rendition/rendition.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis.h:
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb.h:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.h:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.c:
+ * programs/Xserver/hw/xfree86/input/digitaledge/DigitalEdge.c:
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ Bump version numbers for X11R6.9/X11R7 RC2.
+
+2005-11-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xsetpointer/xsetpnt.man:
+ Bug #4620 <https://bugs.freedesktop.org/show_bug.cgi?id=4620>
+ xsetpointer man page refers to "xsetmode" by mistake (Ortwin Glück)
+
+2005-11-09 Matthias Hopf <mhopf@suse.de>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ (RADEONGenerateModeListFromMetaModes):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_merge.c:
+ (GenerateModeList):
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c:
+ (SiSGenerateModeListFromMetaModes):
+ Bug #4998: Add ';' and ',' as valid separators for MetaModes as well.
+
+2005-11-09 Matthias Hopf <mhopf@suse.de>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.man:
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/hurd/hurd_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/nto/nto_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/os2/os2_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/qnx4/qnx_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/sysv/xqueue.c:
+ * programs/Xserver/hw/xfree86/os-support/xf86OSmouse.h:
+ Bug #4915: ButtonMapping option which allows to define arbitrary
+ button mappings (including left-handed mouse etc.).
+ Fixed incorrect usage of non-reversed, but ZAxisMapped buttons for
+ state detection.
+ Nuked unused part of reverseMap.
+
+2005-11-09 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ (VIASwitchMode):
+ Bug #4990: <https://bugs.freedesktop.org/show_bug.cgi?id=4990>
+ Avoid dereferencing a NULL pointer if DRI is not enabled.
+ (Joris van Rantwijk)
+
+2005-11-09 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaModeDotClockTranslate):
+ #4855 fallout: VT3108, VT3118 and VT3344 free modes were broken.
+
+2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ Fix DoLoadableServer NO build.
+
+2005-11-08 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/GL/mesa/drivers/dri/common/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/unichrome/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/via/Imakefile.inc:
+ Do not link/build files that were removed during Mesa import.
+
+2005-11-08 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * extras/Mesa/XOrg-Xlist:
+ Update files to remove during Mesa import (Brian Paul).
+
+2005-11-07 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.c: (pciReadWord),
+ (pciReadByte), (pciWriteWord), (pciWriteByte):
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c:
+ (linuxPciCfgReadByte), (linuxPciCfgWriteByte),
+ (linuxPciCfgReadWord), (linuxPciCfgWriteWord): Bug #2880, add
+ functions for byte and word level access to pci config space.
+
+ * ChangeLog: Fix broken utf8 again.
+
+2005-11-08 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineReset):
+ bugzilla #988 (https://bugs.freedesktop.org/show_bug.cgi?id=988)
+ Fix typo which may or may not have had a negative impact on stability
+ with R300 class cards.
+
+2005-11-08 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONScreenInit):
+ bugzilla #4494 (https://bugs.freedesktop.org/show_bug.cgi?id=4494)
+ Call RADEONDGAInit() even if EXA is enabled; the problematic DGA
+ acceleration hooks are already disabled in that case.
+
+ This fixes DGA issues such as DGA mouse (typically used by games in
+ fullscreen mode) not working.
+
+ Fix suggested by Eric Anholt.
+
+2005-11-08 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ (RADEONSetCursorPositionMerged):
+ bugzilla #4916 (https://bugs.freedesktop.org/show_bug.cgi?id=4916)
+ Fix segfault with MergedFB and EXA enabled and HW cursor temporarily
+ disabled.
+
+2005-11-08 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c:
+ (RADEONCursorSave), (RADEONCursorAllocEXA), (RADEONUseHWCursor),
+ (RADEONUseHWCursorARGB), (RADEONCursorInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONScreenInit):
+ bugzilla #4951 (https://bugs.freedesktop.org/show_bug.cgi?id=4951)
+ attachment #3689 (http://bugs.freedesktop.org/attachment.cgi?id=3689)
+ Fix HW cursor getting silently disabled with EXA.
+
+2005-11-07 Kean Johnston <kean@armory.com>
+
+ * config/cf/Imake.rules(AssembleObject): Don't use $*, as some
+ makes only accept those in inference rules. Adjust all use of that
+ macro to take the extra arg.
+ * config/cf/QNX4.rules: Ajust usage of AssembleObject.
+ * config/cf/minix.cf: Ditto.
+ * config/cf/nto.rules: Ditto.
+ * config/cf/xf86.tmpl: Ditto.
+ * config/cf/xorg.tmpl: Ditto.
+
+ * config/cf/sco5.cf: Complete overhaul for the modern world.
+ * config/cf/usl.cf: Ditto.
+ * config/cf/scoLib.rules: Set UseExportLists if it wasnt set.
+ Adjust the use of -R and -h linker options to allow for full
+ paths in shard library names.
+ * config/cf/Imake.tmpl: Prefix -Bstatic with -Wl, as not all (in
+ fact few) gcc's are configured to accept -Bstatic as an
+ argument. Revert to dynamic mode after linking in -lgcc.
+ * extras/Xpm/Imakefile: USL doesnt need strcasecmp.
+ * extras/Xpm/lib/Imakefile: Ditto.
+ * extras/ogl-sample/main/gfx/lib/glu/libnurbs/internals/simplemath.h:
+ Dont define abs on UnixWare either.
+ * include/Xfuncs.h: SCO platforms dont need memory.h and they dont
+ need to define bcopy wrappers, as the real prototypes are in
+ strings.h. Include that instead, as it also declares strcasecmp().
+ * include/Xosdefs.h: UnixWare and OSR5 are POSIX-like. Define
+ system default values for PATH_MAX and MAXPATHLEN.
+ * include/Xthreads.h: Updated for UnixWare threads support.
+ * lib/ICE/Imakefile: Use *.cf-defined connection defines.
+ * lib/X11/locking.c: Update for UnixWare threads. This is done in
+ such a way that even non-threaded apps can link with the X libs.
+ * lib/fontconfig/Imakefile: SCO platforms need ksh.
+ * lib/xtrans/Xtranslcl.c: Use SCO named pipes for all transports.
+ Add missing \n to some error strings.
+ Make SCO connection type use connect_spipe() and named_spipe().
+ Dont support the ISC transport layer on SCO platforms.
+ Set a default port if any empty string was passed to the SCO
+ transport layer.
+ * lib/xtrans/Xtransutil.c(ConvertAddress): Set FamilyLocal
+ correctly on SCO platforms.
+ * programs/Xserver/Xprint/ps/Imakefile: Add extra build flags for
+ SCO to pick up the correct definition of MAXPATHLEN.
+ * programs/Xserver/hw/xfree86/common/xf86Config.c: Set the correct
+ default keyboard protocol if XQUEUE mode is on. For backwards
+ compatibility with existing config files, accept keyboard protocol
+ "xqueue" as a synonym for "standard" on UnixWare.
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c: Set the
+ correct mouse protocol for UnixWare. Dont emit default
+ ZAxisMapping for SCO platforms, they do the right thing in the
+ driver code.
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c: Ditto.
+ * programs/Xserver/hw/xfree86/common/xf86Events.c: Deal with
+ 0-based offset for VT's on UnixWare.
+ (xf86CommonSpecialKey): Key isnt special if ShiftMask is also
+ pressed (i.e Ctrl-Alt-Shift-Backspace is not Zap, but
+ Ctrl-Alt-Backspace is).
+ * programs/Xserver/hw/xfree86/doc/sgml/SCO.sgml: Updated SCO
+ release notes.
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c: Work
+ around an optimizer bug in the USL compiler that optimizes away
+ a valid volatile.
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c: Set the
+ protocol to "Xqueue" if thats what is being used.
+ * programs/Xserver/hw/xfree86/loader/Imakefile: Copy in libcrt.a
+ for UnixWare systems which is required for runtime support.
+ * programs/Xserver/hw/xfree86/loader/loader.c: Deal with loading
+ libcrt.a in the loader for USLC long long support routines.
+ * programs/Xserver/hw/xfree86/loader/os.c: Identify SVR5 and SCO.
+ * programs/Xserver/hw/xfree86/os-support/Imakefile: Use the new
+ USL code in usl/ for UnixWare.
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h: Dont define
+ XQUEUE for UnixWare, it now has its own full OS layer.
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h: If XQUEUE
+ is defined, include input.h so that the XQUEUE function
+ declarations are valid.
+ * programs/Xserver/hw/xfree86/os-support/sco/Imakefile: Use new
+ SCO keyboard interface required for kbd driver support.
+ Work around a GNU ld COFF-conversion bug with the event library.
+ * programs/Xserver/hw/xfree86/os-support/sco/VTsw_sco.c: Update
+ function prototypes.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_iop.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_KbdMap.c: New
+ file for SCO keyboard driver support.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_kbd.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_kbd.h: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_init.c: Corrected
+ several logic errors with the startup code. Cleaned up prototypes.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_io.c: Cleaned up
+ prototypes. Modify for use with new keyboard driver model.
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_mouse.c: Only
+ return MSE_MISC from SupportedInterfaces(). Correct event driver
+ mask to include buttons. Correct wheel mouse button map. Ensure we
+ correctly mark the device as closed. Fix event posting algorithm
+ for wheel buttons.
+ * programs/Xserver/hw/xfree86/os-support/shared/sysv_kbd.c: SCO no
+ longer uses this file, remove its conditionals from it.
+ * programs/Xserver/hw/xfree86/os-support/usl/Imakefile: New
+ file. Added full UnixWare os-support layer.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_KbdMap.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_init.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_io.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_iop.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_kbd.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_kbd.h: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_mouse.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_video.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_vtsw.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_xqueue.c: Ditto.
+ * programs/Xserver/hw/xfree86/os-support/usl/usl_xqueue.h: Ditto.
+ * programs/Xserver/hw/xfree86/parser/Monitor.c: Use detected
+ ranges on SCO platforms, and adjust comment accordingly.
+ * programs/Xserver/hw/xfree86/xf86cfg/cards.c: Prevent a coredump
+ if there is no cards database by checking for a NULL pointer in
+ LookupCard().
+ * programs/Xserver/hw/xfree86/xf86cfg/interface.c: Recognise both
+ "keyboard" and "kbd" driver names as valid keyboard drivers.
+ * programs/Xserver/hw/xfree86/xf86cfg/keyboard-cfg.c: Ditto.
+ Also output the correct driver name based on
+ USE_DEPCREATED_KEYBOARD_DRIVER.
+ * programs/Xserver/hw/xfree86/xf86cfg/mouse-cfg.c: Set the default
+ protocol on SCO and UnixWare.
+ * programs/Xserver/hw/xfree86/xf86cfg/text-mode.c: Include the
+ correct curses header file on SCO platforms. Recognise both "kbd"
+ and "keyboard" as valid keyboard driver names. Added missing space
+ in dialog title. Use the correct mouse protocol on SCO/UW7. Set
+ the correct keyboard driver name. Explicitly recognise '\b' as a
+ backspace key on SCO platforms.
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c: Correct
+ comments for UnixWare/XQUEUE.
+ * programs/Xserver/os/utils.c: Emulate pread/pwrite which are
+ missing on SCO platforms.
+ * programs/ico/ico.c: Make the -sync argument actually call
+ XSynchronize() instead of enabling debug mode!
+ * programs/xcursorgen/Imakefile: Explicitly link in Xfixes for
+ those OSes that dont deal with library dependencies correctly.
+ * programs/xdm/Imakefile: Define USESECUREWARE for SCO OSR5.
+ * programs/xdm/auth.c: Include Xlibint.h and use _XGetHostname
+ instead of duplicating the logic here.
+ * programs/xdm/dm.c: Call set_auth_parameters() for SecureWare.
+ * programs/xdm/resource.c: Set the correct name of the PRNGD
+ socket for SCO OpenServer.
+ * programs/xdm/session.c: Implement SecureWare authentication.
+ * programs/xdm/config/Imakefile: Generate Xsession from
+ Xsession.ccp instead of a static file. Use the Korn shell on SCO
+ systems whose Bourne shell has severe limitations.
+ * programs/xdm/config/Xsession: Remove.
+ * programs/xdm/config/Xsession.cpp: New file to replace above.
+ * programs/xdm/greeter/verify.c: Adjust for SecureWare.
+ * programs/xedit/Imakefile: Add SCOBuildFlags for the correct
+ definition of MAXPATHLEN.
+ * programs/xinit/Imakefile: Use the Korn shell on SCO
+ systems. Pass the value of LIBDIR to xinitrc, as the SCO section
+ needs it. Pass a macro to the man page processor for SCO specific
+ man page bits, as well as passing LIBDIR.
+ * programs/xinit/startx.cpp: Update SCO support, and allow the
+ shell to be configured from Imakefile.
+ * programs/xinit/xinitrc.cpp: Ditto.
+ * programs/xinit/startx.man: Document SCO weirdnesses.
+ * programs/xterm/Imakefile: Define the termcap library on SCO
+ platforms in the cf file didn't, and make sure we link with it
+ when compiling resize on OSR5.
+ * programs/xterm/main.c: Dont set ECHOCTL on UnixWare.
+
+ ========
+ * config/cf/Imake.cf:
+ * config/imake/imake.c:
+ * config/imake/imakemdep.h:
+ * include/Xos.h:
+ * include/Xosdefs.h:
+ * lib/FS/FSlibos.h:
+ * lib/SM/sm_manager.c:
+ * lib/X11/Xlib.h:
+ * lib/Xaw/XawI18n.h:
+ * lib/Xbsd/Berklib.c:
+ * lib/Xt/NextEvent.c:
+ * lib/Xxf86dga/XF86DGA.c:
+ * lib/Xxf86dga/XF86DGA2.c:
+ * lib/dps/Xlibnet.h:
+ * lib/dps/cslibint.h:
+ * lib/font/fc/fslibos.h:
+ * lib/font/fontfile/encparse.c:
+ * lib/font/fontfile/fontenc.c:
+ * lib/lbxutil/lbx_zlib/lbx_zlib_io.c:
+ * lib/xtrans/Xtrans.c:
+ * lib/xtrans/Xtransint.h:
+ * lib/xtrans/Xtranslcl.c:
+ * lib/xtrans/Xtranssock.c:
+ * programs/Xserver/Xext/xf86bigfont.c:
+ * programs/Xserver/Xprint/attributes.c:
+ * programs/Xserver/hw/xfree86/common/compiler.h:
+ * programs/Xserver/hw/xfree86/common/scoasm.h:
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ * programs/Xserver/hw/xfree86/drivers/chips/util/AsmMacros.h:
+ * programs/Xserver/hw/xfree86/drivers/rendition/vboard.c:
+ * programs/Xserver/hw/xfree86/etc/mmapr.c:
+ * programs/Xserver/hw/xfree86/etc/mmapw.c:
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h:
+ * programs/Xserver/hw/xfree86/os-support/xf86_ansic.h:
+ * programs/Xserver/hw/xfree86/vbe/vbe.h:
+ * programs/Xserver/include/os.h:
+ * programs/Xserver/os/access.c:
+ * programs/Xserver/os/osinit.c:
+ * programs/fonttosfnt/util.c:
+ * programs/rgb/rgb.c:
+ * programs/rgb/showrgb.c:
+ * programs/xauth/gethost.c:
+ * programs/xconsole/xconsole.c:
+ * programs/xdm/chooser.c:
+ * programs/xdm/dm.c:
+ * programs/xdm/dm.h:
+ * programs/xdm/util.c:
+ * programs/xfs/os/osdep.h:
+ * programs/xman/man.c:
+ * programs/xman/misc.c:
+ * programs/xman/vendor.c:
+ * programs/xman/vendor.h:
+ * programs/xmh/command.c:
+ Update SCO support. This mainly consists of rationalizing how the
+ platforms are recognised by Imake. Now use a consistent set of
+ macros for refering to the various platforms:
+ __SCO__ refers to any version of SCO OpenServer.
+ SCO325 refers to any release of SCO OpenServer 5.
+ SCO5V6 refers to any release of SCO OpenServer 6.
+ __UNIXWARE__ refers to any release of SCO UnixWare.
+ __USLC__ is only used to detect USL C compiler behaviour.
+
+2005-11-07 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86DGA.c (DGAProcessKeyboardEvent):
+ Don't reference noXkbExtension when building without XKB.
+ (Bob Terek - Sun Microsystems)
+
+2005-11-07 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/vfb/InitOutput.c:
+ (vfbAllocateFramebufferMemory), (vfbScreenInit):
+ Fix Xvfb to work properly in depth 15 mode. Fixes XTS5
+ XCloseDisplay-3 server crash.
+
+2005-11-06 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ "# else if" needs to be "#elif" to work properly
+
+2005-11-06 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ reviewed by: Benjamin Herrenschmidt, Eric Anholt
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaPixmapSave):
+ Fix a bug where a system memory pixmap got a wrong address
+ if memcpy() fallback was used for downloading from screen.
+
+2005-11-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c (RADEONGetMergedFBOptions):
+ Sun bug #6325220: Xorg dumps core in dual monitor configuration with
+ radeon driver if CRT2Position not specified in xorg.conf
+ <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6325220>
+ (Stuart Krietman - Sun Microsystems)
+
+2005-11-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Fix asm flags for 64-bit SPARC builds with Sun compilers.
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/Imakefile:
+ Use asm flags from sun.cf instead of duplicating settings here.
+
+2005-11-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/Imakefile:
+ Only build cfb24 if we're also building xf8_32wid, since nothing
+ else uses cfb24 any more. (See bugzilla #4809.)
+
+2005-11-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ Don't use gcc-only __FUNCTION__ macro.
+
+2005-11-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ Bug #4948: <https://bugs.freedesktop.org/show_bug.cgi?id=4948>
+ Incorrect URL in log file for Xorg CVS. Also fixed wording of
+ statement to not refer to monolithic CVS since modular uses the
+ same code, so it was appearing in modular builds too.
+
+2005-11-05 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaGetMemoryBandwidth):
+ #4955: fix memory bandwidth check for VIA P4M800.
+ (reported by Jeremy Shaw)
+
+2005-11-04 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/fb/fbcopy.c: (fbCopyNtoN):
+ Only use fbCopyAreammx if planemask is FB_ALLONES
+ (fixes XTS5 XCopyArea tests 22 and 23).
+
+2005-11-02 Nolan <xorg-nolan@sigbus.net>
+
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.c:
+ (VMWAREPreDirtyBBUpdate):
+
+ Fix a bug where the cursor disappears. Committed on behalf
+ of Shelley Gong (shelleygong@vmware.com).
+
+2005-11-02 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_accel.c:
+ (VIAInitAccel):
+ * programs/Xserver/hw/xfree86/drivers/via/via_cursor.c:
+ (VIAHWCursorInit):
+ Fix HW cursors overwriting offscreen memory when dri is
+ not enabled.
+
+2005-11-02 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/GL/dri/drimodule.c:
+ * programs/Xserver/GL/glxmodule.c:
+ * programs/Xserver/Xext/extmod/modinit.c:
+ * programs/Xserver/dbe/dbemodule.c:
+ * programs/Xserver/dbe/module/Imakefile:
+ Fix support for enabling/disabling extensions loaded from modules.
+
+2005-11-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/xdbedizzy/xdbedizzy.c: (main):
+ Fix disabling print support in modular tree.
+
+2005-10-31 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/fstobdf/chars.c:
+ Make extern declarations unsigned to match actual definitions
+
+2005-10-31 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_acpi.c:
+ (lnxACPIOpen), (lnxCloseACPI):
+ Fix fd leak by closing them in the ACPI code instead of just using
+ shutdown.
+
+2005-10-30 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_swtcl.c:
+ (r200ChooseVertexState):
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_swtcl.c:
+ * extras/Mesa/src/mesa/drivers/dri/sis/sis_screen.c:
+ (sisCreateBuffer):
+ * lib/GL/mesa/shader/slang/library/Imakefile.inc:
+ Fix build problems in MESA/DRI code with gcc 2.96.
+
+2005-10-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/greeter/verify.c:
+ Fix #ifdef statement syntax to clear compiler warning.
+
+2005-10-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ Improved stack trace dump code for Solaris - try fork & exec
+ of pstack first so we can see the names of non-exported symbols
+ that aren't visible to walkcontext/dladdr1 code.
+
+2005-10-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c:
+ Don't try to restore savedPal in CloseScreen if savedPal is
+ NULL, to avoid segfault.
+
+2005-10-25 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/config/xdm-conf.cpp:
+ Use XDMCONFIGDIR for location of configuration files so they
+ can be installed in a directory other than the lib directory.
+ (Only overridable in modular build system at this point.)
+
+2005-10-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xrandr/Imakefile:
+ * lib/Xevie/Imakefile:
+ Bug #4867 <https://bugs.freedesktop.org/show_bug.cgi?id=4867>
+ Patch #3619 <https://bugs.freedesktop.org/attachment.cgi?id=3619>
+ Xevie & Xrandr shadow man pages installed in wrong directory
+ (Xavier Bachelot)
+
+2005-10-24 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (viaExitVideo), (viaSaveVideo), (viaRestoreVideo),
+ (VIAVidAdjustFrame):
+ Bug #2711:
+ Make via driver avoid referencing missing symbols when compiled
+ without -DXvExtension
+
+2005-10-24 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaModeDotClockTranslate):
+ Bug #4855: Fix VT3122 and VT3205 dotclock PLL setting.
+
+2005-10-24 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.h:
+ Bug #4277,
+ Bump via dri-ddx protocol version major due to binary
+ incompatibility (Luc Verhaegen, Eric Anholt)
+
+2005-10-23 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/font/FreeType/ftfuncs.c:
+ Bug #4721: Fix crash when using Freetype 2.1.10. (Michael Gor)
+
+ * config/cf/NetBSD.cf:
+ Bug #4828: Fix compilation on NetBSD 2.1 and up. (Germain Le-Chapelain)
+
+ * programs/xedit/lisp/xedit.c:
+ Bug #1860: Prevent walking off the end of the scan_types array.
+
+ * lib/ICE/process.c:
+ Bug #1893: Fix replies when peers use different major opcodes for the
+ same subprotocol. (016_ICE_subprotocol_reply_fix.diff from Debian,
+ by Jochen Voss)
+
+ * programs/Xserver/hw/xfree86/input/digitaledge/DigitalEdge.c:
+ Bug #4621: Size dedgeData correctly.
+
+2005-10-23 Luc Verhaegen <libv@skynet.be>
+
+ * lib/GL/mesa/drivers/dri/unichrome/Imakefile.inc:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ (VIADRIScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.h:
+ via unichrome mesa: fix fallout of
+ https://bugs.freedesktop.org/show_bug.cgi?id=4277
+ (Reported by Xavier Bachelot)
+
+2005-10-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xsm/xsm.man:
+ Fix typo. (Tobias Stoeckmann)
+
+2005-10-22 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/hw/via/unichrome/viaLowLevel.c: (viaDMAInitTimeStamp):
+ * lib/XvMC/hw/via/unichromeProA/viaLowLevelPro.c:
+ (viaDMAInitTimeStamp), (updateLowLevelBuf):
+ * programs/Xserver/hw/xfree86/drivers/via/via_drm.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memory.c:
+ (VIAAllocLinear):
+
+ Sync via_drm.h with drm and 3D driver.
+
+2005-10-22 Dave Airlie <airlied@linux.ie>
+
+ reviewed by: Ian Romanick
+
+ * programs/Xserver/GL/mesa/X/xf86glx.c:
+ Missing initializer in xf86glx.c spotted while debugging something
+ else.
+
+2005-10-21 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atidri.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ Bug #4829: Remove some useless DRI symbol checks.
+
+ * lib/X11/XErrorDB:
+ Bug #4736: Error decoding for Damage extension. (Jonathan Lennox)
+
+ * programs/Xserver/Xext/shm.c:
+ Bug #4730: Byte-swap the pixmap ID correctly. (Neil Campbell)
+
+ * programs/Xserver/hw/xfree86/common/xf86Xinput.c:
+ Bug #1429: Report input device type correctly. (StéphaneVOLTZ)
+
+ * config/cf/linux.cf:
+ Bug #1466: Make building libGL with/without -fPIC configurable.
+ (ISHIKAWA Mutsumi)
+
+2005-10-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/input/citron/citron.man:
+ Sun bug #6202893: nroff: if-else overflow.; line 93, file citron.7
+ <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6202893>
+ (Sam Lau - Sun Microsystems)
+
+2005-10-20 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/xedit/xedit.h
+ * programs/xedit/util.c
+ Fix some build bustage from this bug.
+ bugzilla #790 (https://bugs.freedesktop.org/show_bug.cgi?id=790)
+
+2005-10-18 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/Xcursor/display.c:
+ * lib/Xcursor/xcursorint.h:
+ Bug #4244: Make XcursorSetTheme(dpy, NULL) restore the default theme.
+ (Frederico Mena-Quintero)
+
+ * programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c:
+ Fix PCI bus scan on ia64 E8870 chipsets.
+
+ * programs/Xserver/hw/xfree86/loader/loadmod.c:
+ Bug #3196: Fix Load "foo.so" syntax.
+
+ * programs/Xserver/xkb/xkbInit.c:
+ Bug #3224: Degrade XKB fallback message to X_WARNING.
+
+2005-10-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/xorgversion.def:
+ Version bump: 6.8.99.901 (aka 6.9 RC1)
+
+2005-10-18 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/Xcomposite/Xcomposite.h
+ * lib/Xft/Imakefile
+ * lib/Xft/Xft.h
+ Update library version numbers to match updated package versions.
+
+ * programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ Update driver version numbers for RC1.
+
+2005-10-18 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * extras/Mesa/src/glx/x11/indirect_vertex_program.c:
+ * extras/Mesa/src/glx/x11/pixelstore.c:
+ Add __builtin_expect macro for non-gcc builds
+
+2005-10-18 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.c:
+ More via device subsystem IDs (Xavier Bachelot)
+
+2005-10-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xxf86dga/Imakefile:
+ Use GenManPage macros instead of overriding $(MANSUFFIX) so
+ __appmansuffix__ is set correctly in man page.
+
+2005-10-17 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Make sure FramePtrFlags is defined
+
+2005-10-17 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/X11/Imakefile:
+ Redo XlibConf.h generation #ifdefs to avoid confusing older make
+ when cpp leaves junk where the cpp macro lines were
+
+2005-10-17 Aaron Plattner <aplattner@nvidia.com>
+
+ * programs/Xserver/hw/xfree86/loader/Imakefile:
+ * programs/Xserver/hw/xfree86/loader/misym.c:
+ Export DamageDamageRegion. Not bumping the ABI version since we
+ did that already for this release.
+
+2005-10-17 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/Xp/libXp.man:
+ Change XCOMM to \&# to allow both cpp & sed to translate correctly.
+
+ * programs/xdm/Imakefile:
+ * programs/xdm/xdm.man:
+ Use XDMPIDDIR instead of XDMDIR when showing location of xdm-pid file
+ in man page.
+
+2005-10-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Set HasVarRun to YES for Solaris 8 and later.
+
+2005-10-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.man:
+ Remove note about kbd being experimental. Add Solaris to supported
+ OS list for kbd.
+
+ * programs/Xserver/hw/xfree86/input/keyboard/keyboard.man:
+ Add note about plans to move to kbd in a future release.
+
+2005-10-14 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaPixmapSave),
+ (exaMoveInPixmap):
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h:
+ * programs/Xserver/hw/xfree86/exa/exaasync.c:
+ Add an additional meaning to the "dirty" flag. Now, if !dirty && !area,
+ the pixmaps's contents are undefined, so we won't need to upload the
+ undefined contents in MoveIn. Use the ExaCheck* for async ops as well,
+ so that dirty is always tracked. While the performance impact for my
+ ls -lR test was not significant (though the avoiding-upload path was
+ being hit), it's likely to be important for the upcoming Get/PutImage
+ acceleration from ajax.
+
+2005-10-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xlogo/Logo.c:
+ * programs/xlogo/RenderLogo.c:
+ * programs/xlogo/print.c:
+ * programs/xlogo/xlogo.c:
+ Add #include <config.h> for modularization.
+
+2005-10-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/keysymdef.h:
+ Remove duplicate keysyms accidentally added to XK_MATHEMATICAL section.
+
+2005-10-13 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/Imake.tmpl:
+ #warning breaks older compilers
+
+2005-10-13 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.man:
+ Remove reference to XF86config-4. Add xorgcfg(1) to See Also list.
+
+2005-10-13 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/rendition/rendition.c:
+ Remove orphaned references to xf[14]bpp.
+
+2005-10-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/Xv/Xv.man
+ * doc/man/Xv/XvFreeAdaptorInfo.man
+ * doc/man/Xv/XvFreeEncodingInfo.man
+ * doc/man/Xv/XvGetPortAttribute.man
+ * doc/man/Xv/XvGetStill.man
+ * doc/man/Xv/XvGetVideo.man
+ * doc/man/Xv/XvGrabPort.man
+ * doc/man/Xv/XvPortNotify.man
+ * doc/man/Xv/XvPutStill.man
+ * doc/man/Xv/XvPutVideo.man
+ * doc/man/Xv/XvQueryAdaptors.man
+ * doc/man/Xv/XvQueryBestSize.man
+ * doc/man/Xv/XvQueryEncodings.man
+ * doc/man/Xv/XvQueryExtension.man
+ * doc/man/Xv/XvSelectPortNotify.man
+ * doc/man/Xv/XvSelectVideoNotify.man
+ * doc/man/Xv/XvSetPortAttribute.man
+ * doc/man/Xv/XvStopVideo.man
+ * doc/man/Xv/XvUngrabPort.man
+ * doc/man/Xv/XvVideoNotify.man
+ Convert hardcoded 3X to substitutable __libmansuffix__ like other
+ library man pages.
+
+2005-10-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xevie/Imakefile:
+ * lib/Xrandr/Imakefile:
+ Add shadow man pages for man pages that document multiple functions.
+
+2005-10-13 Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+ * programs/Xserver/hw/xfree86/exa/exaoffscreen.c:
+ (exaOffscreenInit):
+ Fix stupid mistake in yesterday's allocator commit, would cause
+ exa to consider a random available memory size
+
+2005-10-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/Xp/XpGetAttributes.man:
+ * doc/man/Xp/XpGetDocumentData.man:
+ * doc/man/Xp/XpGetPrinterList.man:
+ * doc/man/Xp/XpSetAttributes.man:
+ * doc/man/Xp/XpSetLocaleHinter.man:
+ * doc/man/Xp/XpStartDoc.man:
+ * doc/man/Xp/XpStartJob.man:
+ * lib/Xrandr/Xrandr.man:
+ * lib/Xcursor/Xcursor.man:
+ Use troff macros to prevent cpp eating C comments & #defines that
+ are supposed to appear in man page output.
+
+2005-10-12 Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+ * programs/Xserver/hw/xfree86/exa/exapict.c:
+ (exaTryDriverSolidFill):
+ Use proper access size when reading pixel based on bpp of the
+ source pixmap
+
+2005-10-12 Eric Anholt <anholt@FreeBSD.org>
+
+ reviewed by: benh
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaFillRegionTiled):
+ If a window background is a 1x1 pixmap, read the value out and go to
+ exaFillRegionSolid rather than sending piles and piles of Copies to the
+ hardware.
+
+2005-10-12 Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.h:
+ * programs/Xserver/hw/xfree86/exa/exaoffscreen.c:
+ (ExaOffscreenValidate), (exaOffscreenAlloc), (exaOffscreenFree),
+ (exaOffscreenInit):
+ Fix a couple of bugs in the offscreen allocator. One mostly harmless
+ was causing our search loop for evictable blocks to possibly skip a
+ good candiate, and another was the allocator would occasionally use
+ area->offset as if it was the base of the pixmap, while for a pixmap
+ that is not in available state, it is not. This caused some funny
+ miscalculation leading to overlapping pixmaps and accesses beyond the
+ end of the framebuffer. To make things cleared, I renamed save_offset
+ to base_offset, made sure it's the one used everywhere in the
+ allocator, and only align "offset" for the client at the end of
+ exaOffscreenAlloc().
+
+2005-10-11 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c
+ Add a new function xf86GetRotation to allow third party modules to
+ obtain the current rotation.
+
+2005-10-10 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sunLib.tmpl:
+ Add Solaris definitions for SharedXcompositeReqs & SharedXevieReqs,
+ add $(GLXLIB) to Solaris definition of SharedGLwReqs
+
+ * config/cf/sv4Lib.rules:
+ * config/cf/sun.cf:
+ Solaris linker runtime library path flag fixes.
+ Add -norunpath when building with Sun C++ compiler to avoid
+ recording compiler build-time runpaths in output binaries.
+
+2005-10-10 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/imake/Imakefile: Add missing define required to build
+ imake in the monolithic tree.
+
+2005-10-10 Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ Fix typo that prevent backtrace stuff from being properly
+ built on Linux
+
+2005-10-10 Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaFillRegionTiled):
+ Add missing {Prepare,Finish}Access() wrappers for the tile
+ pixmap in the fallback case
+
+2005-10-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Imakefile:
+ Move libXcursor build after libXfixes since libXcursor depends on
+ libXfixes after fix for bug #975.
+
+2005-10-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/freetype2/freetype/config/Imakefile:
+ Bug #2287 <https://bugs.freedesktop.org/show_bug.cgi?id=2287>
+ freetype2.pc not installed (Reported by Karel Clock Kulhavy)
+
+2005-10-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c (configServerFlags):
+ Bug #3254 <https://bugs.freedesktop.org/show_bug.cgi?id=3254>
+ Make sure screensaver & DPMS timeouts don't overflow when multiplied
+ by MILLI_PER_MIN. (Reported by Zachary J. Slater)
+
+2005-10-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/X11/XErrorDB:
+ Bug #3021 <https://bugs.freedesktop.org/show_bug.cgi?id=3021>
+ Requests and Errors for XFixes are not in XErrorDB (Jonathan Lennox)
+
+2005-10-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xcursor/Imakefile:
+ Bug #975 <https://bugs.freedesktop.org/show_bug.cgi?id=975>
+ Xfixes code in Xcursor not compiled when imake is used (Chris Lee)
+
+ * config/cf/sunLib.tmpl:
+ Add SharedXcursorReqs settings for Solaris
+
+2005-10-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/twm/Imakefile (deftwmrc.c):
+ * programs/twm/deftwmrc.sed:
+ * programs/twm/parse.c:
+ * programs/twm/parse.h:
+ Bug #3755 <https://bugs.freedesktop.org/show_bug.cgi?id=3755>
+ twm can't handle 8-bit characters in .twmrc (Tomohiro KUBOITA)
+
+2005-10-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xkbcomp/symbols/Imakefile:
+ * programs/xkbcomp/symbols/pc/Imakefile:
+ Bug #1680 <https://bugs.freedesktop.org/show_bug.cgi?id=1680>
+ Faroese (fo) keyboard layout doesn't get installed (Dejan Lesjak)
+
+2005-10-09 Daniel Stone <daniel@freedesktop.org>
+
+ * include/keysym.h:
+ * include/keysymdef.h:
+ Bug #4688: Add numerous mathematical symbols, protected by XK_MATHEMATICAL.
+
+2005-10-09 Dave Airlie <airlied@linux.ie>
+
+ reviewed by: Eric Anholt <anholt@freebsd.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONDRIScreenInit), (RADEONDRIAllocatePCIGARTTable):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig), (RADEONSetupMemXAA_DRI):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa.c:
+ (RADEONSetupMemEXA):
+ Secure the Radeon PCIE GART tables in framebuffer memory by not
+ allowing the clients to get access to a secure area of framebuffer.
+
+2005-10-08 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exapict.c: (exaGlyphs):
+ Don't try the accelerated glyphs path for component-alpha text (which
+ I don't expect drivers to be able to accelerate without exa assistance).
+ Instead, drop back to plain old miGlyphs for a 62.5% +/- 1.5% reduction
+ in runtime of my ls -lR test (n=5) with component alpha. While a
+ reasonable approach would seem to be making a better test to see whether
+ the entire path would be accelerated and force migration appropriately,
+ my attempt at this made the situation much worse.
+
+2005-10-08 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/imake/Makefile.ini:
+ * config/imake/imake.c:
+ Updates for modular build
+
+2005-10-07 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c
+ Use PointerMoved as well as SetCursorPosition, as PointerMoved will
+ call AdjustFrame to reposition the window if necessary and avoid the
+ cursor ending up offscreen.
+
+2005-10-07 Benjamin Herrenschmidt,,, <benh@kernel.crashing.org>
+
+ * programs/Xserver/hw/xfree86/exa/exapict.c: (exaComposite):
+ Clients tend to set picture->repeat when not necessary. Most HW cannot
+ accelerate repeat NPOT thus triggering software fallback (this is the
+ case with gnome desktop for example). This adds a simple optimisation
+ to exa that removes "repeat" when it's obviously useless, that is, the
+ single picture instance covers the entire rectangle beeing used
+
+2005-10-06 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exapict.c: (exaComposite):
+ * programs/Xserver/miext/damage/damage.c: (damageDamageRegion),
+ (DamageSubtract):
+ Bug #4699: Correct some memory leaks in EXA and damage related to region
+ handling.
+
+2005-10-06 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/Xext/xevie.c (doSendEvent):
+ Sun bug #6326551: xkbSetDetectableAutoRepeat broken when using XEvIE
+ <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6326551>
+ (Derek Wang, Sun Microsystems)
+
+2005-10-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/mkcfm/mkcfm.c:
+ Instead of including the Xserver's os.h header for the extern
+ ErrorF and FatalError declarations, declare them directly.
+
+Thu Oct 6 10:39:34 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * mkcfm.c: Change several includes to be <X11/fonts/*> instead of
+ "*". Replace includes of Type1 headers with copies of CID_NAME_MAX
+ and some prototypes.
+
+2005-10-06 Aaron Plattner <aplattner@nvidia.com>
+
+ * programs/xrandr/xrandr.c: (main):
+ Tell the user when setting the screen configuration fails. Return
+ nonzero so scripts can find out too.
+
+2005-10-06 Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+ * programs/Xserver/render/picture.c: (PictureMatchVisual):
+ Bug #4689: Treat DirectColor as TrueColor in Render. It
+ fixes some crashes with xcompmgr when using apps that use
+ a DirectColor visual for their windows
+
+2005-10-05 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * include/GL/glxproto.h:
+ Revert changes that duplicated GLX_SGIX_swap_barrier protocol
+ requests and replies
+
+2005-10-05 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/dmx/config/xdmxconfig.c:
+ Include dmx-config.h for modular build
+
+ * programs/Xserver/hw/dmx/examples/dmxaddinput.c:
+ * programs/Xserver/hw/dmx/examples/dmxaddscreen.c:
+ * programs/Xserver/hw/dmx/examples/dmxreconfig.c:
+ * programs/Xserver/hw/dmx/examples/dmxresize.c:
+ * programs/Xserver/hw/dmx/examples/dmxrminput.c:
+ * programs/Xserver/hw/dmx/examples/dmxrmscreen.c:
+ * programs/Xserver/hw/dmx/examples/dmxwininfo.c:
+ * programs/Xserver/hw/dmx/examples/xdmx.c:
+ * programs/Xserver/hw/dmx/examples/xinput.c:
+ Use <X11/extensions/dmxext.h> intead of "dmxext.h"
+
+2005-10-05 Adam Jackson <ajax@freedesktop.org>
+
+ * include/GL/glxproto.h:
+ * programs/Xserver/GL/glx/global.c:
+ * programs/Xserver/GL/glx/glxcmds.c:
+ * programs/Xserver/GL/glx/glxext.c:
+ * programs/Xserver/GL/glx/glxext.h:
+ * programs/Xserver/GL/glx/glxscreens.c:
+ Bug #3652: Server-side GLX support for GLX_SGIX_swap_barrier and
+ GLX_SGIX_hyperpipe extensions. (Eric Kunze, SGI)
+
+2005-10-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/etc/pci.ids:
+ * programs/Xserver/hw/xfree86/scanpci/xf86PciStdIds.h:
+ Update to 2005-10-05 snapshot from pciids.sf.net
+ (includes a couple new Radeon id's).
+
+2005-10-05 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/xf86.rules:
+ Bug #4645: Fix InstallDriverSDKObjectSubModule for dlloader builds.
+
+2005-10-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ Fix the rest of the XFree86 DDX options that require an argument
+ to say so instead of reporting "unrecognized option" when the
+ argument is missing. Also give correct error instead of
+ "unrecognized option" for options only available to root.
+
+2005-10-05 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_pci.c:
+ (xf86GetOSOffsetFromPCI):
+ Fix return value. Clears up the resource ranges awkwardness and the
+ "INVALID MEM ALLOCATION" warning.
+
+2005-10-05 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/xdm/sessreg.c:
+ Add check for utmpx.ut_syslen structure member
+
+2005-10-04 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ Make Xorg -config stop lying to people and claiming it doesn't
+ exist when you fail to specify a file name. Also, include it
+ in the list of available options for non-root users when listing
+ all available flags.
+
+2005-10-04 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exapict.c: (exaGlyphs):
+ Mark the temporary pixmap dirty if UploadToScreen succeeds. Failure to
+ do so resulted in a solid black glyph if the font rendering actually
+ resulted in a fallback (subpixel AA, for example) and the temporary
+ got migrated after 10 or so glyphs.
+
+2005-10-04 Aaron Plattner <aplattner@nvidia.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Module.h:
+ Bump the video driver module ABI minor version to 8 so modules statically
+ linked against miDisableCompositeWrapper won't load on older servers.
+
+2005-10-03 Aaron Plattner <aplattner@nvidia.com>
+
+ * programs/Xserver/hw/xfree86/loader/Imakefile:
+ * programs/Xserver/hw/xfree86/loader/misym.c:
+ Export miDisableCompositeWrapper.
+
+2005-10-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * fbcompose.c: (fbFetchSourcePict), (fbFetchTransformed):
+ Correct the test for whether projective transform is necessary. Also,
+ use "affine" to describe the variable (universally) on suggestion from
+ vektor. Corrects a rendercheck failure.
+
+2005-10-03 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/xinit/xinit.c:
+ Bug #2027: Treat SIGTERM like SIGINT in xinit. (Andreas Luik)
+
+2005-10-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/etc/gtf.c:
+ Add #include <xorg-config.h> for modular build
+
+2005-10-03 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/fb/fbcopy.c:
+ Bug #3781: Only use fbCopyAreammx when alu == GXcopy. Originally
+ Gentoo bug #96053, patch by bartron@gmx.net.
+
+2005-10-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/xtrans/Xtranssock.c:
+ Bug #4678 <https://bugs.freedesktop.org/show_bug.cgi?id=4678>
+ Patch #3472 <https://bugs.freedesktop.org/attachment.cgi?id=3472>
+ Use SysV-style utmp on GNU/kFreeBSD (Robert Millan)
+
+2005-10-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/xtrans/Xtranssock.c:
+ Bug #3813 <https://bugs.freedesktop.org/show_bug.cgi?id=3813>
+ GNU/kFreeBSD fix for xtrans (Robert Millan)
+
+2005-10-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/auth.c:
+ Bug #3891 <https://bugs.freedesktop.org/show_bug.cgi?id=3891>
+ xdm build failure: IN6_IS_ADDR_LOOPBACK undefined (David Schleef)
+
+2005-10-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/vfb/Imakefile:
+ * programs/Xserver/hw/xfree86/Imakefile:
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ * programs/Xserver/hw/xfree86/common/xf86Privstr.h:
+ * programs/Xserver/hw/xfree86/input/joystick/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h:
+ * programs/Xserver/hw/xfree86/os-support/bsd/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c:
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_init.c:
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_io.c:
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c:
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/bsd/i386_video.c:
+ * programs/Xserver/hw/xfree86/os-support/bsd/drm/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bus/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_agp.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c:
+ * programs/Xserver/Xprint/etc/init.d/Imakefile:
+ * programs/Xserver/Xprint/etc/Xsession.d/Imakefile:
+ Bug #3815 <https://bugs.freedesktop.org/show_bug.cgi?id=3815>
+ Patch #3463 <https://bugs.freedesktop.org/attachment.cgi?id=3463>
+ GNU/kFreeBSD Xserver support (Robert Millan)
+
+2005-10-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/imake/imake.c:
+ * config/imake/imakemdep.h:
+ Bug #3812 <https://bugs.freedesktop.org/show_bug.cgi?id=3812>
+ Patch #3462 <https://bugs.freedesktop.org/attachment.cgi?id=3462>
+ GNU/kFreeBSD Imake support (Robert Millan)
+
+2005-10-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/Imake.cf:
+ * config/cf/linux.cf:
+ * config/cf/xfree86.cf:
+ * config/cf/xorg.cf:
+ Bug #3814 <https://bugs.freedesktop.org/show_bug.cgi?id=3814>
+ Patch #3461 <https://bugs.freedesktop.org/attachment.cgi?id=3461>
+ GNU/kFreeBSD monolithic build system support (Robert Millan)
+
+2005-10-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/fb/fbcompose.c: (fbFetchTransformed):
+ Merge r1.36 of fbcompose.c from xserver CVS:
+ Special case projective transforms so we can avoid doing the expensive
+ 64-bit math. Unroll the bilinear interpolation loops for an extra
+ boost.
+ I tested this with the up/downscaling cairo-benchmarks with Xvfb and
+ saw a 12 +/- 4 percent decrease in time taken to run them.
+
+2005-10-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/fb/fbedge.c: (clip255), (add_saturate_8),
+ (fbRasterizeEdges8):
+ Merge r1.2 of fbedge.c from xserver CVS:
+ Optimize spans where the same value is being added to multiple pixels.
+ This improves the speed of rendering wide trapezoids.
+ I tested this with a small set of xlibs cairo-benchmarks with Xvfb and
+ saw a 4% decrease in time taken to run them.
+
+2005-10-03 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Bug #4353: Fix lockup when suspend and resume when playing video.
+ Shutdown the overlay on LeaveVT.
+
+2005-10-02 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ Bug #4001: Don't crash when PanelSize is unset. (Alan Coopersmith)
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ Bug #4393: uClibc lies and defines __GLIBC__ even though it's not
+ source compatible with glibc, so the backtrace support check fails.
+ Work around this by wrapping the code in a configure check for
+ execinfo.h, and emulate detection for the monolith. (Yuri Vasilevski)
+
+2005-10-02 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/Imake.cf:
+ * config/cf/Imake.tmpl:
+ Bug #2539 <https://bugs.freedesktop.org/show_bug.cgi?id=2539>
+ Patch #1901 <https://bugs.freedesktop.org/attachment.cgi?id=1901>
+ Big-endian ARM processor support (Lennert Buytenhek)
+
+2005-10-02 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/Xprint/etc/init.d/Imakefile:
+ * programs/Xserver/Xprint/etc/init.d/xprint.cpp:
+ Bug #1465 <https://bugs.freedesktop.org/show_bug.cgi?id=1465>
+ /etc/init.d/Xprint should use PROJECTROOT from build
+ (Grzegorz DÄ…browski)
+
+2005-10-02 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xload/get_load.c:
+ * util/memleak/Imakefile:
+ Bug #3811 <https://bugs.freedesktop.org/show_bug.cgi?id=3811>
+ GNU/kFreeBSD support for xload & memleak (Robert Millan)
+
+2005-10-02 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/xtrans/Xtransock.c
+ Bug #4256 <https://bugs.freedesktop.org/show_bug.cgi?id=4256>
+ Patch #3046 <https://bugs.freedesktop.org/attachment.cgi?id=3046>
+ Define MAXHOSTNAMELEN if platform doesn't (Michael Banck)
+
+2005-10-02 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/fb/fb.h:
+ * programs/Xserver/fb/fbbits.h:
+ * programs/Xserver/fb/fbcopy.c: (fbCopyNtoN):
+ * programs/Xserver/fb/fbfill.c: (fbFill):
+ * programs/Xserver/fb/fbmmx.c: (fbSolidFillmmx), (fbCopyAreammx):
+ * programs/Xserver/fb/fbpict.h:
+ * programs/Xserver/fb/fbpoint.c: (fbDots), (fbPolyPoint):
+ * programs/Xserver/fb/fbwindow.c: (fbFillRegionTiled):
+ * programs/Xserver/hw/xfree86/exa/Imakefile:
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaFillRegionTiled),
+ (exaDriverInit):
+ * programs/Xserver/miext/cw/cw.c: (miInitializeCompositeWrapper),
+ (miDisableCompositeWrapper):
+ * programs/Xserver/miext/cw/cw.h:
+ Bugzilla #4616:
+ - Merge various fb/ bits of COMPOSITE support from xserver, which
+ weren't necessary before due to cw hiding the issues. Fixes offset
+ calculations for a number of operations, and may pull some fixes that
+ cairo has wanted for XAA as well.
+ - Add a new call, miDisableCompositeWrapper(), which a DDX can call to
+ keep cw from getting initialized from the damage code. While it would
+ be cleaner to have each DDX initialize it if it needs it, we don't
+ have control over all of them (e.g. nvidia).
+ - Use the miDisableCompositeWrapper() to keep cw from getting set up for
+ screens using EXA, because EXA is already aware of composite.
+ Avoiding cw improved performance 0-35% on operations tested by ajax in
+ x11perf.
+
+2005-09-29 Aaron Plattner <aplattner@nvidia.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c:
+ Add entries for GeForce Go 7800. (Change went into XFree86 on
+ 2005-09-28).
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:
+ Don't hang if j is zero. This should never happen, but it's better
+ to be safe than sorry.
+
+2005-09-28 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaPixmapSave),
+ (exaCloseScreen):
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h:
+ - Use the dirty flag (which should be set correctly all the time,
+ particularly thanks to Prepare/FinishAccess) to avoid DFS/memcpy on
+ pixmap move-out if it's unnecessary. This was disabled in KAA because
+ cache misuse on ATI made me guess that this code was wrong.
+ - Unwrap Glyphs on closescreen.
+
+2005-09-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/sun/constype.c:
+ * programs/Xserver/hw/sun/constype.man:
+ Updates for modularization and to match current Solaris version.
+
+2005-09-27 Ian Romanick <idr@us.ibm.com>
+
+ * programs/Xserver/GL/apple/aglGlx.c:
+ * programs/Xserver/GL/apple/indirect.c:
+ * programs/Xserver/GL/glx/impsize.h:
+ * programs/Xserver/GL/glx/render2.c: (__glXDisp_Map1f),
+ (__glXDisp_Map2f), (__glXDisp_Map1d), (__glXDisp_Map2d):
+ * programs/Xserver/GL/glx/render2swap.c: (__glXDispSwap_Map1f),
+ (__glXDispSwap_Map2f), (__glXDispSwap_Map1d),
+ (__glXDispSwap_Map2d):
+ * programs/Xserver/GL/glx/rensize.c: (__glXMap1dReqSize),
+ (__glXMap1fReqSize), (__glXMap2dReqSize), (__glXMap2fReqSize):
+ * programs/Xserver/GL/glx/singlesize.c: (__glGetMap_size):
+ * programs/Xserver/GL/glxmodule.c:
+ * programs/Xserver/GL/mesa/GLcore/GLcore-def.cpp:
+ * programs/Xserver/GL/mesa/X/xf86glx.c:
+ * programs/Xserver/GL/mesa/X/xf86glxint.h:
+ Replace all uses of __glEvalComputeK (and the doubly redundant
+ EvalComputeK) with calls to one of __glMap[12][df]_size. This was
+ tested with progs/samples/eval (from Mesa).
+
+2005-09-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/sun/kbd_mode.c:
+ Add __SVR4 #ifdefs to work in non-Imake builds.
+
+2005-09-28 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONDRITransitionTo3d):
+ Move the RADEONEnablePageFlip/RADEONChangeSurfaces calls
+ back to the end of the function (the code above will cause pixmap cache
+ to be freed and copied around, and these functions must be called after
+ that otherwise pixmap damage will occur).
+ May be related to #4440, #4456 (unclear if these setups involve 3d apps)
+
+2005-09-27 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa_render.c:
+ Fix Radeon MMIO Render acceleration with EXA by writing out floating-
+ point coordinates rather than integers.
+
+2005-09-27 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/modeline2c.pl:
+ Include xorg-config.h so the generated file will also include it.
+
+2005-09-27 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Put back the print code to display the DDC information, and
+ remove some bogus DDC messages.
+
+2005-09-25 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/config.h:
+ include xorg-config.h for modular build
+
+ * programs/Xserver/hw/xfree86/xf86cfg/interface.c:
+ Adjust XF86CONFIG defines for modular build
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Fixes for modular build:
+ - include modular server config headers
+ - change default XCONFIGFILE to xorg.conf
+ - define XKB_RULES_DIR if not defined by Imake
+
+2005-09-24 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/GL/dri/dri.c:
+ * programs/Xserver/GL/dri/dri.h:
+ * programs/Xserver/GL/dri/xf86dri.c:
+ Disable the {Open,Close}FullScreen DRI protocol.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.c:
+ Remove empty FullScreen stubs from drivers, comment the non-empty ones.
+
+2005-09-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/Xext/DPMSGetVersion.man:
+ * doc/man/Xext/DPMSQueryExtension.man:
+ Fix function prototypes to match dpms.h
+
+2005-09-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xt/ThreadsI.h:
+ Include <X11/XlibConf.h> to get correct XTHREADS settings in
+ non-Imake builds.
+
+Fri Sep 23 19:00:06 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c: Apply patch from Ronald Wahl to
+ make sure that the stack pointer is not modified at points where
+ we access external variables. (Bug 4269).
+
+2005-09-23 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/input/evdev/evdev.c:
+ Bug #3913: Suppress kernel-generated repeat events for chording keys.
+
+2005-09-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:
+ Bug #4558 <https://bugs.freedesktop.org/show_bug.cgi?id=4558>
+ Patch #3551 <https://bugs.freedesktop.org/attachment.cgi?id=3381>
+ 22-Sep-2005 nv driver update from Mark Vojkovich:
+ Fix possible cause of some acceleration instability on some
+ GeForce6xxx parts.
+
+Fri Sep 23 12:19:21 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/xrx/helper/httptran.c: Include <X11/Xtrans/transport.c>
+ instead of "transport.c"
+
+2005-09-22 Nolan <xorg-nolan@sigbus.net>
+
+ * programs/Xserver/hw/xfree86/drivers/vmware/svga_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.c:
+ (vmwareSendSVGACmdPitchLock), (VMWAREInitFIFO),
+ (VMWARECloseScreen), (VMWAREScreenInit), (VMWAREEnterVT),
+ (VMWARELeaveVT):
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.h:
+
+ Support for XRandR in the VMware driver.
+ Committed on behalf of Phil Langdale (plangdale@vmware.com)
+
+2005-09-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/interface.c:
+ Sun bug #6321613 <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6321613>
+ xorgcfg dumps core when it reads a configuration file that has a
+ Monitor Section, but does not have a "VendorName" entry inside it.
+ (Henry Zhao, Sun Microsystems)
+
+2005-09-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/X11.tmpl:
+ * lib/Xau/Imakefile:
+ * lib/Xdmcp/Imakefile:
+ Make libXau & libXdmcp default to shared instead of static libraries
+ to match modular build. (See fd.o bugzilla #4200.)
+
+2005-09-21 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exapict.c: (exaGlyphs):
+ Bug #4541: Fix text drawing in the case where a list contains no
+ non-zero-sized glyphs. Several variables weren't updated, resulting in
+ rendering simply stopping when this case was hit. (Anders Kaseorg)
+
+2005-09-21 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaPixmapAllocArea),
+ (exaMoveInPixmap), (exaPixmapUseScreen), (exaPixmapUseMemory),
+ (exaPrepareAccess), (exaCopyNtoN), (exaSolidBoxClipped),
+ (exaImageGlyphBlt), (exaFillRegionSolid), (exaFillRegionTiled),
+ (exaSetup):
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h:
+ * programs/Xserver/hw/xfree86/exa/exaasync.c:
+ * programs/Xserver/hw/xfree86/exa/exaoffscreen.c:
+ (exaOffscreenAlloc):
+ * programs/Xserver/hw/xfree86/exa/exapict.c: (exaComposite):
+ - Change migration-in rule slightly: previously, if your score was less
+ than the max, it was bumped, and then if you were above the threshhold
+ you got moved in. Instead, do the above-threshhold check separate
+ from score starting out less than max. While this will likely make
+ thrashing cases worse, I hope it will fix some issues with long term
+ performance (think of an xcompmgr with a backbuffer it's doing only
+ accelerated operations to. If some new pixmap comes in and bumps it
+ out, even once, it will never get a chance to re-migrate because its
+ score will be maxed). Change migration-out to be the same way for
+ symmetry, though it shouldn't ever affect anything.
+ - Fix a lot of debugging output, both in terms of printing quality, and
+ completeness. The fallback debugging covers a lot more now, pointing
+ out new areas for improvement. Debugging toggles are now centralized
+ in exaPriv.h.
+
+2005-09-21 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaFillRegionTiled),
+ (exaPaintWindow):
+ Add support for hardware accelerating tiled background painting. One
+ example of this is the root weave, which paints slightly slower on SiS
+ now in my testing. However, according to keithp some apps use this
+ feature for a sort of cheap backing store, which this could help with
+ significantly. While I haven't done much performance testing with it,
+ it will at least rule out one possible source of terrible performance.
+
+2005-09-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/scanpci/pciid2c.pl:
+ Update CVS project tag & notice about pci.ids license in output .h.
+
+ * programs/Xserver/hw/xfree86/scanpci/xf86PciStdIds.h:
+ Update to match recent changes to pci.ids, extrapci.ids, & pciid2c.pl
+ for people building on systems without perl.
+
+2005-09-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa.c:
+ Only include radeon_dri.h & radeon_sarea.h if XF86DRI is defined.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ Include "compiler.h" to define __inline__ on non-gcc compilers
+
+2005-09-19 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/etc/pci.ids:
+ Update to latest version from pciids.sf.net
+ * programs/Xserver/hw/xfree86/etc/extrapci.ids:
+ Sync with updates to pci.ids & PCI id list in nv driver
+
+2005-09-19 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c:
+ #include "xf86Axp.h" -> "shared/xf86Axp.h" for modular build.
+ (Stefaan De Roeck)
+
+2005-09-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa_funcs.c:
+ (RADEONUploadToScreen):
+ * programs/Xserver/hw/xfree86/drivers/sis/sis300_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis310_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_accel.c:
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaMoveInPixmap):
+ * programs/Xserver/hw/xfree86/exa/exa.h:
+ * programs/Xserver/hw/xfree86/exa/exapict.c: (exaGlyphs):
+ Break EXA ABI while we still can. Add coordinates to the UploadToScreen
+ hook so we can upload a subset of a pixmap, and convert the current
+ drivers to respect that. Use this support to directly UploadToScreen in
+ exaGlyphs, providing a 47.4% +/-2.4% decrease in wall time for ls -lR
+ programs/Xserver in an antialiased gnome-terminal on an M6 (n=3, caches
+ hot). I would have bumped major version, only I can't tell what the
+ EXA_VERSION_* is supposed to be doing as opposed to the module version.
+
+2005-09-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa.c:
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaPixmapSave),
+ (exaDrawableUseScreen), (exaDrawableUseMemory),
+ (exaPixmapUseScreen), (exaPixmapUseMemory), (exaCreatePixmap),
+ (exaCopyNtoN), (exaDriverInit):
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h:
+ * programs/Xserver/hw/xfree86/exa/exapict.c:
+ (exaCompositeFallbackPictDesc), (exaTryDriverSolidFill),
+ (exaTryDriverComposite), (exaComposite), (exaGlyphs):
+ - Don't try to upload 0 byte-per-pixel (PICT_a1) data using
+ RADEONHostDataBlit.
+ - Disable the shortcut for switching from 3d to 3d in radeon_exa.c. It
+ appears that we do need the cache flush here, thought it's not clear
+ why. Disable the 2d to 2d shortcut while here, since I'm unsure of
+ what we're doing. Exposed by the following bit:
+ - Bug #4485: Add a new routine, exaGlyphs, to handle font drawing.
+ Glyphs were being accumulated in from non-migratable scratch pixmaps,
+ causing the destination pixmap to move towards screen but the
+ migration necessary for source never to happen, leading to abysmal
+ performance. Instead, copy the scratch glyph data into a real pixmap
+ first, then composite from that into the destination, allowing for
+ migration. time ls -lR from programs/Xserver showed 26.9% (+/- 6.3%)
+ decrease in wall time (n=3).
+ - Create exaDrawableUse* wrapping exaPixmapUse*, but which are aware of
+ windows needing backing store. Makes migration code prettier, and
+ ensures that composited windows will be migrated as normal when we
+ turn off cw for EXA. (issue brought up by keithp)
+
+2005-09-17 Dave Airlie <airlied@linux.ie>
+
+ Switch radeon driver to using a card type rather than
+ having a IsPCI flag, allow for PCI/AGP/PCIE cards.
+ Set PCI gart allocation to only happen on PCIE cards.
+ Add Radeon PCIE card detection using capability bits.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONDRIKernelInit), (RADEONDRIBufInit), (RADEONDRIScreenInit),
+ (RADEONDRIFinishScreenInit), (RADEONDRIResume),
+ (RADEONDRIAllocatePCIGARTTable):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig), (RADEONPreInitDRI), (RADEONSetupMemXAA_DRI),
+ (RADEONScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa.c:
+ (RADEONSetupMemEXA):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+
+2005-09-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ Bugzilla #4480 <https://bugs.freedesktop.org/show_bug.cgi?id=4480>
+ Patch #3305 <https://bugs.freedesktop.org/attachment.cgi?id=3305>
+ 13-Sep-2005 nv driver update from Mark Vojkovich:
+ - Adds PCI ids for GeForce 6800 XT cards
+ - Adds names for existing PCI ids for some GeForce 6xxx & 7xxx cards
+ - Fix a potential problem with pixmap cache corruption on
+ GeForce 6xxx and 7xxx parts. (Mark Vojkovich, NVIDIA)
+
+2005-09-14 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineRestore):
+ Bug #2573: Remove the disabling of automatic cache flushing on non-r300
+ cards. It has been implicated in hanging at least r300s and some r100s,
+ and seemed to be the cause of some bad rendering for me.
+
+2005-09-14 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/XvMC/hw/via/viaXvMC.c:
+ * lib/XvMC/hw/via/xf86dri.c:
+ Look for Xv extension headers under X11/extensions (helps modular).
+
+Tue Sep 13 11:27:05 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/miext/shadow/shadow.c (shadowDamageBox): Add
+ missing REGION_UNINIT.
+
+2005-09-13 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/afb/afbpixmap.c:
+ * programs/Xserver/cfb/cfbpixmap.c:
+ * programs/Xserver/mfb/mfbpixmap.c:
+ * programs/Xserver/fb/fbpixmap.c:
+ * programs/Xserver/dix/dispatch.c:
+ * programs/Xserver/dix/pixmap.c:
+ * programs/Xserver/hw/xfree86/exa/exapixmap.c:
+ * programs/Xserver/hw/xfree86/xaa/xaaInit.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcPixmap.c:
+ * programs/Xserver/ilbm/ilbmpixmap.c:
+ * programs/Xserver/iplan2p4/iplpixmap.c:
+ Bug #594: CAN-2005-2495: Fix exploitable integer overflow in pixmap
+ creation, where we could create a far smaller pixmap than we thought,
+ allowing changes to arbitrary chunks of memory. (Søren Sandmann
+ Pedersen)
+
+2005-09-12 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/GL/dri/dri.c:
+ * programs/Xserver/GL/dri/dristruct.h:
+ Bug #3284: Make the DRI lock reference count per-screen.
+
+2005-09-12 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/NetBSD.cf:
+ Remove unsafe /tmp file creation for the formatted manual page target.
+ Just make the file in the current build directory instead of temp
+ directory. (Jeremy C Reed).
+
+2005-09-12 Dave Airlie <airlied@linux.ie>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa_funcs.c:
+ (RADEONDrawInit):
+ Fix Radeon EXA for when RENDER isn't defined
+
+2005-09-12 Dave Airlie <airlied@linux.ie>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ Move GART offset/size outside XAA
+
+2005-09-11 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/i128/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128.h:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128IBMDAC.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128accel.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128dga.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128exa.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128init.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128reg.h:
+ EXA support for i128. Solid and Copy only for now, and incompatible
+ with DGA. Also some drive-by static and const cleanups.
+
+2005-09-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exaasync.c: (ExaCheckFillSpans),
+ (ExaCheckSetSpans), (ExaCheckPutImage), (ExaCheckCopyArea),
+ (ExaCheckCopyPlane), (ExaCheckPolyPoint), (ExaCheckPolylines),
+ (ExaCheckPolySegment), (ExaCheckPolyRectangle), (ExaCheckPolyArc),
+ (ExaCheckFillPolygon), (ExaCheckPolyFillRect),
+ (ExaCheckPolyFillArc), (ExaCheckImageGlyphBlt),
+ (ExaCheckPolyGlyphBlt), (ExaCheckPushPixels), (ExaCheckGetImage),
+ (ExaCheckGetSpans), (ExaCheckSaveAreas), (ExaCheckRestoreAreas),
+ (ExaCheckPaintWindow), (ExaCheckComposite):
+ Add some optional (disabled) fallback debugging code to the async code,
+ for better tracking of when we're hitting software.
+
+2005-09-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineFlush), (RADEONEngineRestore), (RADEONHostDataBlit),
+ (RADEONCopySwap), (RADEONHostDataBlitCopyPass), (RADEONAccelInit),
+ (RADEONInit3DEngine):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONRestoreAccelState),
+ (RADEONSetupForScanlineCPUToScreenColorExpandFill),
+ (RADEONSubsequentScanline), (RADEONSetupForScanlineImageWrite),
+ (RADEONAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_commonfuncs.c:
+ (RADEONInit3DEngine), (RADEONWaitForIdle):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c:
+ (RADEONSetCursorColors), (RADEONSetCursorPosition),
+ (RADEONLoadCursorImage), (RADEONUseHWCursor),
+ (RADEONUseHWCursorARGB), (RADEONLoadCursorARGB), (ATICursorSave),
+ (RADEONCursorInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c:
+ (RADEONSetupDGAMode), (RADEONDGAInit), (RADEON_FillRect),
+ (RADEON_BlitRect), (RADEON_BlitTransRect):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONEnterServer), (RADEONDRIMoveBuffers), (RADEONDRICPInit),
+ (RADEONDRIScreenInit), (RADEONDRIFinishScreenInit),
+ (RADEONDRIRefreshArea), (RADEONEnablePageFlip),
+ (RADEONDRITransitionTo3d), (RADEONDRITransitionTo2d):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONLoaderRefSymLists), (RADEONPreInitModes),
+ (RADEONPreInitAccel), (RADEONPreInitDRI), (RADEONLoadPalette),
+ (RADEONBlockHandler), (RADEONSetupMemXAA_DRI), (RADEONSetupMemXAA),
+ (RADEONScreenInit), (RADEONSwitchMode), (RADEONAdjustFrame),
+ (RADEONCloseScreen), (RADEONDisplayPowerManagementSet):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa.c:
+ (RADEONLog2), (F_TO_DW), (RADEONGetDatatypeBpp),
+ (RADEONPixmapIsColortiled), (RADEONGetOffsetPitch),
+ (RADEONGetPixmapOffsetPitch), (RADEONPrepareAccess),
+ (RADEONFinishAccess), (RADEONSetupMemEXA):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa_funcs.c:
+ (RADEONSync), (RADEONPrepareSolid), (RADEONSolid),
+ (RADEONDoneSolid), (RADEONPrepareCopy), (RADEONCopy),
+ (RADEONDoneCopy), (RADEONUploadToScreen),
+ (RADEONDownloadFromScreen), (RADEONDrawInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_exa_render.c:
+ (RADEONGetDestFormat), (RADEONGetBlendCntl),
+ (R100CheckCompositeTexture), (R100TextureSetup),
+ (R100CheckComposite), (R100PrepareComposite),
+ (R200CheckCompositeTexture), (R200TextureSetup),
+ (R200CheckComposite), (R200PrepareComposite), (RadeonComposite),
+ (RadeonDoneComposite):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ (RADEONSetCursorPositionMerged):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (R100SetupTexture), (R100SetupForCPUToScreenAlphaTexture),
+ (R100SetupForCPUToScreenTexture), (R200SetupTexture),
+ (R200SetupForCPUToScreenAlphaTexture),
+ (R200SetupForCPUToScreenTexture):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (ATIVideoSave), (RADEONResetVideo), (RADEONSetupTheatre),
+ (RADEONAllocAdaptor), (RADEONStopVideo), (RADEONSetPortAttribute),
+ (RADEONGetPortAttribute), (RADEONCopyData), (RADEONCopyRGB24Data),
+ (RADEONCopyMungedData), (RADEONAllocateMemory), (RADEONFreeMemory),
+ (RADEONDisplayVideo), (RADEONPutImage), (RADEONVideoTimerCallback),
+ (RADEONAllocateSurface), (RADEONFreeSurface), (RADEONPutVideo):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.h:
+ Add support for EXA to the radeon driver. Building EXA and XAA support
+ is controlled at compile time, plus the runtime option of
+ Option "AccelMethod" "EXA" or "XAA". The XAA support appears to remain
+ as before, while the EXA pieces need just a little more polishing.
+ Notable features:
+ - Render acceleration working on Radeon 100 and 200-series with DRI on.
+ - DRI works with EXA
+ Notable issues:
+ - DGA disabled in the EXA case.
+ - Backbuffer moves disabled in the EXA case.
+ - No textured XVideo.
+ - MMIO render acceleration is close but still has some issues.
+ - Memory pressure while using Composite is really troublesome with DRI
+ on.
+ This patch is based on an initial patch by Zack Rusin, with significant
+ work by Benjamin Herrenschmidt and myself.
+
+2005-09-11 Benjamin Herrenschmidt <anholt@FreeBSD.org>
+
+ reviewed by: anholt
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaGetPixmapSize),
+ (exaPixmapAllocArea), (exaDrawableIsOffscreen), (exaPrepareAccess),
+ (exaFinishAccess), (exaCopyNtoN), (exaSolidBoxClipped),
+ (exaImageGlyphBlt), (exaFillRegionSolid):
+ * programs/Xserver/hw/xfree86/exa/exa.h:
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h:
+ * programs/Xserver/hw/xfree86/exa/exaasync.c: (ExaCheckFillSpans),
+ (ExaCheckSetSpans), (ExaCheckPutImage), (ExaCheckCopyArea),
+ (ExaCheckCopyPlane), (ExaCheckPolyPoint), (ExaCheckPolylines),
+ (ExaCheckPolySegment), (ExaCheckPolyRectangle), (ExaCheckPolyArc),
+ (ExaCheckFillPolygon), (ExaCheckPolyFillRect),
+ (ExaCheckPolyFillArc), (ExaCheckImageGlyphBlt),
+ (ExaCheckPolyGlyphBlt), (ExaCheckPushPixels), (ExaCheckGetImage),
+ (ExaCheckGetSpans), (ExaCheckSaveAreas), (ExaCheckRestoreAreas),
+ (ExaCheckPaintWindow), (ExaCheckComposite):
+ * programs/Xserver/hw/xfree86/exa/exapict.c:
+ (exaTryDriverSolidFill):
+ Add a pair of hooks, PrepareAccess() and FinishAccess(), which get
+ called around CPU access to the framebuffer. This allows the hardware
+ to set up swappers to deal with endianness, or to tell EXA to move the
+ pixmap out to framebuffer if insufficient swappers are available (note:
+ must not fail on front buffer!).
+
+2005-09-11 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/exa/exapict.c:
+ Simplify life for EXA drivers by reducing some {Con,Dis}joint ops.
+
+2005-09-11 Dave Airlie <airlied@linux.ie>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONDRIAllocatePCIGARTTable):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONScreenInit):
+ Add support for allocating PCI GART table in framebuffer memory.
+ This is needed to support PCIE Radeons using a new DRM.
+
+2005-09-09 Ian Romanick <idr@us.ibm.com>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/HALlib/binding.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c:
+ (MGADRIBootstrapDMA):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ (MGAPreInit):
+ Clean up some warnings. Fix some '#ifdef USEMGAHAL' issues that had
+ caused the number of curl-braces to be unbalanced.
+
+2005-09-07 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/vfb/Imakefile:
+ * programs/Xserver/hw/vfb/Xvfb.man:
+ Remove some references to mfb/cfb support that is no longer there.
+
+2005-09-07 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * lib/GL/mesa/shader/grammar/Imakefile
+ * lib/GL/mesa/shader/grammar/Imakefile.inc
+ * lib/GL/mesa/shader/slang/Imakefile
+ * lib/GL/mesa/shader/slang/Imakefile.inc
+ Remaining fix for Mesa builds on systems that also build
+ unshared libs. (Alex Romosan, Matthieu Herrb).
+
+2005-09-07 Dave Airlie <airlied@linux.ie>
+
+ * lib/GL/mesa/shader/grammar/Imakefile.inc:
+ * lib/GL/mesa/shader/slang/Imakefile.inc:
+ Fix build bustage for Mesa (Alex Romosan)
+
+2005-09-07 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/fb/fbcompose.c:
+ Fix typo resulting in failure to swap between RGB/BGR properly.
+ (Stanislaw Skowronek)
+
+2005-09-06 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Fix DirectColor visual colormap issues at 16bpp in the i830 driver.
+
+2005-09-06 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Sync the accelerator before calling AdjustFrame to avoid lockups.
+
+2005-09-06 Dave Airlie <airlied@linux.ie>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_vip.c:
+ (RADEONVIP_read):
+ Handle VIP timeouts more gracefully -- impose a hard limit of 10ms on
+ waiting for VIP_BUSY so we don't lock up hard, spinning.
+
+2005-09-05 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/dix/colormap.c:
+ * programs/Xserver/dix/privates.c:
+ Initialise private arrays with calloc, rather than standard malloc.
+ (Benjamin Herrenschmidt)
+
+ * programs/Xserver/hw/xfree86/common/xf86cmap.c:
+ Fix tests for maximum number of colours when creating a colourmap, so a
+ 32-bit visual (e.g. ARGB) doesn't overflow an int when attempting to do
+ 1 << 32. (Benjamin Herrenschmidt)
+
+2005-09-04 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_priv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (VIAVidUpdateOverlay):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (viaInitVideo), (viaReputImage):
+ via: Responsiveness fix:
+ Don't update video overlay when not strictly necessary
+
+2005-09-04 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/Imakefile:
+ Minor XvMC hw lib build fix
+
+2005-09-02 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * registry:
+ Replace X.Org Group with X.Org Foundation
+ Update contact info for Sun & X.Org Foundation
+
+2005-09-02 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/fontconfig/Imakefile:
+ Only build fontconfig-def on Win32 & OS/2.
+
+2005-09-02 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/GL/mesa/shader/grammar/Imakefile.inc:
+ * lib/GL/mesa/shader/slang/Imakefile.inc:
+ Fix the build from the last Mesa import. Patch obtained from ajax.
+
+2005-09-01 Kristian Høgsberg <krh@redhat.com>
+
+ * include/extensions/XKBsrv.h:
+ * programs/Xserver/xkb/ddxList.c:
+ * programs/Xserver/xkb/ddxLoad.c:
+ * programs/Xserver/xkb/xkbInit.c: Teach xkb how to optionally run
+ xkbcomp from $bindir instead of $datadir/xkb.
+
+2005-08-31 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ (MouseCommonOptions):
+ Fix EmulateWheelTimeout Option. Spotted by Richard Neill, bug 4291
+
+2005-08-31 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/xkb/xkbInit.c:
+ * programs/Xserver/xkb/ddxLoad.c: Include xkb-config.h if we have
+ it so we pick up the paths defined there.
+
+2005-08-30 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sunLib.tmpl:
+ Add more shared library rev settings to match Solaris ABI.
+
+2005-08-30 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.h:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.c:
+ Save keyboard LED state on startup and restore on exit so
+ text console mode LEDs match text console mode state.
+ Move push of streams module earlier so it's loaded before
+ we start using kbd ioctls provided by the streams module.
+
+2005-08-29 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xwin/winmultiwindowshape.c
+ Fix off by one error (Colin Harrison)
+
+2005-08-29 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.h
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c
+ Fixes from Luc Verhaegen
+ https://bugs.freedesktop.org/attachment.cgi?id=3076
+
+2005-08-29 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaFillSpans),
+ (exaCopyNtoN), (exaPolyFillRect), (exaSolidBoxClipped),
+ (exaFillRegionSolid):
+ * programs/Xserver/hw/xfree86/exa/exapict.c:
+ (exaTryDriverComposite):
+ Remove existing broken maxX/maxY code for composite (results in infinite
+ loops, doesn't deal with failure, doesn't present the interface to
+ drivers that I expected) and instead replace it with a simple fallback
+ to software when coordinate limits could be violated. Act similarly in
+ other acceleration cases as well.
+
+ The solution I want to see (and intend to do soon) is to (when
+ necessary) create temporary pictures/pixmaps pointing towards the real
+ ones' bits, with the offsets adjusted, then render from/to those using
+ adjusted coordinates.
+
+2005-08-29 Eric Anholt <anholt@FreeBSD.org>
+
+ * fb/fbcompose.c:
+ More 0 -> NULL for pointers missed in previous commit to this file.
+
+2005-08-29 Eric Anholt <anholt@FreeBSD.org>
+
+ * fb/fbedgeimp.h:
+ Apply an xserver patch from cworth: Avoid buffer ovverrun when a
+ trapezoid's right edge is on a pixel boundary.
+
+2005-08-29 Eric Anholt <anholt@FreeBSD.org>
+
+ * fb/fbbltone.c: (fbBltOne):
+ * fb/fbcompose.c: (fetchProcForPicture), (fetchPixelProcForPicture),
+ (storeProcForPicture), (fbCompositeRect):
+ * fb/fbpict.c: (fbComposite):
+ Apply the xserver patch from vektor for bug #4208: Use NULL for pointers
+ instead of 0.
+
+2005-08-29 Dave Airlie <airlied@linux.ie>
+
+ * lib/XvMC/hw/i810/I810XvMC.c:
+ * lib/XvMC/hw/via/driDrawable.c:
+ Fix include paths for i810 XvMC add config.h to driDrawable.c
+
+2005-08-29 Dave Airlie <airlied@linux.ie>
+
+ * lib/XvMC/hw/via/driDrawable.c:
+ * lib/XvMC/hw/via/viaXvMCPriv.h:
+ Fix include paths for via XvMC driver.
+
+
+2005-08-28 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atimode.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiregs.h:
+ Bug #1109: Fix VGA init on Rage Mobility 7500 (Marc Le France)
+
+ * lib/XvMC/Imakefile:
+ Bug #3422: Don't bother building XvMC drivers on anything but x86 and
+ amd64.
+
+ * programs/xfd/xfd.c:
+ Bug #3424: Xft and high-index glyph fixes for xfd (James Cloos)
+
+ * programs/Xserver/render/render.c:
+ Bug #3974: Fix unaligned memory access on LP64. (Matthieu Herrb)
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ Bug #4148: Bump required DRM version for r300 to 1.17.
+
+2005-08-27 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageRestoreAccelState), (SavageInitAccel):
+ - re-add RestoreAccelState() to make XAA happy for dualhead
+
+2005-08-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/lbxproxy/di/cmap.c:
+ * programs/lbxproxy/di/props.c:
+ * programs/lbxproxy/include/misc.h:
+ * programs/lbxproxy/os/io.c:
+ Fixes for running X Test Suite via lbxproxy:
+ - Failure for Xproto/GetProperty [Sun bug #4432077]
+ - lbxproxy crash on Xlib5/XGetWindowProperty [Sun bug #4416964]
+ - lbxproxy crash on Xlib7/XCreateColormap-10 [Sun bug #4431077]
+ - lbxproxy crash on Xproto tests for bad length [Sun bug #4414232]
+ (Derek Wang - Sun Microsystems)
+
+2005-08-26 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_ia64.c:
+ Bug #4160: Fix Altix kernel version check.
+
+ * programs/Xserver/hw/xfree86/exa/exa.c:
+ Add diagnostic messages for exaDriverInit failure cases.
+
+2005-08-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ #include "extensions/dpms.h" -> <X11/extensions/dpms.h>
+
+2005-08-25 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ Accept 'Enabled' and 'Disabled' for Extensions section (Ubuntu #990).
+
+ * config/util/mdepend.cpp:
+ Make makedepend excruciatingly safe (Debian #011).
+
+ * lib/X11/StrKeysym.c:
+ * lib/X11/ErrDes.c:
+ Define ERRORDB/KEYSYMDB to XERRORDB/XKEYSYMDB if the former is
+ undefined but the latter is. (Gerte Hoogewerf)
+
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ Only use vgahw symbols if we're building vgahw for this architecture.
+ TODO: Fix this for the modular tree (maybe an unconditional yes?).
+ Define that we're using a DPMS server and include DPMS headers.
+ (Debian #024b)
+
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.c:
+ Work around ATI expansion ROM problem on IA64 caused by prototype HP
+ McKinley systems. (Bdale Garbee, Debian #452)
+
+ * programs/Xserver/hw/xfree86/loader/aout.h:
+ Get prototype for ntohl from SuSv3-compliant location, fixing it for
+ systems which define ntohl as a macro only, not both macro and function.
+ (Debian #076)
+
+ * progams/Xserver/hw/xfree86/os-support/bus/Imakefile:
+ Build sparcPci.c as well as linuxPci.c on Linux/SPARC, as it's required
+ for things like sparcPciToPciBridge. (Debian #102)
+
+ * programs/Xserver/hw/xfree86/loader/loader.c:
+ Don't assume that all sun4m CPUs support muldiv; the Cypress CPU, which
+ implements the 4m MMU but only v7 instructions, does not. (Debian #100).
+
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c:
+ Spit out an error when there is no valid FB device, instead of just
+ failing silently. (Debian #070)
+
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:
+ Numerous spelling and grammar fixes. (Branden Robinson, Debian #099n)
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c:
+ Better error message on failure to set iopl. (Debian #021)
+
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.h:
+ Wrap afb calls in #ifdef USE_AFB. (Debian #015)
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ Fix 'ugly' warning in r128. (Branden Robinson, Debian #069)
+
+ * programs/Xserver/hw/xfree86/input/elographics/elographics.man:
+ Update elographics manpage to list supported options. (Debian #075)
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.man:
+ Wrapping, escaped dashes, and other TeX syntax fixes throughout the
+ manpage. (Branden Robinson, Debian #047)
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ Extend Genius NetMouse support. (Debian #040)
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_pci.c:
+ Only open /proc/bus/pci/devices once. (Ubuntu #029)
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c:
+ Undo rate/period change after function body, so the damage doesn't leak
+ into other functions. (Debian #050)
+
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c:
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h:
+ Subvert SIGUSR2 to reload all input devices. (Ubuntu #020)
+
+2005-08-25 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONValidateMergeModes), (RADEONPreInitModes):
+ - fix pitch increment. (Aapo Tahkola, Roland Scheidegger)
+
+2005-08-25 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/dix/events.c: (XineramaChangeToCursor),
+ (ChangeToCursor), (DefineInitialRootWindow):
+ Fix a use-after-free of cursor data by refcounting for the
+ sprite.current reference. The particular path seen was XFixes'
+ ReplaceCursor() resulting in the sprite.current being freed, but then it
+ getting accessed during the ChangeToCursor() that happens as a result of
+ WindowHasNewCursor().
+
+2005-08-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ * programs/Xserver/hw/xfree86/xf86cfg/text-mode.c:
+ Use system curses library on Solaris for xorgcfg text mode.
+
+2005-08-23 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c:
+ Blacklist Radeon M300 from multimedia I2C code.
+ Handle I2C timeouts more gracefully -- impose a hard limit of 10ms on
+ waiting for I2C_GO so we don't lock up hard, spinning.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_bios.c:
+ Fix bug in Radeon connector table parsing -- parse all entries, not just
+ the first. (Ben Herrenschmidt)
+
+2005-08-24 Eric Anholt <anholt@FreeBSD.org>
+
+ reviewed by: keithp
+
+ * doc/specs/Xserver/ddx.tbl.ms:
+ Bugzilla #1045: Fix the DDX documentation to describe what is the
+ defacto current policy on GC wrappers, which is more liberal than the
+ previous policy, and hopefully more clear as well.
+
+2005-08-24 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaCopyNtoN):
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h:
+ * programs/Xserver/hw/xfree86/exa/exaasync.c:
+ Bugzilla #4226: Change the pixmap migration strategy for the CopyNtoN
+ case. Now, if either source or dest were in framebuffer, try to get
+ both there, but prefer system memory for both otherwise. Required
+ making exaasync.c go through the try-acceleration path. This
+ significantly improves window resizing under composite, because
+ previously the pattern of creating a new pixmap and copying default
+ contents from the screen caused a fallback every time due to the new
+ destination pixmap being in system memory.
+
+2005-08-24 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exaoffscreen.c:
+ (exaOffscreenAlloc):
+ Fix a bug where NULL could be dereferenced during the pixmap kick-out
+ process by referencing the correct offscreen area. Also drive-by the
+ comments related to these for clarity.
+
+2005-08-24 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/sis/sis300_accel.c:
+ (SiSPrepareSolid), (SiSPrepareCopy):
+ * programs/Xserver/hw/xfree86/drivers/sis/sis310_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_accel.c:
+ (SiSPrepareSolid), (SiSPrepareCopy):
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaGetPixmapOffset),
+ (exaGetPixmapPitch):
+ * programs/Xserver/hw/xfree86/exa/exa.h:
+ Bugzilla #4090: Introduce getters for pixmap pitch and offset, to
+ simplify/clarify it for driver writers who probably don't want to know
+ what pPixmap->devPrivate.ptr or pPixmap->devKind mean. Converts the
+ sis driver to use them, and bumps the EXA module minor version.
+
+2005-08-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_agp.c:
+ Fill in xf86DeallocateGARTMemory stub based on lnx_agp.c version.
+ Add include of xorg-config.h for modular builds.
+
+2005-08-24 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaPixmapUseScreen),
+ (exaPixmapUseMemory):
+ Bugzilla #4089: Fix crashes in !EXA_OFFSCREEN_PIXMAPS case by not trying
+ to do migration when the EXA pixmap private is NULL.
+
+2005-08-24 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c: Don't export
+ non-standard symbols generated GCCs stack protection feature
+ (__guard, __stack_smash_handler).
+
+Wed Aug 24 15:29:50 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/font/Type1/module/type1mod.c: Conditionally include
+ dix-config.h
+
+ * lib/font/FreeType/module/ftmodule.c: Conditionally include
+ dix-config.h
+
+2005-08-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/GLw/Imakefile:
+ Allow platforms to specify SharedGLwReqs to override REQUIREDLIBS.
+
+ * config/cf/sunLib.tmpl:
+ Set SharedGLwReqs for Solaris to include system Motif library.
+
+2005-08-24 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/GL/windows/glwrap.c
+ Wrap PointParameteriNV & PointParameterivNV for Windows builds.
+
+2005-08-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Display more friendly mouse protocol names.
+ Enable mouse wheel mapping by default.
+
+2005-08-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86AutoConfig.c:
+ Check for getconfig in GETCONFIG_DIR if it's not found in module dir.
+
+2005-08-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Set Solaris linker flags to include ld mapfiles to mark various
+ sections non-executable for better security and aligned to allow
+ some performance tuning options, like large page-size mappings.
+
+2005-08-23 Dave Airlie <airlied@linux.ie>
+
+ Fix remaining drm -core vs no -core include paths
+
+ * lib/GL/apple/Imakefile:
+ * lib/GL/dri/drm/Imakefile:
+ * lib/GL/glx/Imakefile:
+ * lib/XvMC/hw/i810/Imakefile:
+ * lib/XvMC/hw/via/unichrome/Imakefile:
+ * lib/XvMC/hw/via/unichromeProA/Imakefile:
+ * programs/Xserver/GL/dri/Imakefile:
+ * programs/Xserver/GL/mesa/X/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/glint/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/i810/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/mga/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/savage/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/sis/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/via/Imakefile:
+ * programs/Xserver/hw/xfree86/dummylib/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bsd/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bsd/drm/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/lynxos/Imakefile:
+
+2005-08-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/Imakefile:
+ * programs/Xserver/hw/xfree86/xf86cfg/XOrgCfg.cpp:
+ Rename app-defaults entries from xf86cfg to xorgcfg to match
+ name passed to XtAppInitialize. (Henry Zhao, Sun Microsystems)
+ Also, display vendor version instead of 4.0 for server version.
+
+2005-08-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ User message cleanups/updates for modern configurations.
+
+2005-08-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/xkb/ddxLoad.c:
+ If MAKE_XKM_OUTPUT_DIR is defined, call trans_mkdir to create
+ directory if it doesn't already exist. (ported from Solaris
+ Xsun bug #5039004)
+
+ * config/cf/sun.cf:
+ When BuildLikeSun is set, define MAKE_XKM_OUTPUT_DIR and set the
+ xkb output directory to /var/run/xkb.
+
+2005-08-22 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/int10/helper_exec.c:
+ bugzilla #2880 (https://bugs.freedesktop.org/show_bug.cgi?id=2880)
+ attachment #2987 (https://bugs.freedesktop.org/attachment.cgi?id=2987)
+ Use system method to access PCI config space for inb and inw
+ in addition to inl (Olivier Baudron and Kevin Martin).
+
+2005-08-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/xtrans/Imakefile:
+ Make xtrans C files available via #include <X11/xtrans/...> when
+ building to allow same include paths in monolithic & modular builds
+
+2005-08-22 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_acpi.c
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
+ * programs/Xserver/hw/xfree86/os-support/linux/Imakefile
+ Add basic ACPI Linux support so that events can be passed to the driver.
+ (Alan Hourihane)
+
+2005-08-22 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/mi/midispcur.c:
+ * programs/Xserver/mi/mipointer.c:
+ * programs/Xserver/mi/misprite.c:
+ Fix inclusion order of dix-config.h, so _XSERVER64 gets defined before
+ X.h or Xdefs.h get included. (Jrg Billeter)
+
+2005-08-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_bios.c
+ #include "Xmd.h" -> <X11/Xmd.h>
+
+2005-08-19 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/xtrans/Xtranssock.c:
+ Bugzilla #3957 <https://bugs.freedesktop.org/show_bug.cgi?id=3957>
+ Patch #2924 <https://bugs.freedesktop.org/attachment.cgi?id=2924>
+ xtrans changes for AIX (Dan McNichol, IBM)
+
+ * lib/xtrans/Xtranslcl.c:
+ Bugzilla #3957 <https://bugs.freedesktop.org/show_bug.cgi?id=3957>
+ Patch #2925 <https://bugs.freedesktop.org/attachment.cgi?id=2925>
+ xtrans changes for AIX (Dan McNichol, IBM)
+
+2005-08-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/greeter/greet.c:
+ Add #ifdef HAVE_CONFIG_H/#include "config.h" since "dm.h"
+ is included too late.
+
+2005-08-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/sessreg.c:
+ Undo regression in checking for lastlog support in monolithic
+ builds (reported by Dan McNichol of IBM)
+
+2005-08-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/Imake.rules:
+ Bugzilla #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2322 <https://bugs.freedesktop.org/attachment.cgi?id=2322>
+ Fix "make -n install" failure (Peter Breitenlohner)
+
+2005-08-17 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/XOrgCfg.cpp
+ Bugzilla #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2331 <https://bugs.freedesktop.org/attachment.cgi?id=2331>
+ Lines ending in <backslash><space> break with cpp from gcc >= 3.3
+ (Peter Breitenlohner)
+
+2005-08-17 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xconsole/xconsole.c:
+ Bugzilla #4130 <https://bugs.freedesktop.org/show_bug.cgi?id=4130>
+ xconsole: non-ascii characters don't show up (Samuel Thibault)
+
+Wed Aug 17 14:50:58 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/Xext/xprint.c: Include
+ <X11/extensions/Print{,str}.h> instead of "Print{,str}.h"
+
+ * programs/Xserver/Xprint/Init.c: Include <X11/fonts/fontstruct.h>
+ isntead of "fonts/fontstruct.h"
+
+Wed Aug 17 13:13:00 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c: Make asm labels local. Bug 4073,
+ patch from Diego Petten�
+
+2005-08-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/X11/XASCmap.man:
+ * doc/man/X11/XASHints.man:
+ * doc/man/X11/XAWMHints.man:
+ * doc/man/X11/XClrArea.man:
+ * doc/man/X11/XConfWin.man:
+ * doc/man/X11/XCopyArea.man:
+ * doc/man/X11/XCreWin.man:
+ * doc/man/X11/XDrArc.man:
+ * doc/man/X11/XDrIStr.man:
+ * doc/man/X11/XDrString.man:
+ * doc/man/X11/XDrText.man:
+ * doc/man/X11/XERegion.man:
+ * doc/man/X11/XFillRect.man:
+ * doc/man/X11/XQTree.man:
+ * doc/man/X11/XStBytes.man:
+ * doc/man/X11/XcmsLaQMC.man:
+ * doc/man/X11/XcmsLuQMC.man:
+ * doc/man/X11/XcmsTQMC.man:
+ Fix more broken multi-line .ds macros. Remove extraneous ;'s .
+
+2005-08-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/X11/XPutImage.man:
+ Bugzilla #4112 <https://bugs.freedesktop.org/show_bug.cgi?id=4112>
+ Patch #2687 <https://bugs.freedesktop.org/attachment.cgi?id=2897>
+ Fix multi-line macros in XPutImage man page. (Debian bug #323210,
+ fix by David Mart�ez Moreno)
+
+2005-08-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/Imakefile:
+ * programs/xdm/xdm.man:
+ Convert cpp substitutions from __projectroot__/... to XDMDIR
+ and BINDIR so they get correct pathnames in both modular &
+ monolithic trees.
+
+2005-08-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbdEv.c:
+ Convert sunPostKbdEvent to use xf86ProcessAction like
+ xf86PostKbdEvent.
+
+2005-08-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.man:
+ * programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml:
+ Set ZAxisMapping default to "4 5 6 7".
+
+2005-08-14 Charlie & <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/sis/sis300_accel.c:
+ (SiS300AccelInit):
+ * programs/Xserver/hw/xfree86/drivers/sis/sis310_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_accel.c:
+ (SiSAccelInit):
+ * programs/Xserver/hw/xfree86/exa/exa.c: (exaPixmapAllocArea):
+ * programs/Xserver/hw/xfree86/exa/exa.h:
+ * programs/Xserver/hw/xfree86/exa/exaoffscreen.c:
+ (exaOffscreenAlloc):
+ - Fix the exa pixmap offset/pitch alignment to deal with non-POT
+ alignment requirements. MGA, notably, uses a multiple of 3 in some
+ cases.
+ - Rename the pixmap offset/pitch alignment fields to more clearly state
+ their meaning.
+
+2005-08-13 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ (VIAAdjustFrame):
+ * programs/Xserver/hw/xfree86/drivers/via/via_priv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (VIAVidUpdateOverlay):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (viaExitVideo), (RegionsEqual), (viaReputImage),
+ (viaSetupAdaptors), (VIAVidAdjustFrame):
+ Bugzilla #3804: Fix via Xv panning.
+
+2005-08-13 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ (VIAEnterVT):
+ Fix via segfault on EnterVT when DRI is not enabled.
+ (Joris van Rantwijk)
+
+2005-08-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/proxymngr/pmint.h:
+ Add #ifdef HAVE_CONFIG_H/#include "xconfig.h" for modularization.
+
+2005-08-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/ico/ico.c:
+ Update for modularization: include <config.h> & <X11/XlibConf.h>,
+ use XTHREADS define from XlibConf.h to enable multithreading
+ Also ansify icoFatal prototype to clear Sun cc warnings.
+
+2005-08-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/Imakefile:
+ Add LintTarget()
+
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_io.c:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.c:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.h:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbdEv.c:
+ Bugzilla #1068 <https://bugs.freedesktop.org/show_bug.cgi?id=1068>
+ Port Solaris keyboard code to work with kbd driver.
+
+ Also incorporated "audio bell" feature from Xsun keyboard DDX
+ to play bell tones via /dev/audio (specified via
+ Option "BellDevice" "/dev/audio" in keyboard device options).
+
+Fri Aug 12 14:49:24 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbcompose.c (fbFetchTransformed): Apply
+ another patch from Billy Biggs to fix precision issues.
+
+Fri Aug 12 14:45:54 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbpict.h: Fix up multiplications based on
+ patch by Billy Biggs. Part of bug 3945.
+
+Fri Aug 12 14:29:09 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbcompose.c: Apply patch from Billy Biggs
+ that fixes rounding problems with division. Part of bug 3945.
+
+Fri Aug 12 10:45:01 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c (pix_multiply): Make this function
+ compute the same results as the fbByteMul macro.
+
+2005-08-12 Ian Romanick <idr@us.ibm.com>
+
+ * lib/GL/mesa/drivers/dri/common/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/ffb/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/gamma/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/i810/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/i915/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/mach64/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/mga/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/r128/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/r200/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/radeon/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/savage/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/sis/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/tdfx/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/unichrome/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/via/Imakefile.inc:
+ Use '$(DRMSRCDIR)/shared-core' instead of '$(DRMSRCDIR)/shared' for
+ DRM includes. This matches the way drivers are built in the Mesa
+ tree and fixes a build problem in the Savage driver.
+
+ * programs/Xserver/GL/glx/g_disptab_EXT.c:
+ * programs/Xserver/GL/glx/g_disptab_EXT.h:
+ * programs/Xserver/GL/glx/g_render.c:
+ * programs/Xserver/GL/glx/g_renderswap.c:
+ (__glXDispSwap_PointParameterfvARB):
+ * programs/Xserver/GL/glx/impsize.h:
+ * programs/Xserver/GL/glx/rensize.c:
+ (__glXPointParameterfvARBReqSize):
+ Convert uses of __glPointParameterfvARB_size to
+ __glPointParameterfvEXT_size and uses of __glPointParameteriv_size
+ to __glPointParameterivNV_size. This eliminates the need to hand-edit
+ indirect_size.c after it is generated.
+
+2005-08-11 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c (InitInput):
+ Fix segfault when "kbd" fails to load and "keyboard" driver is not
+ configured.
+
+2005-08-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/XvMC/hw/via/unichromeProA/viaLowLevelPro.c:
+ (updateLowLevelBuf):
+ Bugzilla #4013: Correct a command size (structure size instead of
+ pointer size) in ALLOCMEM ioctl. It matters on BSD since the copyin/out
+ occurs in generic code. On linux, the size value is ignored and the
+ fixed size in the driver ioctl code is used.
+
+2005-08-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memory.c:
+ (VIAAllocLinear):
+ Bugzilla #4012
+ Use drmCommandWriteRead for the read-write ALLOCMEM ioctl, instead of
+ drmCommandWrite. This matters on BSD because the copyin/out occurs in
+ generic kernel layers. Doesn't matter on linux because the read/write
+ bits are ignored by the linux DRM layer.
+
+Thu Aug 11 11:43:32 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/hw/xfree86/xaa/xaaTEText.c
+ (XAAGlyphBltTEColorExpansion): Make sure we don't
+ crash on glyphs with NULL bits. Bug 659.
+
+2005-08-10 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/sessreg.c:
+ Merge in utmpx code from Solaris sessreg.
+ Add #ifdefs for autoconf defines.
+
+Wed Aug 10 16:17:38 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c (USE_SSE): Add back non-SSE
+ implementations. Define USE_SSE if the CPU is amd64/x86-64
+
+2005-08-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/loader/loadmod.c
+ Bug #3950 <https://bugs.freedesktop.org/show_bug.cgi?id=3950>
+ Xorg prints version numbers in wrong format for modules
+ compiled for Xorg 6.99 & later (Adam Jackson & Alan Coopersmith)
+
+2005-08-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ - Add missing SolarisABIFlag to AMD64 ToolkitStringsABIOptions
+ - Add -z combreloc to default linker flags on Solaris
+ - Add -B direct to default program link flags on Solaris
+
+2005-08-08 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig):
+ - Radeon XPRESS chips are actually RV3xx based.
+
+2005-08-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/XKB-Config.sgml:
+ Bug #4017 <https://bugs.freedesktop.org/show_bug.cgi?id=4017>
+ Grammatical & typo fixes (reported as Debian bugs #315555 & #321946,
+ by Daniel Hulme & Adrian von Bidder, reported upstream to X.org
+ by David Mart�ez Moreno, additional changes by myself.)
+
+2005-08-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/general/Standards.man:
+ Bug #4018 <https://bugs.freedesktop.org/show_bug.cgi?id=4018>
+ Patch #3300 <https://bugs.freedesktop.org/attachment.cgi?id=3300>
+ Typo fix (Debian bug #320545 - A Costa, David Mart�ez Moreno)
+
+Mon Aug 8 13:39:45 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h: Conditionally include
+ xorg-config.h
+
+2005-08-07 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+
+ Update warning about DRI support on R300 and later cards.
+
+2005-08-07 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+
+ Properly configure fbLocation and related registers for
+ R300 cards. (Dave Airlie)
+
+2005-08-06 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONGetMergedFBOptions):
+ - missing line in mergedfb option parsing. spotted by
+ Christoph Bauer
+
+2005-08-06 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ Merge in patch release RC handling code from 6.8.2 (Kevin Martin)
+
+2005-08-06 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSubsequentSolidBresenhamLine):
+ - somehow I missed Bresenham lines when I fixed crtc2 accel.
+ make sure to send the new offset there as well.
+
+2005-08-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_vid.c:
+ * programs/Xserver/include/servermd.h:
+ Solaris build fixes needed for modular builds
+
+2005-08-05 Ian Romanick <idr@us.ibm.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:
+ (ATIScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810ScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c:
+ (TDFXScreenInit):
+ Bug #927: <https://bugs.freedesktop.org/show_bug.cgi?id=927>
+ I have resolved this by making all the "Direct rendering disabled"
+ messages X_WARNING and all the "Direct rendering enabled" messages
+ X_INFO.
+
+2005-08-05 Ian Romanick <idr@us.ibm.com>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ Bug #3676 <https://bugs.freedesktop.org/show_bug.cgi?id=3676>
+ Now that Mesa has been merged into the tree, set the default value
+ for OldDmaInit to false.
+
+2005-08-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xterm/*:
+ Update to Xterm patch #204 (Thomas Dickey)
+
+2005-08-04 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c:
+ Bug #3987 <https://bugs.freedesktop.org/show_bug.cgi?id=3987>
+ Patch #3264 <https://bugs.freedesktop.org/attachment.cgi?id=3264>
+ Workaround for 512 Meg video cards (can only map 256 Meg of it).
+ (Mark Vojkovich)
+
+Thu Aug 4 16:08:00 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c: Make the fbCompose paths use the
+ existing inline functions instead of macros. Various other
+ cleanups.
+
+ * programs/Xserver/fb/fbmmx.h: Remove macro definitions, move
+ typedef to fbmmx.c
+
+2005-08-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * nls/locale.alias
+ Bug #1887 <https://bugs.freedesktop.org/show_bug.cgi?id=1887>
+ Patch #3005 <https://bugs.freedesktop.org/attachment.cgi?id=3005>
+ libX11 locale defs severely adrift from glibc: adding new aliases
+ (From Debian via Nathanael Nerode)
+
+2005-08-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * nls/locale.alias
+ Bug #1887 <https://bugs.freedesktop.org/show_bug.cgi?id=1887>
+ Patch #3002 <https://bugs.freedesktop.org/attachment.cgi?id=3002>
+ libX11 locale defs severely adrift from glibc: locales bugfix for bs_BA
+ (From Debian via Nathanael Nerode)
+
+2005-08-03 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSetGBD_M7), (SavageSetGBD_PM), (SavageInitAccel),
+ (SavageSetupForScreenToScreenCopy),
+ (SavageSubsequentScreenToScreenCopy), (SavageSetupForSolidFill),
+ (SavageSubsequentSolidFillRect),
+ (SavageSetupForCPUToScreenColorExpandFill),
+ (SavageSubsequentScanlineCPUToScreenColorExpandFill),
+ (SavageSetupForMono8x8PatternFill),
+ (SavageSubsequentMono8x8PatternFillRect):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_image.c:
+ (SavageWriteBitmapCPUToScreenColorExpand),
+ (SavageSetupForImageWrite), (SavageSubsequentImageWriteRect):
+ - fix accel problems on crtc2. It seems the GBD doesn't always update
+ correctly resulting in incorrect stride and/or offset. Switch the
+ accel code to use the PBD instead and send the new offset with each
+ command. Because the offset is always up to date, we no longer need
+ SavageRestoreAccelState().
+
+2005-08-01 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/fb/fbpict.c:
+ Bugzilla #3566 <https://bugs.freedesktop.org/show_bug.cgi?id=3566>
+ Patch #2906 <https://bugs.freedesktop.org/attachment.cgi?id=2906>
+ Fix for RENDER, repeating pictures and offscreen memory (Owen Taylor)
+
+2005-08-01 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ Bug #3739: Fail soft on unknown extension string.
+
+2005-08-01 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/GL/glx/Imakefile:
+ Restore dispatch.c for platforms not using asm versions.
+
+ * lib/GL/mesa/drivers/osmesa/Imakefile:
+ Add shader grammar & slang Imakefile.inc's
+ Use SharedOSMesaReqs from per-OS Imake .cf's if defined
+
+Fri Jul 29 17:20:53 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c (pix_multiply): Fix rounding bug.
+
+2005-07-31 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/imake/imakemdep.h:
+ Pass through __BUILTIN_VA_STRUCT and __BUILTIN_VA_ARG_INCR defines
+ in makedepend so it doesn't issue errors when source files include
+ <varargs.h> or <stdarg.h> on Solaris 10.
+
+2005-07-31 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/xorg.cf:
+ * lib/GL/glx/Imakefile:
+ * lib/GL/mesa/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/common/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/ffb/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/gamma/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/i810/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/i915/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/mach64/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/mga/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/r128/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/r200/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/radeon/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/savage/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/sis/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/tdfx/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/unichrome/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/via/Imakefile.inc:
+ * lib/GL/mesa/drivers/x11/Imakefile.inc:
+ * lib/GL/mesa/main/Imakefile.inc:
+ * lib/GL/mesa/shader/Imakefile:
+ * lib/GL/mesa/shader/Imakefile.inc:
+ * lib/GL/mesa/shader/grammar/Imakefile:
+ * lib/GL/mesa/shader/grammar/Imakefile.inc:
+ * lib/GL/mesa/shader/slang/Imakefile:
+ * lib/GL/mesa/shader/slang/Imakefile.inc:
+ * lib/GL/mesa/shader/slang/library/Imakefile:
+ * lib/GL/mesa/shader/slang/library/Imakefile.inc:
+ * lib/GL/mesa/swrast/Imakefile.inc:
+ * lib/GL/mesa/tnl/Imakefile.inc:
+ * programs/Xserver/GL/glx/Imakefile:
+ * programs/Xserver/GL/mesa/GLcore/Imakefile:
+ * programs/Xserver/GL/mesa/shader/Imakefile:
+ * programs/Xserver/GL/mesa/shader/grammar/Imakefile:
+ * programs/Xserver/GL/mesa/shader/slang/Imakefile:
+ * programs/Xserver/GL/mesa/shader/slang/library/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/atistruct.h:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis.h:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.h:
+ Post-merge fixups:
+ - Disable building the gamma driver
+ - Fix numerous Imakefiles to get header paths and subdirs right
+ - Symlink client-side GLX lib source from Mesa
+ - Add new shader subdirs to the Mesa core build
+ - Tweak the DDX drivers to not ask for "xf86dri.h"; they don't need
+ it, since they don't generate protocol, and it was breaking the
+ build.
+
+2005-07-31 Adam Jackson <ajax@freedesktop.org>
+
+ * extras/Mesa/*:
+ Import Mesa 6.3.1.
+
+2005-07-31 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/GL/glx/*.[ch]:
+ Remove old GLX client lib in prep for Mesa 6.3.1 merge.
+
+2005-07-30 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/lbxutil/lbx_zlib/lbx_zlib.h:
+ * lib/lbxutil/delta/lbxdelta.c:
+ Add prototypes of Xalloc/free functions.
+
+ * lib/X11/Imakefile:
+ Export ImUtil.h to match modular tree install.
+
+ * include/Xosdefs.h:
+ Define SVR4 to 1 to avoid warning about redefining to different values.
+
+ * lib/Xext/XShm.c:
+ * programs/xsm/misc.c:
+ * programs/xgc/lex.l:
+ * programs/twm/menus.c:
+ Include missing headers to clear more compiler warnings.
+
+2005-07-30 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/font/builtins/fpe.c:
+ * lib/font/builtins/render.c:
+ * lib/lbxutil/delta/lbxdelta.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/fi1236.c:
+ Clear compiler warnings. (Stefan Dirsch)
+
+2005-07-29 Ian Romanick <idr@us.ibm.com>
+
+ * lib/GL/mesa/x86/Imakefile:
+ * lib/X11/Imakefile:
+ * lib/lbxutil/image/Imakefile:
+
+ Fix problems with cross-compiles. If building for PowerPC on
+ x86, archictecture-specific flags, such as -mcpu=power5, set in
+ DefaultGcc2PpcOpt will mistakenly be used in certain
+ circumstances to build programs to be run on the host.
+
+2005-07-29 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml:
+ Bugzilla #3916 (https://bugs.freedesktop.org/show_bug.cgi?id=3916)
+ Fix broken link to comp.fonts FAQ (reported by Siward de Groot)
+
+2005-07-29 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONSetFBLocation):
+ bugzilla #3911 (https://bugs.freedesktop.org/show_bug.cgi?id=3911)
+ attachment #3191 (http://bugs.freedesktop.org/attachment.cgi?id=3191)
+ Disable bus mastering while updating MC_FB_LOCATION and friends to
+ prevent the X server from hanging on startup every now and then
+ under some circumstances. (ATI Technologies Inc.)
+
+2005-07-29 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/makedepend/def.h:
+ Update #includes to use <X11/*.h> for modularization.
+
+2005-07-29 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (xf86PrintBanner):
+ Fix code to handle printing 7.0 release candidates properly.
+
+2005-07-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xman/vendor.h (SYSMANPATH):
+ Set default man path for Solaris.
+
+Thu Jul 28 18:29:06 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/xfs/difs/fonts.c (set_font_path_elements): Fix double
+ free when there no valid paths.
+
+2005-07-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_mouse.c:
+ Rework wrapping of common mouse driver to not require mousePriv.h,
+ so that modular tree xserver can be built on Solaris.
+ Wrap more ioctls in SYSCALL() to restart on signals.
+
+2005-07-27 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/Xext/panoramiX.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxcmds.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxext.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxscreens.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxsingle.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxswap.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxvendor.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxvisuals.c:
+ Add #include <dmx-config.h> for building dmx/glxProxy in the
+ modular tree.
+
+2005-07-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ * programs/xload/Imakefile:
+ * programs/xload/get_load.c:
+ Switch xload on Solaris from libkvm to libkstat so it works with
+ both 32-bit and 64-bit kernels, and without group kmem.
+ Add #include "config.h" for modularization
+
+2005-07-27 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/xconsole/xconsole.c:
+ Fix build-breakage in xconsole on AIX caused by removal of ptyx.h
+ definitions. (Dan McNichol)
+
+2005-07-26 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i810.h
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_dri.h
+ Bump the DDX version to 1.4.0 to indicate the removal of drmAddress.
+ Thus allowing 32/64bit clients to cohabit.
+
+2005-07-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/xtrans/Xtransutil.c:
+ * programs/iceauth/iceauth.h:
+ * programs/iceauth/process.c:
+ * programs/lbxproxy/di/utils.c:
+ * programs/lbxproxy/include/util.h:
+ * programs/x11perf/x11perf.c:
+ * programs/xinit/xinit.c:
+ Add config.h includes for modularization
+ Use RETSIGTYPE if defined by autoconf in addition to Imake's
+ SIGNALRETURNSINT.
+ Use HAVE_WORKING_VFORK if defined by autoconf in addition to
+ Imake's HAS_VFORK
+
+2005-07-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xauth/gethost.c:
+ * programs/xauth/parsedpy.c:
+ * programs/xauth/process.c:
+ * programs/xauth/xauth.c:
+ Add config.h includes for modularization
+ Use RETSIGTYPE if defined by autoconf in addition to Imake's
+ SIGNALRETURNSINT.
+
+2005-07-26 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+ Bug #3850: <https://bugs.freedesktop.org/show_bug.cgi?id=3850>
+ Fix non-DRI builds.
+
+2005-07-25 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/xinit/startx.cpp:
+ Bug #3860: Avoid a bashism. (Diego Pettenò)
+
+2005-07-25 Ian Romanick <idr@us.ibm.com>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_bios.c:
+ (mga_initialize_bios_values), (mga_parse_bios_ver_3),
+ (mga_parse_bios_ver_4), (mga_parse_bios_ver_5),
+ (mga_read_and_process_bios):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dacG.c:
+ (MGAGCalcClock):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c:
+ (MGADRIScreenInit):
+
+ PInS data on later cards (G200 and later) contains information
+ about the physical bus used for the card. This allows
+ accurate detection of PCI cards that use a PCI-to-PCI bridge
+ with an AGP chip.
+
+ Correctly disable DRI on PCI cards used with pre-3.2 DRM.
+ Previously the test was performed based on PCI ID (see above
+ for why this is wrong) and was done *before* the DRM version
+ was known.
+
+ Bug #3759: <https://bugs.freedesktop.org/show_bug.cgi?id=3759>
+ Correctly determine the PLL reference frequency from the PInS
+ data. Previously the wrong bit was tested. Blame the dumb
+ programmer that used cut-and-paste (that would be me).
+
+2005-07-25 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/extensions/Printstr.h:
+ #include "fontstruct.h" -> <X11/fonts/fontstruct.h> for modularization
+ (Drew Parsons)
+
+2005-07-25 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/input/evdev/evdev.c
+ (EvdevReadInput): Handle BTN_TASK too (#3859).
+
+2005-07-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_agp.c:
+ Add xf86DeallocateGARTMemory stub so that Xorg can be built on Solaris
+ again.
+
+2005-07-24 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaGetMemoryBandwidth), (ViaModePrimaryVGA):
+
+ Fix two typos in mode setting rework (still in unichrome.sf.net CVS).
+ - Wrong KM400A version when checking bandwidth.
+ (first reported by Tom Huckstep on #xorg - closes #3858)
+ - Cut-n-paste error when checking mode->Flags for sync polarity.
+
+2005-07-23 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/X11/Imakefile:
+ * lib/X11/PolyReg.c:
+ * lib/X11/Region.c:
+ * lib/X11/Xregion.h:
+ * lib/Xext/XShape.c:
+ * lib/Xrender/Picture.c
+ Change region.h to Xregion.h and modify internal references to
+ include <X11/Xregion.h>.
+
+2005-07-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/rgb/Imakefile:
+ Don't link in -lucb on Solaris
+ * programs/rgb/rgb.c:
+ * programs/rgb/showrgb.c:
+ #ifdef HAVE_CONFIG_H/#include "config.h" for modularization
+
+2005-07-22 Daniel Stone <daniel@freedesktop.org>
+
+ * include/Imakefile:
+ * include/Xpoll.h.in:
+ * include/Xos.h:
+ Turn Xpoll.h into a generated file. In the modular tree, substitute
+ in whichever of fds_bits or __fds_bits is being used for the member
+ of fd_set on the system; in the monolithic tree, substitute in
+ fds_bits unconditionally, as that's the way it was before thanks to
+ _XOPEN_SOURCE being defined. Stop defining _XOPEN_SOURCE in Xos.h.
+
+2005-07-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xt/SetWMCW.c:
+ Bug #3824: <https://bugs.freedesktop.org/show_bug.cgi?id=3824>
+ Correct incomplete license statement from Sun.
+
+2005-07-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xinit/startx.cpp:
+ Use kbd_mode -a to restore console keyboard on Solaris x86 too.
+
+2005-07-20 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xft/Imakefile:
+ Bug 3823 <https://bugs.freedesktop.org/show_bug.cgi?id=3823>
+ Xft returns different versions on monolithic and modular builds
+
+2005-07-19 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/os-support/shared/agp_noop.c
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_agp.c
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c
+ Bug #3164 <https://bugs.freedesktop.org/show_bug.cgi?id=3164>
+ Add xf86DeallocateGARTMemory() function call (Austin Yuan)
+
+2005-07-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_agp.c:
+ Change #include "X.h" to <X11/X.h>
+
+2005-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/bitmap/bmtoa.c:
+ * programs/smproxy/smproxy.h:
+ * programs/twm/session.c:
+ * programs/xditview/Dvi.c:
+ * programs/xman/misc.c:
+ * programs/xman/vendor.h:
+ * programs/xsm/xsm.h:
+ Add #ifdef HAVE_CONFIG_H/#include "config.h" to files that need
+ it to get HAS_MKSTEMP defined in modular builds.
+
+2005-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * extras/Xpm/lib/parse.c:
+ Accept autoconf HAVE_STRLCPY as alias for HAS_STRLCAT
+
+2005-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/Xalloca.h:
+ Guard INCLUDE_ALLOCA_H define to end redefinition warnings.
+
+2005-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/dix/dispatch.c:
+ * programs/Xserver/include/opaque.h:
+ * programs/iceauth/process.c:
+ * programs/lbxproxy/di/dispatch.c:
+ * programs/lbxproxy/include/misc.h:
+ * programs/xfs/difs/dispatch.c:
+ * programs/xfs/include/globals.h:
+ Mark variables modified in signal handlers as volatile
+ (part of Sun bug id 4496504)
+
+2005-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xclock/Clock.c:
+ * programs/xclock/xclock.c:
+ Add #include "config.h" for modularization
+ Accept autoconf HAVE_STRLCPY as alias for HAS_STRLCAT
+
+2005-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * BUILD:
+ * programs/Xserver/hw/xfree86/doc/BUILD:
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Update build instructions. Add details about how the
+ expat, fontconfig, libpng, freetype, and xterm builds
+ are now handled.
+
+ * programs/Xserver/hw/xfree86/doc/README.fonts:
+ * programs/Xserver/hw/xfree86/doc/README.OpenBSD:
+ * programs/Xserver/hw/xfree86/doc/README.SiS:
+ Update text docs from SGML masters.
+
+2005-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/xorgsite.def:
+ Add examples for expat, fontconfig, libpng, freetype, & xterm
+ so people know how to enable or disable and set paths.
+ Update examples/comments for Speedo & MakeDllModules to reflect
+ 6.9 status/defaults.
+
+2005-07-15 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/GL/glxmodule.c:
+ * programs/Xserver/GL/mesa/GLcore/GLcoremodule.c:
+ * programs/Xserver/Xext/extmod/modinit.c:
+ * programs/Xserver/Xext/xf86dga.c:
+ * programs/Xserver/Xext/xf86dga2.c:
+ * programs/Xserver/Xext/xf86misc.c:
+ * programs/Xserver/Xext/xf86vmode.c:
+ * programs/Xserver/Xext/xvmod.c:
+ * programs/Xserver/afb/afbmodule.c:
+ * programs/Xserver/dbe/dbemodule.c:
+ * programs/Xserver/fb/fbmodule.c:
+ * programs/Xserver/mfb/mfbmodule.c:
+ * programs/Xserver/mi/miinitext.c:
+ * programs/Xserver/miext/layer/laymodule.c:
+ * programs/Xserver/miext/shadow/shmodule.c:
+ * programs/Xserver/record/recordmod.c:
+ * programs/Xserver/xkb/ddxKillSrv.c:
+ * programs/Xserver/xkb/ddxPrivate.c:
+ * programs/Xserver/xkb/ddxVT.c:
+ Fix the *-config.h includes so that it is possible to build
+ modules without having to use -include in the Makefile.
+
+2005-07-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/scanpci/xf86PciStdIds.h:
+ Update to match recent changes to pci.ids & extrapci.ids
+ for people building on systems without perl.
+
+2005-07-15 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/GL/dri/dri.c:
+ * programs/Xserver/GL/dri/drimodule.c:
+ * programs/Xserver/GL/dri/xf86dri.c:
+ * programs/Xserver/Xext/dmx.c:
+ Fix the *-config.h includes for the files that have moved
+ in the modular tree.
+
+2005-07-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/extras/rman/CHANGES:
+ * xc/extras/rman/MANIFEST:
+ * xc/extras/rman/Makefile:
+ * xc/extras/rman/Makefile.mac (removed):
+ * xc/extras/rman/README-rman (removed):
+ * xc/extras/rman/README-rman.txt:
+ * xc/extras/rman/macish.c (removed):
+ * xc/extras/rman/rman.1:
+ * xc/extras/rman/rman.html
+ * xc/extras/rman/contrib/README-contrib:
+ Since rman.c was already updated to rman-3.2, update the rest of
+ the rman files to match.
+
+2005-07-15 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/dix/events.c: (ProcessKeyboardEvent):
+ Fix keyboard state when XEVIE is not enabled (Keith Packard).
+
+2005-07-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/xdmshell.c:
+ Set HAS_VFORK if autoconf has set HAVE_WORKING_VFORK.
+
+ * programs/xdm/dm.h:
+ Add #include "config.h" for modularization
+
+2005-07-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/Xos.h:
+ Don't define _XOPEN_SOURCE on SVR4, because it will REMOVE
+ required definitions.
+
+2005-07-14 Alan Coopersmith <alan.coopersmith@sun.com>
+ * config/util/lndir.man:
+ Bug 3774 <https://bugs.freedesktop.org/show_bug.cgi?id=3774>
+ Patch 3081 <https://bugs.freedesktop.org/attachment.cgi?id=3081>
+ lndir.man fails to mention .svn (Bernhard Reiter)
+
+2005-07-13 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xnest/Args.c:
+ * programs/Xserver/hw/xnest/Color.c:
+ * programs/Xserver/hw/xnest/Cursor.c:
+ * programs/Xserver/hw/xnest/Display.c:
+ * programs/Xserver/hw/xnest/Events.c:
+ * programs/Xserver/hw/xnest/Font.c:
+ * programs/Xserver/hw/xnest/GC.c:
+ * programs/Xserver/hw/xnest/GCOps.c:
+ * programs/Xserver/hw/xnest/GetTime.c:
+ * programs/Xserver/hw/xnest/Handlers.c:
+ * programs/Xserver/hw/xnest/Init.c:
+ * programs/Xserver/hw/xnest/Keyboard.c:
+ * programs/Xserver/hw/xnest/Pixmap.c:
+ * programs/Xserver/hw/xnest/Pointer.c:
+ * programs/Xserver/hw/xnest/Screen.c:
+ * programs/Xserver/hw/xnest/TestExt.c:
+ * programs/Xserver/hw/xnest/Visual.c:
+ * programs/Xserver/hw/xnest/Window.c:
+ * programs/Xserver/mi/miinitext.c:
+ Add #include <xnest-config.h> to the Xnest source files for
+ modularization.
+
+2005-07-13 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h:
+ Merge SVR4/pre-Solaris 8 and Solaris 8+ sections for greater
+ consistency, easier maintenance, and to fix some missing headers
+ when building the modular Xorg on Solaris.
+
+2005-07-13 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/Xalloca.h:
+ #define INCLUDE_ALLOCA_H when building with Sun compilers.
+ (Imake *.cf files define this for a number of platforms in
+ the monolith, but these will need to be translated into
+ #ifdef's or similar mechanism to work in a world without Imake.)
+
+2005-07-13 Alexander Gottwald <ago at freedesktop dot org>
+
+ * include/Xthreads.h:
+ include <X11/Xwindows.h> instead of <windows.h>. Several namespace
+ conflicts are worked around in Xwindows.h
+
+2005-07-13 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/render/picture.c:
+ Fix compilation where uint is not defined.
+
+2005-07-13 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c
+ Bug #2587 <https://bugs.freedesktop.org/show_bug.cgi?id=2587>
+ Fix keyboard mapping on Sun keyboards in the keyboard module.
+
+2005-07-13 Lars Knoll <lars@trolltech.com>
+ * programs/Xserver/fb/fbcompose.c:
+ Fix potential buffer overflow and a smaller bug in the
+ convolution filter
+ * programs/Xserver/fb/fbmmx.c:
+ Fix compilation on some platforms
+
+2005-07-13 Keith Packard <keithp@keithp.com>
+
+ * include/Xos.h:
+ * lib/FS/FSConnServ.c:
+ * lib/FS/FSlibint.h:
+ * lib/lbxutil/lbx_zlib/lbx_zlib.c:
+
+ Make some minor source adjustments so that
+ we don not need to use -D_XOPEN_SOURCE -D_BSD_SOURCE
+ everywhere as this will leak out of the modular environment
+ and into application build processes, potentially foulling up
+ their compiles.
+
+2005-07-12 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/input/aiptek/xf86Aiptek.h:
+ * programs/Xserver/hw/xfree86/input/digitaledge/DigitalEdge.c:
+ * programs/Xserver/hw/xfree86/input/hyperpen/xf86HyperPen.c:
+ * programs/Xserver/hw/xfree86/input/joystick/xf86Jstk.c:
+ * programs/Xserver/hw/xfree86/input/summa/xf86Summa.c:
+ * programs/Xserver/hw/xfree86/input/tek4957/xf86Tek4957.c:
+ * programs/Xserver/hw/xfree86/input/void/void.c:
+ Change input drivers to get keysym's from <X11/keysym.h>.
+
+Mon Jul 11 19:30:56 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/xedit/lisp/xedit.c: Change include of "xedit/xedit.h"
+ to include of "lisp/../xedit.h"
+
+2005-07-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/etc/scanpci.c:
+ Fix scanpci -v core dump when subsys vendor/device id's are
+ NOVENDOR & NODEVICE.
+ Bug #3763 <https://bugs.freedesktop.org/show_bug.cgi?id=3763>
+ Patch #3074 <https://bugs.freedesktop.org/attachment.cgi?id=3074>
+
+2005-07-12 Lars Knoll <lars@trolltech.com>
+ * programs/Xserver/fb/fbcompose.c:
+ * programs/Xserver/fb/fbmmx.c:
+ * programs/Xserver/fb/fbmmx.h:
+ * programs/Xserver/fb/fbpict.c:
+ * programs/Xserver/fb/fbpict.h:
+ Add MMX Code paths for the basic composition operations
+ in fbComposeGeneral.
+
+2005-07-11 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/dmx/config/dmxcompat.c:
+ * programs/Xserver/hw/dmx/config/dmxconfig.c:
+ * programs/Xserver/hw/dmx/config/dmxparse.c:
+ * programs/Xserver/hw/dmx/config/dmxprint.c:
+ * programs/Xserver/hw/dmx/config/parser.y:
+ * programs/Xserver/hw/dmx/config/scanner.l:
+ * programs/Xserver/hw/dmx/dmx_glxvisuals.c:
+ * programs/Xserver/hw/dmx/dmxcb.c:
+ * programs/Xserver/hw/dmx/dmxclient.h:
+ * programs/Xserver/hw/dmx/dmxcmap.c:
+ * programs/Xserver/hw/dmx/dmxcursor.c:
+ * programs/Xserver/hw/dmx/dmxdpms.c:
+ * programs/Xserver/hw/dmx/dmxextension.c:
+ * programs/Xserver/hw/dmx/dmxfont.c:
+ * programs/Xserver/hw/dmx/dmxgc.c:
+ * programs/Xserver/hw/dmx/dmxgcops.c:
+ * programs/Xserver/hw/dmx/dmxinit.c:
+ * programs/Xserver/hw/dmx/dmxinput.c:
+ * programs/Xserver/hw/dmx/dmxlog.c:
+ * programs/Xserver/hw/dmx/dmxpict.c:
+ * programs/Xserver/hw/dmx/dmxpixmap.c:
+ * programs/Xserver/hw/dmx/dmxprop.c:
+ * programs/Xserver/hw/dmx/dmxscrinit.c:
+ * programs/Xserver/hw/dmx/dmxshadow.c:
+ * programs/Xserver/hw/dmx/dmxstat.c:
+ * programs/Xserver/hw/dmx/dmxsync.c:
+ * programs/Xserver/hw/dmx/dmxvisual.c:
+ * programs/Xserver/hw/dmx/dmxwindow.c:
+ * programs/Xserver/hw/dmx/input/ChkNotMaskEv.c:
+ * programs/Xserver/hw/dmx/input/dmxarg.c:
+ * programs/Xserver/hw/dmx/input/dmxbackend.c:
+ * programs/Xserver/hw/dmx/input/dmxcommon.c:
+ * programs/Xserver/hw/dmx/input/dmxconsole.c:
+ * programs/Xserver/hw/dmx/input/dmxdetach.c:
+ * programs/Xserver/hw/dmx/input/dmxdummy.c:
+ * programs/Xserver/hw/dmx/input/dmxeq.c:
+ * programs/Xserver/hw/dmx/input/dmxevents.c:
+ * programs/Xserver/hw/dmx/input/dmxinputinit.c:
+ * programs/Xserver/hw/dmx/input/dmxmap.c:
+ * programs/Xserver/hw/dmx/input/dmxmotion.c:
+ * programs/Xserver/hw/dmx/input/dmxsigio.c:
+ * programs/Xserver/hw/dmx/input/dmxxinput.c:
+ * programs/Xserver/hw/dmx/input/lnx-keyboard.c:
+ * programs/Xserver/hw/dmx/input/lnx-ms.c:
+ * programs/Xserver/hw/dmx/input/lnx-ps2.c:
+ * programs/Xserver/hw/dmx/input/usb-common.c:
+ * programs/Xserver/hw/dmx/input/usb-keyboard.c:
+ * programs/Xserver/hw/dmx/input/usb-mouse.c:
+ * programs/Xserver/hw/dmx/input/usb-other.c:
+ * programs/Xserver/hw/vfb/InitInput.c:
+ * programs/Xserver/hw/vfb/InitOutput.c:
+ * programs/Xserver/mi/miinitext.c:
+ Prepare Xdmx and Xvfb for modularization by adding appropriate
+ #include <{dix,dmx}-config.h> to the source files.
+
+2005-07-11 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/twm/resize.c:
+ Bug #3754 (Debian #725): Fix ten-year-old window misplacement in twm
+ when dragging with the middle button. (Christopher Mario Mae)
+
+2005-07-11 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/shared/sigio.c:
+ Remove unneeded xf86drm.h includes to fix modular build.
+
+2005-07-11 Daniel Stone <daniel@freedesktop.org>
+
+ * lib/X11/imDefIc.c (_XimRegisterKeyPressFilter):
+ Fix segfault when _XimProtoCreateIC() fails to create a context; Debian
+ #239991. (Chung-chieh Shan)
+
+2005-07-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv.man:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c:
+ Bug #3740 <https://bugs.freedesktop.org/show_bug.cgi?id=3740>
+ Patch #3058 <https://bugs.freedesktop.org/attachment.cgi?id=3058>
+ 08-Jul-2005 nv driver updates from Mark Vojkovich:
+
+ Change some console restore code for NV11. Hopefully, we can more
+ reliably restore the console for desktop systems using DVI. This
+ may correct a recent regression on NV11.
+
+ Also, new PCI IDs.
+
+ * programs/Xserver/hw/xfree86/etc/extrapci.ids:
+ Add new nVidia PCI ids to match nv_driver.c changes.
+
+2005-07-07 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/xconsole/xconsole.c (get_pty): Remove include of
+ "../xterm/ptyx.h"
+
+2005-07-07 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ More compiler warning fixes for missing prototypes:
+
+ * include/extensions/XKBsrv.h:
+ Add prototype for XkbSetExtension()
+
+ * programs/xrx/helper/helper.c:
+ Add #include <ctype.h> for isspace() & isdigit()
+
+ * programs/Xserver/Xprint/attributes.c:
+ Add #include <grp.h> (for initgroups()) and remove extra *
+
+ * programs/Xserver/hw/xfree86/common/xf86.h:
+ Add prototype for xorgGetVersion()
+
+2005-07-07 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/os/osdep.h:
+ Bug #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Add prototype for XdmAuthenticationInit() (Peter Breitenlohner)
+
+2005-07-07 Alan Coopersmith <alan.coopersmith@sun.com>
+ * extras/ttf2pt1/ft.c:
+ * extras/ttf2pt1/pt1.c:
+ * extras/ttf2pt1/ttf2pt1.c:
+ * lib/font/FreeType/ftfuncs.h:
+ * programs/Xserver/Xprint/ps/PsFTFonts.c:
+ * programs/Xserver/Xprint/ps/psout_ft.c:
+ * programs/Xserver/Xprint/ps/psout_ftpstype1.c:
+ * programs/Xserver/Xprint/ps/psout_ftpstype3.c:
+ Bug #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2332 <https://bugs.freedesktop.org/attachment.cgi?id=2332>
+ This patch avoids 79 gcc-3.4.3 warnings
+ 'xxx' declared `static' but never defined
+ mostly due to including "ftfuncs.h" with the declaration
+ of static functions defined in "ftfuncs.c". (Peter Breitenlohner)
+
+2005-07-06 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/loader.h:
+ Bug #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Fix warnings about redefined macros (Peter Breitenlohner)
+
+2005-07-06 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nsc/Imakefile:
+ Bug #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2330 <https://bugs.freedesktop.org/attachment.cgi?id=2330>
+ Remove CppManTarget since it's already included in InstallModuleManPage
+ expansion - removes 10 pairs of warnings from GNU make about duplicate
+ Makefile targets (Peter Breitenlohner)
+
+2005-07-06 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * extras/ttf2pt1/ft.c:
+ * extras/ttf2pt1/pt1.c:
+ * lib/XprintAppUtil/xpapputil.c:
+ * programs/Xserver/Xext/xevie.c:
+ * programs/Xserver/Xprint/Init.c:
+ * programs/Xserver/Xprint/Oid.c:
+ * programs/Xserver/Xprint/ps/PsFonts.c:
+ Bug #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2325 <https://bugs.freedesktop.org/attachment.cgi?id=2325>
+ Avoid 38 gcc-3.4.2 warnings:
+ suggest parentheses around assignment used as truth value
+ suggest explicit braces to avoid ambiguous `else'
+ suggest parentheses around && within ||
+ suggest parentheses around arithmetic in operand of ^
+ "/*" within comment
+ (Peter Breitenlohner)
+
+ * programs/Xserver/Xprint/AttrValid.c:
+ * programs/Xserver/Xprint/Oid.h:
+ Bug #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2326 <https://bugs.freedesktop.org/attachment.cgi?id=2326>
+ This patch removes these 2 gcc-3.4.3 warnings:
+ missing braces around initializer
+ implicit declaration of function `XpOidTrayMediumListHasTray'
+ (Peter Breitenlohner)
+
+2005-07-06 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/xdbedizzy/Imakefile (DEFINES): Add -DUSE_XPRINT to
+ DEFINES
+
+ * programs/xdbedizzy/xdbedizzy.c: Conditionalize use of xprint.
+
+2005-07-06 Alexander Gottwald <ago@freedesktop.org>
+
+ * config/cf/cygwin.cf:
+ * config/cf/mingw.cf:
+ Removed AVOID_GLYPHBLT and SINGLEDEPTH from server defines.
+
+2005-07-06 Ian Romanick <idr@us.ibm.com>
+
+ * programs/Xserver/GL/glx/glxcmds.c: (DoGetFBConfigs):
+
+ Use the correct size for the glXGetFBConfigs reply.
+ Bugzilla #3210 <https://bugs.freedesktop.org/show_bug.cgi?id=3210>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/Imakefile:
+
+ Fix recent breakage to SDK install.
+ Bugzilla #3703 <https://bugs.freedesktop.org/show_bug.cgi?id=3703>
+
+2005-07-05 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/xmore/Imakefile (DEFINES): Add -DUSE_XPRINT to DEFINES
+
+ * program/xmore/xmore.c: Conditionalize use of xprint.
+
+2005-07-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * extras/ttf2pt1/ttf2pt1.c:
+ Bugzilla #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2321 <https://bugs.freedesktop.org/attachment.cgi?id=2321>
+
+ Arguments to sscanf need to be pointers (Peter Breitenlohner)
+
+2005-07-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/xorg.cf:
+ * config/cf/xfree86.cf:
+ Bugzilla #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2319 <https://bugs.freedesktop.org/attachment.cgi?id=2319>
+
+ Since many files now use non-ANSI constructs ('long long',
+ substructure initializers, implicit signedness conversions, ...)
+ you shouldn't use "gcc -ansi -pedantic". On our ix86-linux-gnu
+ system this change reduces the number of gcc-3.4.3 warnings from
+ originally 3034 to 1460! (Peter Breitenlohner)
+
+2005-07-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/makedepend/main.c:
+ Bugzilla #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2320 <https://bugs.freedesktop.org/attachment.cgi?id=2320>
+
+ Remove warning about whitespace in pre-processor defines.
+ (Peter Breitenlohner)
+
+2005-07-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/auth.c:
+ * programs/xdm/socket.c:
+ * programs/xdm/xdmcp.c:
+ Bugzilla #2901 <https://bugs.freedesktop.org/show_bug.cgi?id=2901>
+ Patch #2317 <https://bugs.freedesktop.org/attachment.cgi?id=2317>
+
+ This patch fixes several problems arising if xdm is
+ compiled with IPv6 support, but the (linux) kernel does not
+ support IPv6. (Peter Breitenlohner)
+
+2005-07-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml:
+ Remove Speedo font module documentation.
+
+ * programs/Xserver/Xserver.man:
+ Remove Speedo from list of font directories
+
+ * programs/Xserver/hw/xfree86/xorg.conf.man:
+ Update default font path to remove Speedo, add TTF.
+
+2005-07-05 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ Fix Xvideo when operating in one line mode and video is pushed off
+ the top of the screen. Also some fixes for Xvideo skew in certain
+ resolutions.
+
+2005-07-05 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONDoAdjustFrame):
+ Bug #2604: Disable workaround for horrible flickering when scrolling
+ vertically in a virtual screen when color tiling and page flip are
+ both enabled, as it potentially does more harm than good.
+ The flickering still needs fixing probably though.
+
+2005-07-04 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ (VIAScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaSetPrimaryDotclock), (ViaSetSecondaryDotclock),
+ (ViaComputeProDotClock), (ViaModeDotClockTranslate):
+ Add more card-ids. (Xavier Bachelot)
+ Avoid VBE DPMS to blank screen when using VBE modes.
+ Allow free dotclock specification on the Unichrome Pro.
+
+2005-07-04 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/Xorg.man:
+ * programs/Xserver/hw/xfree86/xorg.conf.man:
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ * programs/Xserver/hw/xfree86/common/xf86Globals.c:
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ * programs/Xserver/hw/xfree86/common/xf86Priv.h:
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c:
+ Bug #2216: Multiseat support. From various Debian and Ubuntu patches
+ by Aivils Stoss, Andreas Schuldei, Branden Robinson, and Daniel Stone.
+
+2005-07-04 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Set TroffCmd on Solaris to "troff -Tpost" instead of "troff -Tps"
+ when not using groff.
+
+ * doc/specs/programs/Imakefile (MANUALS):
+ Bugzilla Bug 3695: <https://bugs.freedesktop.org/show_bug.cgi?id=3695>
+ 6.8.99.14 man page installation breaks on fc-cache.man
+
+2005-07-04 Lars Knoll <lars@trolltech.com>
+ * programs/Xserver/fb/fbpict.h:
+ * programs/Xserver/fb/fbcompose.c:
+ Fix handling of "super luminescent" colors
+ Fix off by one error in the transformation handling.
+
+2005-07-04 Thomas Winischhofer <thomas@winischhofer.net>
+
+ SiS driver:
+ - Added initial support for XGI chipsets (V3XT, V5, V8, Z7).
+ Z7 and V5 are untested. All features supported (Xv, HWCursor,
+ DPMS, etc.). The binary XGI DRI driver is not supported.
+ - Ported driver to EXA 0.1.0. Known problems still to solve at
+ this time are:
+ * EXA's deinitialisation routine "DriverFini()" does not
+ unwrap pScreen->DestroyPixmap (and others), leading to a
+ crash on machines where the SWCursor is being used (SWCursor
+ pixmaps are destroyed after EXA has destroyed the offscreen
+ memory manager).
+ * EXA does not work correctly with 24bpp framebuffers. For some
+ reason, all pixmaps handed to the drawing primitives are
+ 32bpp, despite the correct 24bpp-flag handed to
+ xf86SetDepthBpp().
+
+2005-07-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xrdb/xrdb.c:
+ Add #ifdef HAVE_CONFIG_H/#include <config.h> for modularization.
+
+2005-07-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ Fix builds on non-GLIBC systems (missing __GLIBC_PREREQ).
+ Add Solaris stack backtrace dumper.
+
+2005-07-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/font/bitmap/Imakefile:
+ Install publicly used headers in X11/fonts.
+
+ * lib/font/bitmap/bdfread.c:
+ * lib/font/bitmap/bdfutils.c:
+ * lib/font/bitmap/bitmapfunc.c:
+ * lib/font/bitmap/bitmaputil.c:
+ * lib/font/bitmap/fontink.c:
+ * lib/font/bitmap/pcfread.c:
+ * lib/font/bitmap/pcfwrite.c:
+ * programs/bdftopcf/bdftopcf.c:
+ Change source files that use these headers to get them via
+ <X11/fonts/*.h>.
+
+2005-07-03 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ Predicate usage of xf86OSPM functions on #ifdef XF86PM.
+
+ * programs/Xserver/hw/xfree86/os-support/xf86OSMouse.c:
+ Remove needless include of ../input/mouse/mouse.h.
+
+ * programs/Xserver/hw/xfree86/common/xf86KbdLnx.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_KbdMap.c:
+ Remove needless include of DECkeysym.h.
+
+ * lib/font/include/Imakefile:
+ Install all libXfont includes to X11/fonts/ internally.
+
+2005-07-03 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/lbxutil/delta/lbxdelta.c:
+ * lbx_zlib/lbx_zlib.c:
+ * lbx_zlib/lbx_zlib_io.c:
+ lbxutil doesn't really need <X11/os.h>, so don't ask for it.
+
+2005-07-03 Daniel Stone <daniel@freedesktop.org>
+
+ * lib/font/fc/fserve.c:
+ * lib/font/fc/fsio.c:
+ Add Xtrans definitions (FONT_t, TRANS_CLIENT) to clean up warnings.
+
+ * programs/Xserver/os/connection.c:
+ Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
+
+ * programs/Xserver/**/*.[ch]:
+ * lib/**/*.[ch]:
+ * lib/X11/XKBAlloc.c:
+ * lib/X11/XKBGAlloc.c:
+ * lib/X11/XKBMAlloc.c:
+ * lib/X11/XKBMisc.c:
+ * lib/misc/strlcat.c:
+ * lib/misc/strlcpy.c:
+ * lib/xkbfile/maprules.c:
+ * lib/xkbfile/xkbconfig.c:
+ * lib/xkbfile/xkberrs.c:
+ * lib/xkbfile/xkbmisc.c:
+ * lib/xkbfile/xkbout.c:
+ * lib/xkbfile/xkbtest.c:
+ * lib/xkbfile/xkmread.c:
+ * lib/xtrans/transport.c: (XSERV_t)
+ Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
+ source files in the xserver/xorg tree, predicated on defines of
+ HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
+ <X11/fonts/foo.h>. Fix includes in server branches of XKB code.
+ Change all <X11/misc.h> and <X11/os.h> includes to "misc.h" and "os.h".
+
+2005-07-02 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ (xorg_backtrace):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.h:
+ Fix build issues.
+
+2005-07-02 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/linux.cf:
+ * programs/Xserver/hw/xfree86/input/evdev/evdev.c:
+ Add some build compatibility for 2.6 linux systems with 2.4 kernel
+ headers installed. Allow the use of evdev for mice on 2.4 kernels.
+
+2005-07-02 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Events.c:
+ Bug #3687: Print backtraces on fatal signal on glibc systems.
+
+2005-07-02 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xnest/Events.c:
+ * programs/Xserver/hw/xnest/Keyboard.c:
+ Bug #3546: Use MAP_LENGTH instead of a magic number.
+ (Mark McLoughlin)
+ Bug #3664: Further fixes to Xnest modifier state handling.
+ (Mark McLoughlin)
+
+2005-07-02 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/miext/cw/Imakefile:
+ * programs/Xserver/miext/damage/Imakefile:
+ Bug #1324: Stop pretending cw and damage are loadable modules.
+
+2005-07-01 Ian Romanick <idr@us.ibm.com>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_PInS.txt:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_arc.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_bios.c: (get_u16),
+ (get_u32), (mga_initialize_bios_values), (mga_parse_bios_ver_1),
+ (mga_parse_bios_ver_2), (mga_parse_bios_ver_3),
+ (mga_parse_bios_ver_4), (mga_parse_bios_ver_5),
+ (mga_read_and_process_bios):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_bios.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dac3026.c:
+ (MGA3026RamdacInit):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dacG.c:
+ (MGAGCalcClock), (MGAGSetPCLK), (MGAGRamdacInit):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dga.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dh.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c: (MGAdoDDC):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_g450pll.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_hwcurs.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_merge.c:
+ (MGAPreInitMergedFB):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_shadow.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_storm.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_video.c:
+
+ Re-write the PInS processing code. All of the old BIOS processing
+ code from the MGA DDX has been dumped and replaced.
+
+ Bugzilla #3553 <https://bugs.freedesktop.org/show_bug.cgi?id=3553>
+ Patch #2934 <https://bugs.freedesktop.org/attachment.cgi?id=2934>.
+
+2005-07-01 Lars Knoll <lars@trolltech.com>
+
+ * include/extensions/render.h:
+ * include/extensions/renderproto.h:
+ * lib/Xrender/Picture.c:
+ * lib/Xrender/Xrender.h:
+ * programs/Xserver/fb/fbcompose.c:
+ * programs/Xserver/fb/fbpict.c:
+ * programs/Xserver/fb/fbpict.h:
+ * programs/Xserver/hw/xfree86/src/xaaPict.c:
+ * programs/Xserver/render/mipict.c:
+ * programs/Xserver/render/picture.c:
+ * programs/Xserver/render/picturestr.h:
+ * programs/Xserver/render/render.c:
+ Add support for gradients and solid fills to Render.
+
+ * fb/fbcompose.c:
+ Changed the semantics of the Convolution filter a
+ bit. It now doesn't try to normalize the filter
+ values but leaves this to the client. This gives
+ more reasonable behaviour in the limit where the filter
+ parameters sum up to 0.
+
+ * doc/specs/Render/protocol:
+ Sync with modular tree
+
+2005-07-01 Zack Rusin <zrusin@trolltech.com>
+
+ * programs/Xserver/hw/xfree86/exa/exa.h:
+ * programs/Xserver/hw/xfree86/exa/exa.c:
+ * programs/Xserver/hw/xfree86/exa/exaasync.c:
+ * programs/Xserver/hw/xfree86/exa/exaoffscreen.c:
+ * programs/Xserver/hw/xfree86/exa/exapict.c:
+ * programs/Xserver/hw/xfree86/exa/exaPriv.h:
+ * programs/Xserver/hw/xfree86/exa/Imakefile:
+ * config/cf/xfree86.cf:
+ * config/cf/xorg.cf:
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/hw/xfree86/Imakefile:
+ - Adding the new acceleration architecture: Exa.
+ It's meant to replace XAA in the coming months.
+
+2005-07-01 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONValidateMergeModes), (RADEONPreInitModes), (RADEONPreInit),
+ (RADEONScreenInit), (RADEONChangeSurfaces):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ - fix depth tiling for r3/4xx chips (Aapo Tahkola)
+ - adjust limits for tiled surfaces on r3/4xx
+
+2005-06-30 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/fi1236.c:
+ - Fix Support for Philips FM1236/F on ATI AIW 9600 XT (Jeff Smith)
+ Bug 3401
+
+2005-06-30 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONChangeSurfaces):
+ - change back part of a comment I seem to have accidently changed.
+
+2005-06-29 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ (RADEONUpdateXineramaScreenInfo):
+ - small mergedfb fix from Thomas Winischhofer
+
+2005-06-29 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInit), (RADEONChangeSurfaces), (RADEONInitCrtcRegisters),
+ (RADEONInitCrtc2Registers), (RADEONDoAdjustFrame):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ - add support for colortiling on r3/4xx hardware (disabled by default). In order
+ for pageflipping to work on r3/4xx we will need to update the the sarea and drm
+ so that the crtc1/2 xytiling regs get updated.
+ Initially worked out by Aapo Tahkola.
+
+2005-06-29 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONSetFBLocation):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ - Increase the priority of display 0/1 in the memory controller for r3/4xx hardware
+ when displaypriority is set to HIGH. Fixes display problems in high res modes.
+ Originally reported by Aapo Tahkola.
+
+2005-06-29 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONSetDynamicClock):
+ - fix some OUTREGs that should be OUTPLLs in dynamicclocks code
+
+2005-06-29 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c:
+ (SMI_ModeInit):
+ - add 800x480 modes to smi driver (bug 3639)
+
+2005-06-29 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/X11.tmpl:
+ Set XorgManDefs properly to set __xorgversion__ in cpp'ed man pages
+ to the correct release name.
+
+2005-06-29 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/Imake.tmpl:
+ Add HasGetopt (default: YES on everything but Win32 & OS/2) and
+ HasGetoptLong (default: NO) flags for use in fc-list & fc-cache
+ Imakefiles.
+
+ * config/cf/sun.cf:
+ Set HasGetoptLong to YES on Solaris 10 and later.
+
+ * programs/fc-cache/Imakefile:
+ * programs/fc-list/Imakefile:
+ Add -DHAVE_GETOPT & -DHAVE_GETOPT_LONG flags based on settings
+ of HasGetopt & HasGetoptLong from Imake config files to simulate
+ autoconf tests.
+
+ * lib/fontconfig/Imakefile:
+ Add FREETYPE_DEFINES to set flags to match what autoconf would set
+ for Freetype 2.1.8. Add defines for HAVE_LINK, HAVE_GETUID, and
+ HAVE_GETEUID for everything but OS/2 & Win32 to match autoconf tests.
+ Remove fcfreetype.c from the list of files linked to extras directory.
+
+ * lib/fontconfig/fcfreetype.c:
+ Use customized version of fcfreetype.c to make these needed changes:
+ - Remove // comment prohibited by gcc -ansi -pedantic default flags
+ - Change include path for "../fc-glyphname/fcglyphname.h" to work in
+ monolithic tree layout
+
+2005-06-30 Daniel Stone <daniel@freedesktop.org>
+
+ * lib/Xcursor:
+ Import Xcursor version 1.1.4.
+
+2005-06-29 Soren Sandmann <sandmann@redhat.com>
+
+ * programs/rgb/showrgb.c: Don't include rgb.h and site.h when
+ USE_RGB_TXT is defined.
+
+2005-06-29 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c (NVBacklightEnable):
+ Bugzilla #3657 <https://bugs.freedesktop.org/show_bug.cgi?id=3657>
+ Patch #2992 <https://bugs.freedesktop.org/attachment.cgi?id=2992>
+ Experimental DPMS support for GeForce4 and later laptops.
+ (Mark Vojkovich)
+
+2005-06-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/Xext/Imakefile:
+ * doc/man/Xext/DPMSSetTimeouts.man:
+ * doc/man/Xext/DPMSCapable.man:
+ * doc/man/Xext/DPMSDisable.man:
+ * doc/man/Xext/DPMSEnable.man:
+ * doc/man/Xext/DPMSForceLevel.man:
+ * doc/man/Xext/DPMSGetTimeouts.man:
+ * doc/man/Xext/DPMSGetVersion.man:
+ * doc/man/Xext/DPMSInfo.man:
+ * doc/man/Xext/DPMSQueryExtension.man:
+ * doc/man/Xext/DPMSSetTimeouts.man:
+ Add man pages for DPMS Extension calls in libXext. (Converted to
+ man page format by Sun doc teams based on DPMS specification docs.)
+
+2005-06-29 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/Imakefile:
+ * lib/XvMC/hw/via/unichromeProA/Imakefile:
+ * lib/XvMC/hw/via/unichromeProA/viaLowLevelPro.c: (initHQVShadow),
+ (setHQVDeblocking), (setHQVStartAddress), (setHQVDeinterlacing),
+ (setHQVTripleBuffer), (finish_header_agp), (hwlLock), (hwlUnlock),
+ (timeDiff), (setAGPSyncLowLevel), (viaDMATimeStampLowLevel),
+ (viaDMAWaitTimeStamp), (viaDMAInitTimeStamp),
+ (viaDMACleanupTimeStamp), (viaMpegGetStatus), (viaMpegIsBusy),
+ (syncDMA), (syncVideo), (syncAccel), (syncMpeg), (pciFlush),
+ (agpFlush), (uploadHQVShadow), (flushXvMCLowLevel),
+ (flushPCIXvMCLowLevel), (viaMpegSetSurfaceStride),
+ (viaVideoSetSWFLipLocked), (viaVideoSWFlipLocked), (viaMpegSetFB),
+ (viaMpegBeginPicture), (viaMpegReset), (viaMpegWriteSlice),
+ (viaVideoSubPictureOffLocked), (viaVideoSubPictureLocked),
+ (viaBlit), (syncXvMCLowLevel), (updateLowLevelBuf),
+ (cleanupLowLevelBuf), (releaseXvMCLowLevel), (initXvMCLowLevel),
+ (setLowLevelLocking), (closeXvMCLowLevel):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ (ViaInitXVMC):
+ Add XvMC support for the mpeg1 / mpeg2 hardware decoder of
+ VIA's Unichrome Pro Group A chips, CN400 and PM8X0.
+ (Ivor Hewitt and Thomas Hellstrom).
+
+2005-06-29 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/Imakefile:
+ * lib/XvMC/hw/via/Imakefile:
+ * lib/XvMC/hw/via/driDrawable.c: (drawStamp),
+ (getDRIDrawableInfoLocked), (driDestroyHashContents):
+ * lib/XvMC/hw/via/driDrawable.h:
+ * lib/XvMC/hw/via/unichrome/Imakefile:
+ * lib/XvMC/hw/via/unichrome/viaLowLevel.c: (hwlLock), (hwlUnlock),
+ (timeDiff), (setAGPSyncLowLevel), (viaDMATimeStampLowLevel),
+ (viaDMAWaitTimeStamp), (viaDMAInitTimeStamp),
+ (viaDMACleanupTimeStamp), (viaMpegGetStatus), (viaMpegIsBusy),
+ (syncDMA), (syncVideo), (syncAccel), (syncMpeg), (pciFlush),
+ (agpFlush), (flushXvMCLowLevel), (flushPCIXvMCLowLevel),
+ (pciCommand), (viaMpegSetSurfaceStride), (viaVideoSetSWFLipLocked),
+ (viaVideoSWFlipLocked), (viaMpegSetFB), (viaMpegBeginPicture),
+ (viaMpegReset), (viaMpegWriteSlice), (viaVideoSubPictureOffLocked),
+ (viaVideoSubPictureLocked), (viaBlit), (syncXvMCLowLevel),
+ (initXvMCLowLevel), (setLowLevelLocking), (closeXvMCLowLevel):
+ * lib/XvMC/hw/via/viaLowLevel.c:
+ * lib/XvMC/hw/via/viaLowLevel.h:
+ * lib/XvMC/hw/via/viaXvMC.c: (grabDecoder),
+ (releaseContextResources), (XvMCCreateContext),
+ (XvMCDestroyContext), (XvMCCreateSurface), (XvMCPutSlice2),
+ (XvMCPutSlice), (XvMCPutSurface), (XvMCBeginSurface),
+ (XvMCSyncSurface), (XvMCLoadQMatrix), (XvMCCreateSubpicture),
+ (XvMCSetSubpicturePalette), (XvMCClearSubpicture),
+ (XvMCCompositeSubpicture), (XvMCBlendSubpicture2),
+ (XvMCSyncSubpicture), (XvMCDestroySubpicture), (XvMCFlushSurface),
+ (XvMCGetSurfaceStatus), (XvMCQueryAttributes), (XvMCSetAttribute),
+ (XvMCGetAttribute), (XvMCHideSurface):
+ * lib/XvMC/hw/via/viaXvMCPriv.h:
+ * lib/XvMC/hw/via/xf86dri.c: (uniDRIDestroyContext),
+ (uniDRICreateDrawable), (uniDRIDestroyDrawable),
+ (uniDRIGetDrawableInfo):
+ * lib/XvMC/hw/via/xf86dri.h:
+ * lib/XvMC/hw/via/xf86dristr.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ (ViaInitXVMC), (ViaCleanupXVMC), (ViaXvMCCreateContext),
+ (ViaXvMCDestroyContext):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.h:
+ Restructure Via XvMC for multiple hardware drivers.
+ Make Via XvMC use the DRI protocol for efficient drawable handling,
+ overlay updates and initialization.
+
+2005-06-28 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c:
+ Bug #2447: Fix argument order to xf86DrvMsgVerb. (Luc Verhaegen)
+
+2005-06-28 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/input/acecad/acecad.c:
+ Bug #1565: Don't delete the driver twice. (St�hane VOLTZ)
+
+2005-06-28 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c
+ Add support to check the in-built VESA mode list.
+
+2005-06-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/etc/pci.ids:
+ * programs/Xserver/hw/xfree86/etc/extrapci.ids:
+ Update to latest snapshot (27-May-2005) from http://pciids.sf.net/
+
+2005-06-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/X11.tmpl:
+ Add LinkerRuntimeLibraryPathFlag to EXPATLIB, FONTCONFIGLIB & LIBPNGLIB
+
+2005-06-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * extras/fontconfig/*:
+ * lib/fontconfig/Imakefile:
+ * programs/fc-cache/Imakefile:
+ * programs/fc-cache/fc-cache.man:
+ * programs/fc-list/Imakefile:
+ * programs/fc-list/fc-list.man:
+ Update fontconfig from 2.2.2 to 2.3.2
+
+2005-06-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/Imake.tmpl:
+ Change HasLibpng default back to NO - unlike FreeType & Zlib,
+ if it's not present, we don't "build a potentially dangerous libpng",
+ but instead just skip the xcursorgen build.
+
+2005-06-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/include/Imakefile: Fix links to os.h & misc.h
+
+2005-06-27 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/include/Imakefile: Install os.h and misc.h
+
+2005-06-27 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/input/aiptek/xf86Aiptek.c:
+ * programs/Xserver/hw/xfree86/input/digitaledge/DigitalEdge.c:
+ * programs/Xserver/hw/xfree86/input/elographics/xf86Elo.c:
+ * programs/Xserver/hw/xfree86/input/fpit/xf86Fpit.c:
+ * programs/Xserver/hw/xfree86/input/hyperpen/xf86HyperPen.c:
+ * programs/Xserver/hw/xfree86/input/mutouch/xf86MuTouch.c:
+ * programs/Xserver/hw/xfree86/input/palmax/xf86Palmax.c:
+ * programs/Xserver/hw/xfree86/input/summa/xf86Summa.c:
+ * programs/Xserver/hw/xfree86/input/tek4957/xf86Tek4957.c:
+ * programs/Xserver/hw/xfree86/input/ur98/xf86Ur-98.c:
+ * programs/Xserver/hw/xfree86/input/void/void.c:
+ * programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c:
+ Various input drivers set their InputDriverRec to be static when
+ doing a loadable build, and the same symbol can't be both static
+ and _X_EXPORT. Pointed out by Alan Coopersmith.
+
+2005-06-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Set HasLibpng defaults correctly for various Solaris releases
+
+2005-06-25 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atifillin.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/ativalid.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c:
+ Bug #3628: Fix video driver submodule visibility.
+
+2005-06-25 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xnest/Events.c:
+ * programs/Xserver/hw/xnest/Events.h:
+ * programs/Xserver/hw/xnest/Init.c:
+ * programs/Xserver/hw/xnest/Keyboard.c:
+ * programs/Xserver/hw/xnest/Keyboard.h:
+ * programs/Xserver/hw/xnest/Pointer.c:
+ * programs/Xserver/hw/xnest/Pointer.h:
+ Bug #3030: Fix Xnest keyboard state handling. (Mark McLoughlin)
+
+2005-06-25 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/ati.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimisc.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimodule.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre200_module.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre_detect_module.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre_module.c:
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:
+ * programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/bt829_module.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/fi1236_module.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/msp3430_module.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/tda8425_module.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/tda9850_module.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/tda9885_module.c:
+ * programs/Xserver/hw/xfree86/drivers/i2c/uda1380_module.c:
+ * programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/imstt/imstt_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_halmod.c:
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/rendition/rendition.c:
+ * programs/Xserver/hw/xfree86/drivers/s3/s3_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sunbw2/bw2_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/suncg14/cg14_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/suncg3/cg3_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/suncg6/cg6_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/suntcx/tcx_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/v4l/v4l.c:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c:
+ * programs/Xserver/hw/xfree86/drivers/vga/generic.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.c:
+ * programs/Xserver/hw/xfree86/drivers/voodoo/voodoo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/wsfb/wsfb_driver.c:
+ * programs/Xserver/hw/xfree86/input/acecad/acecad.c:
+ * programs/Xserver/hw/xfree86/input/aiptek/xf86Aiptek.c:
+ * programs/Xserver/hw/xfree86/input/calcomp/xf86Calcomp.c:
+ * programs/Xserver/hw/xfree86/input/citron/citron.c:
+ * programs/Xserver/hw/xfree86/input/digitaledge/DigitalEdge.c:
+ * programs/Xserver/hw/xfree86/input/dmc/xf86DMC.c:
+ * programs/Xserver/hw/xfree86/input/dynapro/xf86Dyna.c:
+ * programs/Xserver/hw/xfree86/input/elo2300/elo.c:
+ * programs/Xserver/hw/xfree86/input/elographics/xf86Elo.c:
+ * programs/Xserver/hw/xfree86/input/evdev/evdev.c:
+ * programs/Xserver/hw/xfree86/input/fpit/xf86Fpit.c:
+ * programs/Xserver/hw/xfree86/input/hyperpen/xf86HyperPen.c:
+ * programs/Xserver/hw/xfree86/input/jamstudio/js_x.c:
+ * programs/Xserver/hw/xfree86/input/joystick/xf86Jstk.c:
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c:
+ * programs/Xserver/hw/xfree86/input/magellan/magellan.c:
+ * programs/Xserver/hw/xfree86/input/microtouch/microtouch.c:
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ * programs/Xserver/hw/xfree86/input/mutouch/xf86MuTouch.c:
+ * programs/Xserver/hw/xfree86/input/palmax/xf86Palmax.c:
+ * programs/Xserver/hw/xfree86/input/penmount/xf86PM.c:
+ * programs/Xserver/hw/xfree86/input/sample/sample.c:
+ * programs/Xserver/hw/xfree86/input/spaceorb/spaceorb.c:
+ * programs/Xserver/hw/xfree86/input/summa/xf86Summa.c:
+ * programs/Xserver/hw/xfree86/input/tek4957/xf86Tek4957.c:
+ * programs/Xserver/hw/xfree86/input/ur98/xf86Ur-98.c:
+ * programs/Xserver/hw/xfree86/input/void/void.c:
+ * programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c:
+ Bug #3626: _X_EXPORT tags for video and input drivers.
+
+2005-06-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Don't use installed fontconfig on Solaris 10, because it doesn't
+ install fcprivate.h which Xft1 needs.
+ Don't use installed Motif on Solaris, because it depends on Solaris
+ installed libX11.
+
+2005-06-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xft/AUTHORS:
+ * lib/Xft/COPYING:
+ * lib/Xft/ChangeLog:
+ * lib/Xft/Imakefile:
+ * lib/Xft/Makefile.am:
+ * lib/Xft/README:
+ * lib/Xft/Xft-def.cpp:
+ * lib/Xft/Xft.3.in:
+ * lib/Xft/Xft.h:
+ * lib/Xft/XftCompat.h:
+ * lib/Xft/autogen.sh:
+ * lib/Xft/configure.ac:
+ * lib/Xft/xft-config.1.in:
+ * lib/Xft/xftcolor.c:
+ * lib/Xft/xftcore.c:
+ * lib/Xft/xftdbg.c:
+ * lib/Xft/xftdpy.c:
+ * lib/Xft/xftdraw.c:
+ * lib/Xft/xftextent.c:
+ * lib/Xft/xftfont.c:
+ * lib/Xft/xftfreetype.c:
+ * lib/Xft/xftglyphs.c:
+ * lib/Xft/xftinit.c:
+ * lib/Xft/xftint.h:
+ * lib/Xft/xftlist.c:
+ * lib/Xft/xftname.c:
+ * lib/Xft/xftrender.c:
+ * lib/Xft/xftstr.c:
+ * lib/Xft/xftswap.c:
+ * lib/Xft/xftxlfd.c:
+ Sync with Xft from xlibs CVS (2.1.7 plus man page updates from
+ Branden Robinson) - see lib/Xft/ChangeLog for full details
+
+2005-06-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Fix HasExpat, HasZlib, and HasFontconfig as well for older Solaris
+ releases.
+
+2005-06-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Set HasFreetype2 to NO by default for older releases of Solaris.
+
+2005-06-23 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/os-support/bsd/drm/Imakefile:
+ Remove more traces of xf86drmCompat.c
+
+2005-06-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Fix LazyLoadFlag to work with Solaris 9 ld & Sun CC so
+ the XMonolith tinderbox stops being so red.
+
+2005-06-22 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig):
+ Add missing detection of the PCI ID for 0x5b62, Radeon X600
+ (Vladimir Kushnir).
+
+2005-06-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/xtrans/Xtranssock.c:
+ Add the rest of my patch from bugzilla #1605 to define INADDR_NONE
+ on platforms that don't define it in the system headers.
+
+2005-06-21 Kristian Høgsberg <krh@redhat.com>
+
+ * lib/xtrans/Xtranssock.c (TRANS(SocketINETConnect)): Apply patch
+ by Alan Coopersmith from #1605 to fix address resolution of
+ hostnames starting with a digit for 64 bit architechtures.
+
+Mon Jun 20 14:41:57 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/xkbui/XKBui.c: Cut and paste declaration of _XkbStrCaseCmp()
+ from XKBFileInt.h.
+
+2005-06-19 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/xdm/config/Imakefile:
+ * programs/xdm/config/Xreset:
+ * programs/xdm/config/Xstartup:
+ * programs/xdm/config/xdm-conf.cpp:
+ Bug #2959: Make sure displays other than :0 get entries in utmp when
+ started from xdm. (Tim Waugh)
+
+2005-06-18 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xhost/xhost.c:
+ Autotooling: Add #include "config.h" & use RETSIGTYPE if defined.
+
+Thu Jun 16 18:12:30 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/font/Type1/t1io.c: Put back accidentally removed #include.
+
+2005-06-16 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/font/Speedo/: Change includes to be <X11/foo.h> instead of
+ "foo.h" in some places.
+
+2005-06-16 Thomas Hellstr� <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ (ViaInitXVMC), (ViaXvMCCreateContext), (ViaXvMCCreateSurface),
+ (ViaXvMCCreateSubpicture):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.h:
+ Fix and enable Unichrome XvMC for AMD64
+
+2005-06-16 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/font/Type1/: Change includes to be <X11/foo.h> instead of
+ "foo.h" in some places.
+
+2005-06-15 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONScreenInit), (RADEONGetMergedFBOptions):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ (RADEONFindWidestTallestCommonMode),
+ (RADEONGenerateModeListFromLargestModes), (RADEONGenerateModeList),
+ (RADEONRecalcDefaultVirtualSize), (RADEONUpdateXineramaScreenInfo),
+ (RADEONXineramaExtensionInit), (RADEONMergePointerMoved),
+ (RADEONAdjustFrameMergedHelper):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.h:
+ Sync up radeon mergedfb with Thomas' recent sis mergedfb changes
+ - support for non-rectangular mergedfb desktops
+ - support for display offsets
+
+2005-06-15 Ian Romanick <idr@us.ibm.com>
+
+ * extras/drm/shared/mga_drm.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+
+ Temporary fixes until updated client-side code is in the X.org tree.
+ The first is a compile fix. The second makes OldDmaInit=true the
+ default. This is required because the X.org tree contains "new" DDX,
+ "new" DRM, and "old" client-side driver. This is the *only*
+ combination that does not work with OldDmaInit=false.
+
+2005-06-15 Ian Romanick <idr@us.ibm.com>
+
+ * extras/drm/*:
+ Re-import from DRM CVS.
+
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmCompat.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile:
+ * config/cf/xorg.cf:
+ * config/cf/OpenBSD.cf:
+ * config/cf/xfree86.cf:
+
+ The routines in xf86drmCompat are no longer need, and haven't been
+ needed for at least a release. Eliminate the file.
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.man:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c:
+ (MGADRIBootstrapDMA), (MGADRIScreenInit), (MGADRIFinishScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+
+ Bug #3259: Update MGA DDX to use new features of MGA DRM
+ version 3.2 to enable DRI support on PCI cards. Backwards
+ compatability with older client-side drivers is enabled with
+ new Device section settings. See mga.man for details.
+
+ reviewed by: Eric Anholt
+
+2005-06-14 Thomas Hellstr� <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vbe.c:
+ (ViaVbeSetRefresh), (ViaVbeSetMode):
+ via: Customized refresh for VBE modes. (VIA)
+
+2005-06-14 Thomas Hellstr� <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_i2c.c:
+ (ViaI2C3GetBit), (ViaI2CBus3Init):
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaModePrimary):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vt162x.c:
+ (VT162xPrintRegs), (VT162xSave), (VT162xRestore), (VT1621ModeCrtc),
+ (VT1622ModeCrtc), (ViaVT162xInit):
+ via: Unichrome Pro TV-out fixes.
+
+2005-06-14 Branden Robinson <branden@debian.org>
+
+ * config/cf/linux.cf:
+ Fix typo that I introduced on 2005-03-06.
+
+Mon Jun 13 18:17:06 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/oldX/*.c: Conditionally include config.h
+
+Mon Jun 13 17:51:00 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/xkbfile/*.c: Conditionally include config.h
+
+2005-06-13 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/xf86config/Cards:
+ Correct the CHIPSET lines for the 3dfx cards so the tdfx driver will
+ recognize them. I'm not sure if this file is supposed to be maintained
+ still, but I'd like to close FreeBSD ports/32121 which has been around
+ for far too long.
+
+2005-06-14 Daniel Stone <daniel@freedesktop.org>
+
+ * lib/Xcursor/cursor.c:
+ Bug #1043: Fix leak when creating animated cursors.
+
+2005-06-13 Lars Knoll <lars@trolltech.com>
+
+ * add the convolution filter from xserver to xorg
+
+2005-06-12 Adam Jackson <ajax@freedesktop.org>
+
+ * include/Xfuncproto.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.h:
+ Bug #3528: Add _X_DEPRECATED tag.
+
+2005-06-12 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xnest/Events.c:
+ Bug #3513: Silence unhandled event messages from Xnest when running
+ with -parent. (Mark McLoughlin)
+
+2005-06-12 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_priv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (viaOverlayGetV1V3Format), (viaOverlayGetSrcStartAddress),
+ (viaOverlayGetFetch), (ViaSwovSurfaceCreate),
+ (ViaSwovSurfaceDestroy), (Upd_Video), (VIAVidUpdateOverlay),
+ (ViaOverlayHide):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c: (Flip),
+ (viaPutImage), (viaQueryImageAttributes):
+ Add Unichrome Pro Group A YUY2 Xv support. (Ivor Hewitt)
+ Add Via Xv RV15, RV16 image-format support.
+
+2005-06-12 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ (VIASetAgpMode), (VIADRIAgpInit):
+ Add more elaborate AGP mode setting for the via driver.
+
+2005-06-12 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (viaWaitHQVFlip), (viaWaitHQVDone), (viaOverlayHQVCalcZoomWidth),
+ (viaOverlayHQVCalcZoomHeight), (viaCalculateVideoColor),
+ (viaSetColorSpace), (ViaInitVideoStatusFlag), (ViaSetVidCtl),
+ (AddHQVSurface), (ViaSwovSurfaceCreate), (SetFIFO_V3_64or32or32),
+ (SetFIFO_V3_64or32or16), (SetColorKey), (SetChromaKey),
+ (SetHQVFetch), (Upd_Video), (VIAVidUpdateOverlay),
+ (ViaOverlayHide):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (DecideOverlaySupport), (viaInitVideo), (viaSetupAdaptors), (Flip),
+ (nv12cp), (viaPutImage):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvpriv.h:
+ Preliminary YV12 Xv support for Unichrome Pro Group A
+ (PM800, CN400 and friends).
+ (Ivor Hewitt and myself)
+
+2005-06-09 Daniel Stone <daniel@freedesktop.org>
+
+ * lib/ICE/ICEutil.h:
+ Remove pointless inclusion of Xlib.h.
+
+ * lib/X11/OpenDis.c:
+ Fix bigreqstr.h inclusion.
+
+ * lib/Xrandr/Xrandr.c:
+ Bug #1976: Call XRRFindDisplay before we take the global lock, so we
+ don't get ruined by XextAddDisplay when running with threads.
+
+2005-06-09 Adam Jackson <ajax@freedesktop.org>
+
+ * include/extensions/shape.h
+ * include/extensions/shapestr.h
+ * lib/X11/CrWindow.c
+ * programs/Xserver/Xext/shape.c
+ * programs/Xserver/dix/dispatch.c
+ * programs/Xserver/dix/events.c
+ * programs/Xserver/dix/window.c
+ * programs/Xserver/include/windowstr.h
+ * programs/Xserver/xfixes/region.c
+ Bug #2799: Input shape. (Keith Packard)
+
+2005-06-09 Alexander Gottwald <ago@freedesktop.org>
+
+ * xc/programs/xrx/helper/GetUrl.c:
+ * xc/programs/lbxproxy/include/os.h:
+ * xc/programs/lbxproxy/os/connection.c:
+ * xc/programs/lbxproxy/os/io.c:
+ * xc/programs/xfs/os/config.c:
+ * xc/programs/xfs/os/connection.c:
+ * xc/programs/xfs/os/io.c:
+ * xc/programs/xfs/os/osglue.c:
+ * xc/lib/FS/FSOpenServ.c:
+ * xc/lib/FS/FSlibos.h:
+ * xc/lib/ICE/accept.c:
+ * xc/lib/ICE/connect.c:
+ * xc/lib/ICE/listen.c:
+ * xc/lib/ICE/listenwk.c:
+ * xc/lib/ICE/misc.c:
+ * xc/lib/ICE/shutdown.c:
+ * xc/lib/SM/sm_manager.c:
+ * xc/lib/X11/ClDisplay.c:
+ * xc/lib/X11/ConnDis.c:
+ * xc/lib/X11/OpenDis.c:
+ * xc/lib/X11/XlibInt.c:
+ * xc/lib/X11/imTrans.c:
+ * xc/lib/font/fc/fsconvert.c:
+ * xc/lib/font/fc/fserve.c:
+ * xc/lib/font/fc/fsio.c:
+ * xc/lib/font/fc/fslibos.h:
+ Replace <X11/Xtrans.h> with <X11/Xtrans/Xtrans.h>
+ * xc/lib/xtrans/Imakefile:
+ Copy Xtrans.h to exports/include/X11/Xtrans only
+
+2005-06-09 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_dri.c
+ Bug #3496 <https://bugs.freedesktop.org/show_bug.cgi?id=3496>
+ Remove a bogus check for DRM 1.2 for resume functionality as it's
+ been present since 1.1
+
+2005-06-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/sunos/agpgart.h:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_agp.c:
+ Add agpgart support for Solaris x86/x64. [Requires
+ Solaris "Nevada" build 16 or later to get kernel side for now.]
+ (Sophia Li - Sun Microsystems)
+
+2005-06-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Add HasWeakSymbols & MotifDir defines to fix libGLw build on Solaris.
+
+2005-06-08 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/miext/damage/damage.c:
+ Bug #2469: More accurate damage reports. (Jonathan Lennox)
+
+2005-06-08 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/Xext/panoramiX.c:
+ * programs/Xserver/os/utils.c:
+ Bug #1846: Add intentionally undocumented -disablexineramaextension
+ flag to the server to work around ignorant clients on large display
+ walls. (Kevin E. Martin)
+
+2005-06-08 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xnest/Display.c:
+ * programs/Xserver/hw/xnest/Display.h:
+ Bug #1880: Remove unused xnestConfineWindow. (Mark McLoughlin)
+
+2005-06-08 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/fb/fbpict.h:
+ Bug #3434: Don't define fbAddTraps twice. (Mike A. Harris)
+
+2005-06-08 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/Xrandr/Xrandr.c: Conditionally include config.h
+
+2005-06-08 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c
+ Fix the mode validation such that using function 5f05 to set
+ the refresh rate works again.
+
+2005-06-07 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Fix text restoration when display switching has been activated
+ and we could be potentially on a different display than the
+ initial one.
+
+2005-06-04 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ Bug #3054 <https://bugs.freedesktop.org/show_bug.cgi?id=3054>
+ Fix some offset, pitch and overlay scaler size problems with
+ the video overlay. Solves various spontaneous lockups.
+
+2005-06-04 Alan Coopersmith <alan.coopersmith@sun.com>
+ * lib/X11/ConnDis.c (GetAuthorization):
+ Bug #3436 <https://bugs.freedesktop.org/show_bug.cgi?id=3436>
+ Conndis.c uses incorrect type for args to XdmcpWrap()
+ (Mike Harris - mharris@www.linux.org.uk)
+
+2005-06-04 Alan Coopersmith <alan.coopersmith@sun.com>
+ * programs/Xserver/hw/xfree86/drivers/ati/ativga.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c:
+ Sync with 6.8.2 branch:
+ Bug #591 (https://bugs.freedesktop.org/show_bug.cgi?id=591)
+ attachment #308 (https://bugs.freedesktop.org/attachment.cgi?id=308):
+ Fix video timing problems with Sony PCG-C1VN Vaio Picturebook notebook
+ && co.
+ Patch by Marc Aurele La France
+
+2005-06-04 Alan Coopersmith <alan.coopersmith@sun.com>
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c (RADEONValidateFPModes):
+ Sync with 6.8.2 branch:
+ Bugzilla #1306 (https://bugs.freedesktop.org/show_bug.cgi?id=1306)
+ attachment #1291 (https://bugs.freedesktop.org/attachment.cgi?id=1291):
+ Fix SEGV in "radeon" driver.
+ Patch by Kevin E. Martin <kem@freedesktop.org>
+
+2005-06-04 Alan Coopersmith <alan.coopersmith@sun.com>
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_tcl.c
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_swtcl.c
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_tcl.c
+ Sync with 6.8.2 branch:
+ Bugzilla #2110 (https://bugs.freedesktop.org/show_bug.cgi?id=2110)
+ attachment #1569 (https://bugs.freedesktop.org/attachment.cgi?id=1569):
+ Fix build bustage in MESA/DRI code with gcc 2.96.
+ Patch by Kevin E. Martin <kem@freedesktop.org>
+
+2005-06-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_mouse.c:
+ Need to set initial screen size at device open time too.
+
+2005-06-01 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_mouse.c:
+ Solaris VUID mouse protocol updates:
+ - support for mouse-like devices that report absolute coordinates
+ - support for mouse-like devices that need to know screen size so
+ they can scale absolute coordinates to screen size
+ - fix 3-button emulation
+
+2005-05-30 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ * programs/Xserver/hw/xfree86/drivers/i810/common.h
+ Add Intel(R) 945G support
+
+2005-05-30 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/dixsym.c:
+ Bug #3368: Cosmetic cleanup to DIX export list.
+
+2005-05-30 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/XTrap/XEWrappers.c:
+ * programs/Xserver/GL/glx/glxext.c:
+ * programs/Xserver/GL/glx/glxscreens.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxext.c:
+ Bug #3407: Clean out ancient #ifdef X11R5 conditionals.
+
+2005-05-29 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/specs/programs/Imakefile (XFREE86_MANUALS):
+ Bugzilla Bug 3385 <https://bugs.freedesktop.org/show_bug.cgi?id=3385>
+ Patch #2758 <https://bugs.freedesktop.org/attachment.cgi?id=2758>
+ Fix xc/programs/Xserver/hw/xfree86/doc/man/Imakefile broken man page
+ installation due to Xxf86misc & Xxf86vm man page move to lib dirs.
+ (Donnie Berkholz)
+
+2005-05-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * xc/include/fonts/Imakefile:
+ Link more files to exports/ to fix the monolithic tree build.
+
+2005-05-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Change hardcoded /usr/X11R6 to PROJECTROOT. Change hardcoded
+ XF86Config to XCONFIGFILE.
+
+2005-05-27 Josh Triplett <josh@freedesktop.org>
+
+ * xc/lib/font/FreeType/ftenc.c:
+ * xc/lib/font/FreeType/ftfuncs.c:
+ * xc/lib/font/FreeType/fttools.c:
+ * xc/lib/font/bitmap/bdfutils.c:
+ * xc/lib/font/builtins/builtin.h:
+ * xc/lib/font/fc/fsconvert.c:
+ * xc/lib/font/fc/fserve.c:
+ * xc/lib/font/fc/fsio.c:
+ * xc/lib/font/fontcache/fontcache.h:
+ * xc/lib/font/include/fntfilst.h:
+ * xc/lib/font/include/fontutil.h:
+ * xc/lib/font/include/fontxlfd.h:
+ * xc/lib/font/stubs/stubs.h:
+ * xc/lib/font/util/fontaccel.c:
+ * xc/lib/font/util/fontnames.c:
+ * xc/lib/font/util/fontutil.c:
+ * xc/lib/font/util/fontxlfd.c:
+ * xc/lib/font/util/format.c:
+ * xc/lib/font/util/patcache.c:
+ * xc/lib/font/util/private.c:
+ Reference X11/fonts header files using X11/fonts/ prefix.
+
+Wed May 25 17:41:00 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/FS/*.c: Conditionally include config.h
+ * lib/FS/FSlibint.h: Remove redundant include of FSproto.h
+
+2005-05-25 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c
+ Change the sequence on how refresh rates are set in the
+ i830 driver. This works much better with custom modelines.
+
+2005-05-25 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c: (VIAProbe),
+ (VIAPreInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.c:
+ (ViaCheckCardId):
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.h:
+ Fix up some leftover strings pointing to unichrome.sf.net.
+
+2005-05-24 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/util/makestrs.c:
+ * config/util/makestrs.man:
+ Make source directory for templates configurable
+
+2005-05-23 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xdm/chooser.c:
+ * programs/xdm/Chooser.ad:
+ Bugzilla #2165 <https://bugs.freedesktop.org/show_bug.cgi?id=2165>
+ Patches #1599 & 2754
+ XDM Chooser enhancements: scrollwheel, no mouse (Thomas Reifferscheid)
+
+2005-05-23 Søren Sandmann <sandmann@redhat.com>
+
+ * xc/lib/Xaw/*.c: Conditionally include config.h
+
+2005-05-23 Thomas Hellstrom <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/hw/via/viaLowLevel.c: (hwlLock), (hwlUnlock),
+ (timeDiff), (setAGPSyncLowLevel), (viaDMATimeStampLowLevel),
+ (viaDMAWaitTimeStamp), (viaDMAInitTimeStamp),
+ (viaDMACleanupTimeStamp), (viaMpegGetStatus), (viaMpegIsBusy),
+ (syncDMA), (syncVideo), (syncAccel), (syncMpeg), (pciFlush),
+ (agpFlush), (flushXvMCLowLevel), (flushPCIXvMCLowLevel),
+ (viaMpegSetSurfaceStride), (viaVideoSetSWFLipLocked),
+ (viaVideoSWFlipLocked), (viaMpegSetFB), (viaMpegBeginPicture),
+ (viaMpegReset), (viaMpegWriteSlice), (viaVideoSubPictureOffLocked),
+ (viaVideoSubPictureLocked), (viaBlit), (syncXvMCLowLevel),
+ (initXvMCLowLevel), (setLowLevelLocking), (closeXvMCLowLevel):
+ * lib/XvMC/hw/via/viaLowLevel.h:
+ * lib/XvMC/hw/via/viaXvMC.c: (releaseDecoder), (grabDecoder),
+ (releaseContextResources), (XvMCCreateContext),
+ (XvMCDestroyContext), (XvMCCreateSurface), (XvMCPutSlice2),
+ (XvMCPutSlice), (updateXVOverlay), (XvMCPutSurface),
+ (XvMCBeginSurface), (XvMCSyncSurface), (XvMCCreateSubpicture),
+ (XvMCSetSubpicturePalette), (XvMCClearSubpicture),
+ (XvMCCompositeSubpicture), (XvMCBlendSubpicture2),
+ (XvMCSyncSubpicture), (XvMCDestroySubpicture), (XvMCFlushSurface),
+ (XvMCHideSurface):
+ * lib/XvMC/hw/via/viaXvMCPriv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/via/via.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via.man:
+ * programs/Xserver/hw/xfree86/drivers/via/via_accel.c:
+ (dispatchCBufferAGP):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bandwidth.c:
+ (ViaSetPrimaryFIFO), (ViaSetSecondaryFIFO):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_common.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_cursor.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dga.c:
+ (VIADGASetMode), (VIADGASetViewport):
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ (VIADRIRingBufferCleanup), (VIADRIRingBufferInit), (VIADRIAgpInit),
+ (VIADRIFBInit), (VIADRIScreenInit), (VIADRICloseScreen),
+ (VIADRIKernelInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ (VIAGetRec), (VIAProbe), (kickVblank), (VIAPreInit), (VIAEnterVT),
+ (VIALeaveVT), (VIAMapFB), (VIAScreenInit), (VIAWriteMode),
+ (VIACloseScreen), (VIAAdjustFrame), (VIASwitchMode), (VIADPMS),
+ (VIAInitialize3DEngine):
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_drm.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_drmclient.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_i2c.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memcpy.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memcpy.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memory.c:
+ (VIAFreeLinear), (VIAAllocLinear):
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaTVDetect), (ViaTVInit), (ViaTVSetMode), (ViaTVPrintRegs),
+ (ViaTVModeValid), (ViaOutputsDetect), (ViaOutputsSelect),
+ (VIAGetPanelSize), (ViaPanelGetIndex), (ViaModesAttachHelper),
+ (ViaModesAttach), (ViaGetMemoryBandwidth),
+ (ViaModePrimaryVGAValid), (ViaModeSecondaryVGAValid),
+ (ViaValidMode), (ViaSetUseExternalClock), (ViaSetPrimaryDotclock),
+ (ViaSetSecondaryDotclock), (VIASetLCDMode), (ViaModePrimaryVGA),
+ (ViaModeDotClockTranslate), (ViaModePrimary),
+ (ViaModeSecondaryVGA), (ViaModeSecondary):
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_overlay.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_overlay.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_priv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regrec.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regrec.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_shadow.c:
+ (ViaShadowFBInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (viaWaitHQVIdle), (viaWaitVideoCommandFire), (viaWaitHQVFlip),
+ (viaWaitHQVFlipClear), (viaWaitVBI), (viaWaitHQVDone),
+ (FlushVidRegBuffer), (ResetVidRegBuffer), (SaveVideoRegister),
+ (viaOverlayGetV1V3Format), (viaOverlayGetSrcStartAddress),
+ (viaOverlayGetYCbCrStartAddress), (viaOverlayHQVCalcZoomWidth),
+ (viaOverlayHQVCalcZoomHeight), (viaOverlayGetFetch),
+ (rangeEqualize), (vPackFloat), (viaCalculateVideoColor),
+ (viaSetColorSpace), (ViaInitVideoStatusFlag), (ViaSetVidCtl),
+ (AddHQVSurface), (CreateSurface), (ViaSwovSurfaceCreate),
+ (ViaSwovSurfaceDestroy), (SetFIFO_V3_64or32or32),
+ (SetFIFO_V3_64or32or16), (SetupFIFOs), (SetChromaKey),
+ (SetDisplayCount), (SetVideoWindow), (Upd_Video),
+ (VIAVidUpdateOverlay), (ViaOverlayHide):
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vbe.c:
+ (ViaVbeAdjustFrame), (ViaVbeSetMode), (ViaVbeSaveRestore),
+ (ViaVbeModePreInit), (ViaVbePanelPower), (ViaVbePanelLowPower),
+ (ViaVbeDoDPMS), (ViaVbeDPMS):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.c:
+ (ViaVgahwPrint):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (DecideOverlaySupport), (viaResetVideo), (viaExitVideo),
+ (viaInitVideo), (viaSetupAdaptors), (viaStopVideo),
+ (viaSetPortAttribute), (viaGetPortAttribute), (viaQueryBestSize),
+ (Flip), (viaPutImage), (viaQueryImageAttributes),
+ (VIAVidAdjustFrame):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vt162x.c:
+ (VT162xPrintRegs), (ViaVT162xDetect), (VT162xSave),
+ (VT162xRestore), (VT162xDACSenseI2C), (VT1621DACSense),
+ (VT1622DACSense), (VT1621ModeIndex), (VT1621ModeValid),
+ (VT1622ModeIndex), (VT1622ModeValid), (VT162xSetSubCarrier),
+ (VT1621ModeI2C), (VT1621ModeCrtc), (VT1622ModeI2C),
+ (VT1622ModeCrtc), (VT1621Power), (VT1622Power), (ViaVT162xInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vt162x.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ (cleanupViaXvMC), (ViaInitXVMC), (ViaCleanupXVMC),
+ (ViaXvMCCreateContext), (ViaXvMCCreateSurface),
+ (ViaXvMCCreateSubpicture), (ViaXvMCDestroySurface),
+ (viaXvMCInitXv), (viaXvMCInterceptXvAttribute),
+ (viaXvMCInterceptXvGetAttribute), (viaXvMCDisplayAttributes),
+ (viaXvMCInterceptPutImage), (viaXvMCPutImageSize):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvpriv.h:
+
+ Sync with Unichrome CVS 2005-05-20. Highlights:
+ - Extensive output, Xv and XvMC cleanups.
+ - More general mode support, with a discrete set of dotclocks.
+ - TV-out noscale / overscan modeline support.
+ - DRI and Xv bugfixes.
+ - VBE modes for unsupported chipsets and hardware configurations.
+ - Initial Unichrome Pro mode support.
+ - K8M/N800 Xv and XvMC support.
+ - Increased pipelining in the XvMC client library using AGP DMA.
+
+ (Luc Verhaegen, Thomas Hellström, Terry Barnaby)
+ For detailed changelog, see http://unichrome.sourceforge.net.
+
+ Remove the old MTRR setup failure hack.
+ Make VBEModes option visible even when DEBUG is not defined.
+ Update dotclock table with tested Unichrome Pro dotclocks.
+ Disable XvMC on 64-bit architectures.
+ Patch #1172117 from the Unichrome site tracker.
+
+ (Thomas Hellström)
+
+2005-05-23 Adam Jackson <ajax@freedesktop.org>
+
+ * include/Xfuncproto.h:
+ Bug #3360: Add _X_EXPORT, _X_HIDDEN, and _X_INTERNAL visibility tags.
+
+2005-05-23 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONCloseScreen), (RADEONDisplayPowerManagementSet):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_macros.h:
+ Explicitely disable DPMS power states during close screen.
+ Fix macro that takes a value and a mask of bits to modify
+ to be behave evquvalently if the bits that should remain unchanged
+ are set or unset in the value (Bugzilla #3369).
+
+2005-05-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xmu/CvtStdSel.c:
+ Move #ifdef HAVE_CONFIG_H outside of #ifdef SYSVNET
+
+2005-05-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/extensions/Xevie.h:
+ * include/extensions/Xeviestr.h:
+ * lib/Xevie/Xevie.c:
+ Move request id definitions to Xeviestr.h, leaving Xevie.h for
+ client library definitions and Xeviestr.h for protocol definitions
+ to allow cleaner split in modularization.
+
+2005-05-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/dix/devices.c:
+ * programs/Xserver/hw/xfree86/loader/dixsym.c:
+ * programs/Xserver/dix/privates.c:
+ * programs/Xserver/dix/main.c:
+ * programs/Xserver/dix/events.c:
+ * programs/Xserver/Xext/xevie.c:
+ * include/extensions/XKBsrv.h:
+ * programs/Xserver/xkb/xkbActions.c:
+
+ Bugzilla #2800 <https://bugs.freedesktop.org/show_bug.cgi?id=2800>
+ Xevie extension crash with signal 11 on keyboard
+ Bugzilla #1205 <https://bugs.freedesktop.org/show_bug.cgi?id=1205>
+ Xevie client receives two KeyPress events on consumed keys when
+ XKB is enabled
+
+ Patch #2223 <https://bugs.freedesktop.org/attachment.cgi?id=2223>
+ Fixes for both of these and some other Xevie bugs
+ (Derek Wang - Sun Microsystems)
+
+2005-05-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/Imake.cf:
+ * config/cf/sun.cf:
+ * config/cf/svr4.cf:
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.h:
+ * programs/Xserver/hw/xfree86/os-support/sunos/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/sunos/solaris-amd64.S:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbdEv.c:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_mouse.c:
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_vid.c:
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ * programs/Xserver/include/servermd.h:
+ * programs/Xserver/mi/micoord.h:
+
+ Initial experimental support for AMD64 builds on Solaris 10 x86.
+ Improved support for 64-bit SPARC builds on Solaris as well.
+ (Andy Bowers, Andy Burrows, & Alan Coopersmith - Sun Microsystems)
+
+2005-05-20 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dri.c:
+ Bug #3346: Don't include DRI-internal headers from the drivers.
+ Pointed out by Kevin Martin.
+
+2005-05-20 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/Imakefile
+ * programs/Xserver/hw/xfree86/drivers/i810/common.h
+ * programs/Xserver/hw/xfree86/drivers/i810/i810.man
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830.h
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Bugzilla #3292: https://bugs.freedesktop.org/show_bug.cgi?id=3292
+ Add shadowFB support to the Intel driver (Dima Dorfman)
+
+2005-05-20 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830.h
+ Bugzilla #2339: https://bugs.freedesktop.org/show_bug.cgi?id=2339
+ Bugzilla #1064: https://bugs.freedesktop.org/show_bug.cgi?id=1064
+ Bugzilla #3055: https://bugs.freedesktop.org/show_bug.cgi?id=3055
+ Much better display switching support for mobile chipsets using
+ the Fn+F? combination keys.
+ Add DirectColor support.
+ Add gamma correction support.
+
+2005-05-20 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/common.h
+ Bugzilla #2585: https://bugs.freedesktop.org/show_bug.cgi?id=2585
+ Support the Intel E7221 server chipset.
+
+2005-05-19 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/Amoeba.cf:
+ * config/cf/WinLib.tmpl:
+ * config/cf/bsdi.cf:
+ * config/cf/bsdiLib.tmpl:
+ * config/cf/cray.cf:
+ * config/cf/cygwin.rules:
+ * config/cf/cygwin.tmpl:
+ * config/cf/dmx.cf:
+ * config/cf/gnuLib.tmpl:
+ * config/cf/hp.cf:
+ * config/cf/hpLib.tmpl:
+ * config/cf/ibmLib.tmpl:
+ * config/cf/luna.cf:
+ * config/cf/lynx.cf:
+ * config/cf/macII.cf:
+ * config/cf/mingw.rules:
+ * config/cf/mingw.tmpl:
+ * config/cf/os2def.db:
+ * config/cf/osf1.cf:
+ * config/cf/osfLib.tmpl:
+ * config/cf/sco5.cf:
+ * config/cf/sequent.cf:
+ * config/cf/sgi.cf:
+ * config/cf/sony.cf:
+ * config/cf/sun.cf:
+ * config/cf/sunLib.tmpl:
+ * config/cf/ultrix.cf:
+ * programs/Xserver/hw/xfree86/loader/dixsym.c:
+ * programs/Xserver/include/globals.h:
+ * programs/Xserver/mi/miinitext.c:
+ * programs/Xserver/os/utils.c:
+ * programs/xdpyinfo/Imakefile:
+ Bug #3334: Clean up remnants from the PEX, XIE, and BEZIER extensions.
+
+Thu May 19 10:57:32 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * xc/extras/Xpm/lib/*.c: Conditionally include config.h.
+
+Thu May 19 10:36:54 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/cxpm/Imakefile (INCLUDES): Add "../lib" to INCLUDES.
+
+ * programs/cxpm/cxpm.c: Replace #include "../lib/foo" with
+ #include "foo".
+
+2005-05-18 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageInitAccel):
+ Disable ScreentoScreenCopy on crtc2 at depth 24. Fixes
+ screen corruption.
+
+Wed May 18 21:20:35 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c (fbCompositeSrc_8888x8x8888mmx):
+ s/dst/src that I missed in the previous patch. Pointed out by
+ Owen Taylor.
+
+Wed May 18 16:47:44 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c (fbCompositeSrc_8888x8x8888mmx):
+ Actually assign the computed results. (Reported by Michael
+ Dänzer, patch by Owen Taylor).
+
+Wed May 18 16:26:20 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/Xp/*.c: Conditionally include config.h
+
+2005-05-18 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/GL/dri/dri.c:
+ * programs/Xserver/GL/dri/dri.h:
+ Bug #3066: Promote frameBufferPhysicalAddress to pointer from CARD32;
+ bump DRIINFO version to match. Fix various pointer printfs in libdri
+ to be 64-bit aware. Silence a warning about redefining
+ noXFree86DRIExtension. (Jesse Barnes)
+
+Wed May 18 15:04:23 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/Xmu/*.c: Conditionally include config.h
+
+Wed May 18 14:42:45 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/Xext/*.c: Conditionally include config.h
+
+ * lib/Xext/XShm.c: Remove unnecessary include of ImUtil.h
+
+ * Xt/*.c: Conditionally include config.h
+
+2005-05-18 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/GL/dri/dri.c:
+ * programs/Xserver/GL/dri/dri.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atidri.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ Bug #3163: Create new DRIINFO_*_VERSION macros to indicate the
+ version number of the DRIInfoRec, disambiguating it from the XF86DRI
+ protocol version number. Modify DRIQueryVersion to return the libdri
+ version number, which all DDXes were requesting implicitly. Fix the
+ DDXes to check for the DRIINFO version they were compiled against.
+
+2005-05-18 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/vbe/vbe.c: (VBESetVBEMode):
+ VBESetVBEMode() calls int10 0x4f02 to set a VBE video mode. This
+ can be a standard mode solely determined by the mode ID or it may
+ be a detailed mode with almost arbitrary mode parameters. The mode
+ parameters are passed to the BIOS in a memory area pointed to by
+ es:di. If bit 11 in the video mode is set this memory area is
+ evaluated.
+ When we don't have such an area (passed to VBESetVBEMode() this
+ function should unset this bit for sanity reasons.
+ (Bugzilla #3329)
+
+2005-05-18 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c: (configMonitor):
+ Avoid segfaults if the number of user supplied monitor ranges
+ exceed the number of preallocated slots. We should really make this
+ dynamic - but I don't think this ever caused a problem so it's
+ more or less academic.
+ * programs/Xserver/hw/xfree86/common/xf86Mode.c: (ModeHSync),
+ (ModeVRefresh), (xf86SetModeCrtc), (xf86CheckModeForMonitor),
+ (xf86InitialCheckModeForDriver), (xf86ValidateModes),
+ (xf86PrintModes):
+ A. Avoid that *SyncStart starts before *BlankStart. If *BlankStart >
+ *SyncStart it is made = *SyncStart and its width is made maximal
+ but such that the blank does not exceed *Total. Since the Sync
+ width has the same restrictions as the Blank width monitors
+ should still be able to clamp after the sync pulse.
+ B. Over time mode validation has become inconsistent when people
+ started to add additional features to the mode validation. One
+ such feature is that the mode->Crtc* values have been (ab)used
+ to allow the driver ValidMode() function to pass driver
+ normalized timing values back to the validation function.
+ The introduction of these features made the code less readable
+ and created numerous possibly unintended side effects in the
+ validation semantics.
+ I've attempted to consolidate these changes making the code
+ more consistent and eliminating a number of side effects.
+ This should not cause problems for the majority of drivers,
+ still it should receive testing - especially with ATi Mach64
+ and Radeon code.
+ (Bugzilla #3325).
+
+Tue May 17 17:24:09 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/SM/*.c: Conditionally include config.h
+
+2005-05-17 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c:
+ (SavageHWCursorInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ Set the hardware to 8bit CLUT mode in 8 bpp. We used to flag an
+ 8 bit DAC to DDX but did not make sure it actually was running
+ in 8 bit mode.
+ On Savage4 the HW cursor doesn't seem to be truecolor in 8bpp
+ - not even with the streams engine running.
+ Fix SavageProbeDDC() to load vbe module and initialize it before
+ using it (Bugzilla #3309).
+
+2005-05-17 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * include/Xfuncproto.h:
+ * lib/X11/Xlib.h:
+ * lib/Xt/Intrinsic.h:
+ * lib/Xt/IntrinsicI.h:
+
+ gcc4 allows to check if sentinels are correct (a sentinel is the
+ terminating element in a varargs list). A sentinel needs to be
+ NULL, not 0 - which doesn't make a difference on 32bit but
+ matters on 64bit.
+ Furthermore it can be told that functions have a printf-like
+ format string and argument list so that they can verify that
+ both match.
+ To use these features certain attributes need to be set - which
+ are compiler specific. To do this we define macros which are
+ expanded depending on the compiler version.
+ For now we put those in include/Xfuncproto.h (the XFree86 DDX
+ layer contains a file compiler.h which however is not visible
+ outside the DDX) (Bugzilla #3268).
+
+
+2005-05-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/makedepend/main.c:
+ * config/util/makestrs.c:
+ [Modularization/autotooling project]
+ Add support for building with autoconf #ifdefs if present.
+ #include "makedepend-config.h" if HAVE_CONFIG_H is defined.
+
+2005-05-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sun.cf:
+ Add settings to bring Solaris builds closer to the ones Sun
+ packages in Solaris. Adds "BuildLikeSun" options for areas
+ Sun deviates from the way Xorg is packaged on other platforms.
+ See comment in sun.cf for details.
+ Also, use system-provided Expat on Solaris 10 and other cleanups.
+ * config/cf/sunLib.tmpl:
+ Set shared library versions for Solaris builds to match versions
+ used in Solaris. Add missing SharedXfixesReqs and SharedXdamageReqs.
+ * config/util/makestrs.c:
+ Add -solarisabi option to create XtStrings code compatibile with
+ existing Solaris binaries. (Off by default, on if "BuildLikeSun"
+ is set in sun.cf)
+
+2005-05-15 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c:
+ (mtrr_remove_offending):
+ Bug #2750: Prevent mtrr_remove_offending from ending up in an
+ endless loop if an offending mtrr region refuses to be removed
+
+2005-05-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/fb/fbcompose.c:
+ Change return statements to fix compiler errors:
+ "fbcompose.c", line 2815: void function cannot return value
+ "fbcompose.c", line 2861: void function cannot return value
+
+2005-05-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xxf86vm/Imakefile:
+ * lib/Xxf86vm/XF86VM.man:
+ * lib/Xxf86misc/Imakefile:
+ * lib/Xxf86misc/XF86Misc.man:
+ * programs/Xserver/hw/xfree86/doc/Imakefile:
+ * programs/Xserver/hw/xfree86/doc/man/Imakefile:
+ Move man pages for libXxf86vm & libXxf86misc to the directory for
+ the libraries.
+
+Fri May 13 18:35:12 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/X11/*.c: Conditionally include config.h
+
+Thu May 12 12:24:16 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/Xdmcp/*.c: Conditionally include config.h
+
+Wed May 11 17:00:59 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * lib/Xau/*.c: Conditionally include config.h
+
+2005-05-10 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/linux.cf:
+ * programs/Xserver/hw/xfree86/input/evdev/evdev.c:
+ Bug #968: Grab the event device used by the evdev driver to avoid
+ weird issues when input goes to multiple places. Restrict building
+ the evdev driver to 2.6 kernels since EVIOCGRAB didn't exist in 2.4.
+
+2005-05-09 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c: (PostKbdEvent):
+ * programs/Xserver/hw/xfree86/os-support/shared/at_scancode.c:
+ (ATScancode):
+ Bugzilla #2561: Disable some keycode translations on PC98, which had
+ various bad effects including modifier keys not working.
+
+2005-05-09 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c:
+ Bugzilla #2429: Correct the sysarch prototype for FreeBSD/alpha.
+
+2005-05-09 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.man:
+ Bugzilla #2389: Document the maximum number of buttons a mouse can have.
+ Correct a missing period I noticed while I was here.
+
+2005-05-09 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/os-support/xf86OSmouse.h:
+ Increase the maximum number of buttons from 12 to 24. Helps with
+ button-happy mice like the Logitech MediaPlay.
+ (Bugzilla #2390)
+
+2005-05-09 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c: (VESAPreInit),
+ (VESASwitchMode), (VESASetMode):
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.h:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.man:
+ VBE Set Mode (0x02) to not clear the screen causes problems
+ on some BIOSes. This fix adds an option to disable it
+ (Bugzilla #3246).
+
+2005-05-09 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c: (VESASetMode):
+ Setting the DAC Palette format with VBE function 0x08 causes
+ problems on some BIOSes when depth > 8.
+ The attached patch avoids this setting (Bugzilla #3247).
+
+2005-05-08 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/fb/fbcompose.c:
+ * programs/Xserver/fb/fbpict.c:
+ * programs/Xserver/fb/fbpict.h:
+ * programs/Xserver/render/picture.h:
+ Render performance improvements. (Lars Knoll, Zack Rusin)
+
+2005-05-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/README.dps
+ * programs/Xserver/hw/xfree86/doc/RELNOTES
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
+ * programs/Xserver/hw/xfree86/doc/sgml/dps.sgml
+ Bugzilla #3080: https://bugs.freedesktop.org/show_bug.cgi?id=3080
+ Patch #2636: https://bugs.freedesktop.org/attachment.cgi?id=2636
+ Clearly document impending demise of DPS.
+
+2005-05-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/config/cf/sun.cf:
+ * xc/config/cf/sunLib.tmpl:
+ * xc/config/cf/sv4Lib.rules:
+ Bugzilla #3243: https://bugs.freedesktop.org/show_bug.cgi?id=3243
+ Patch #2635: https://bugs.freedesktop.org/attachment.cgi?id=2635
+ libGLU/glxinfo build fixes for Sun C++ compiler on Solaris:
+ - Set C++ runtime library to -lCrun when using Sun C++ 5.0 or newer
+ - Make .so -> .so.$REV links in $TOP/export/lib for C++ libraries on
+ SVR4 in the same way we already do for C libraries
+ - Set libGLU required libraries list for Solaris
+
+2005-05-08 Bogdan Diaconescu <b_diaconescu@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ Bugzilla #3192: https://bugs.freedesktop.org/show_bug.cgi?id=3192
+ Fixed SDK install
+
+2005-05-05 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * lib/GL/apple/dri_driver.c:
+ * programs/Xserver/hw/darwin/darwinKeyboard.c:
+ * programs/Xserver/hw/darwin/quartz/xpr/x-hash.c:
+ (hash_table_modify):
+ Fix build issues on Mac OS X 10.4.0.
+
+2005-05-05 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/dmx/doc/Imakefile:
+ Bugzilla #3182: https://bugs.freedesktop.org/show_bug.cgi?id=3182
+ Patch #2612: https://bugs.freedesktop.org/attachment.cgi?id=2612
+ Protect the doc target with BuildSgmlDocs.
+
+2005-05-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/FreeBSD.cf:
+ * config/cf/Imake.cf:
+ * programs/Xserver/hw/xfree86/common/compiler.h:
+ * programs/Xserver/hw/xfree86/loader/loader.c: (_LoaderFileToMem):
+ * programs/Xserver/hw/xfree86/os-support/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bus/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.h:
+ Port X.Org to FreeBSD/powerpc. This makes a bit of math for sysmouse
+ in mouse.c explicitly signed, avoiding the need for -fsigned-chars.
+ (Peter Grehan, grehan at FreeBSD dot org)
+
+2005-05-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/Imakefile:
+ Install the xorg.conf.eg file referred to by xorg.conf(5). Its
+ installation was disabled before 6.7.0 when it was called XF86Config.eg.
+ (FreeBSD ports/73915)
+
+2005-04-28 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/X11.tmpl:
+ Bug #3080: Disable DPS in the default build.
+
+2005-04-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * include/Xosdefs.h:
+ Don't define X_NOT_STDC_ENV on Solaris x86.
+ Bugzilla #3158: https://bugs.freedesktop.org/show_bug.cgi?id=3158
+ Patch #2588: https://bugs.freedesktop.org/attachment.cgi?id=2588
+ (Henry Zhao, Sun Microsystems)
+
+2005-04-27 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/os/utils.c: (OsBlockSignals):
+ Catch SIGCHLD in OsBlockSignals() too to make sure this
+ signal doesn't intercept reading the authority file (Fabian Franz,
+ Bugzilla #3137).
+
+2005-04-26 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ bugzilla #2879 (https://bugs.freedesktop.org/show_bug.cgi?id=2879)
+ attachment #2556 (https://bugs.freedesktop.org/attachment.cgi?id=2556)
+ Refix for bug 2879 - downgrade 15bit PseudoColor to 14bit - the current
+ datatype for the |ColormapEntries| is a |signed short| which is too
+ small for |32768| colors (=integer overflow).
+
+2005-04-26 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xdpyinfo/xdpyinfo.c
+ bugzilla #2705 (https://bugs.freedesktop.org/show_bug.cgi?id=2705)
+ attachment #2555 (https://bugs.freedesktop.org/attachment.cgi?id=2555)
+ bug 2705 part II: Fix build to work with |#define BuildXprint NO|
+ Patch by Kevin E. Martin <kem@freedesktop.org>
+
+2005-04-25 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/xf/X11.tmpl:
+ Bug #3069: Reenable DefaultFontPath and DefaultFSFontPath which got
+ removed in the BuildLowMem commit
+
+2005-04-23 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/loadmod.c:
+ Bug #2138: When the server is built with MakeDllModules YES, prefer
+ dlloader modules to elfloader modules, and vice versa when
+ MakeDllModules is NO. Based on 028_loader_speed_hack.diff from
+ Ubuntu (Daniel Stone).
+
+2005-04-23 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c:
+ Bug #2141: Rework misleading warning message when APM support is
+ unavailable. (Previous patch on 2005-04-14 changed the wrong message.)
+
+2005-04-23 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/xorg.cf:
+ Bug #2072: Always define LargePositionIndependentCFlags on sparc
+ systems using gcc. (Ferris McCormick)
+
+2005-04-23 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/programs/Xserver/Xext/Imakefile
+ * xc/programs/Xserver/dix/Imakefile
+ * xc/programs/Xserver/dix/main.c
+ * xc/programs/Xserver/dix/xpstubs.c
+ * xc/programs/Xserver/mi/miinitext.c
+ * xc/programs/Xserver/os/utils.c
+ bugzilla #2792 (https://bugs.freedesktop.org/show_bug.cgi?id=2792)
+ attachment #2526 (https://bugs.freedesktop.org/attachment.cgi?id=2526)
+ bug 2792 part II: Make Xprint headers in dix/, mi/, os/ and Xext/
+ conditional on whether the Xprint extension is build or not.
+ Patch by Egbert Eich <eich@freedesktop.org> and Roland Mainz
+ <roland.mainz@nrubsig.org>.
+
+2005-04-23 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/dix/main.c
+ bugzilla #3118 (https://bugs.freedesktop.org/show_bug.cgi?id=3118)
+ attachment #2525 (https://bugs.freedesktop.org/attachment.cgi?id=2525)
+ Get Xprint server working again which was broken by the
+ 05/04/20 05:49:46 commit commit (the CPP symbol |XPRINT| is not
+ universally available when building the Xserver and should be used
+ with care).
+
+2005-04-23 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/linux.cf
+ * xc/config/cf/sun.cf
+ bugzilla #3023 (https://bugs.freedesktop.org/show_bug.cgi?id=3023)
+ attachment #2523 (https://bugs.freedesktop.org/attachment.cgi?id=2523)
+ Make the Xserver and libraries (X11, Xt, Xaw etc.) and client
+ applications largefile-aware by default on Linux and Solaris (*BSD
+ platforms and IRIX are aready largefile-aware by default, only the
+ status of AIX+HP/UX is currently unknown). The change does not
+ affect Xserver modules loaded via the ELF loader which would either
+ require an ABI change or a port of the whole lf64(5) API (both steps
+ may not be required as the ELF loader may go away in favour of the DL
+ loader where the libc wrapper is no longer needed to access files).
+
+2005-04-23 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/X11.tmpl:
+ Bug #2606: Force the Security extension to be built if the Appgroup
+ extension is requested.
+
+2005-04-23 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/loadmod.c:
+ Bug #3016: Don't complain as loudly about failing to load a module
+ that's already loaded.
+
+2005-04-23 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/elf.h:
+ * programs/Xserver/hw/xfree86/loader/elfloader.c:
+ Bug #3109: Handle R_ALPHA_BRSGP relocations in elfloader.
+ (Sergey Tikhonov)
+
+2005-04-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/xf86_libc.h:
+ Work around clash between Solaris headers and module loader headers
+ over definition of FILE.
+
+2005-04-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * extras/ogl-sample/main/gfx/lib/glu/libnurbs/internals/simplemath.h:
+ Add Sun CC to the list of compilers for which abs() should not be
+ redefined.
+
+2005-04-22 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/X11.tmpl:
+ * lib/font/fontfile/ffcheck.c:
+ * lib/font/fontfile/register.c:
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/cfb/cfbgc.c:
+ * programs/Xserver/cfb/cfbimage.c:
+ * programs/Xserver/cfb/cfbpush8.c:
+ * programs/Xserver/hw/sun/Imakefile:
+ * programs/Xserver/hw/sun/sunCfb.c:
+ * programs/Xserver/hw/sun/sunCursor.c:
+ * programs/Xserver/hw/sun/sunInit.c:
+ * programs/Xserver/hw/xfree86/xf8_32bpp/cfbgc.c:
+ * programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcunder.c:
+ * programs/Xserver/lmfcfb/Imakefile:
+ * programs/Xserver/mfb/Imakefile:
+ * programs/Xserver/mfb/maskbits.c:
+ * programs/Xserver/mfb/mfbbitblt.c:
+ * programs/Xserver/mfb/mfbgc.c:
+ * programs/Xserver/mfb/mfbimggblt.c:
+ * programs/Xserver/mfb/mfbpixmap.c:
+ * programs/Xserver/mfb/mfbscrinit.c:
+ * programs/xfs/difs/Imakefile:
+ * programs/xfs/difs/initfonts.c:
+ Bug #3069: Drop the BuildLowMem hack, it doesn't compile and isn't
+ useful.
+
+2005-04-22 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/common/compiler.h:
+ * programs/Xserver/hw/xfree86/common/xf86Bus.c:
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c:
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_ia64.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_pci.c:
+ * programs/Xserver/hw/xfree86/os-support/shared/ia64Pci.c:
+ * programs/Xserver/hw/xfree86/os-support/shared/ia64Pci.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/altixPCI.c:
+ * programs/Xserver/hw/xfree86/os-support/bus/altixPCI.h:
+ Bug #2373: SGI Altix platform support. (Shrijeet Mukherjee,
+ Jesse Barnes, Bjorn Helgaas, Egbert Eich.)
+
+2005-04-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
+ Bugzilla #3095 <https://bugs.freedesktop.org/show_bug.cgi?id=3095>
+ Patch #2501 <https://bugs.freedesktop.org/attachment.cgi?id=2501>
+ nv DPMS panel fixes (Mark Vojkovich)
+
+2005-04-21 Thomas Winischhofer <thomas@winischhofer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/sis/*
+ SiS driver:
+ - Add SISCTRL extension
+ - Declare Xv interface for SiSCtrl deprecated
+ - Remove useless GammaPreBrightness feature
+ - Fix LCD+TV mode for dual link panels
+ - Add support for LCD-via-CRT1 for 315PRO
+ - Add "TVBlueWorkAround" option
+ - Various minor fixes
+
+ * programs/Xserver/hw/xfree86/drivers/sisusb/*
+ SiSUSB driver:
+ - Add SISCTRL extension
+ - Declare Xv interface for SiSCtrl deprecated
+
+2005-04-20 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre.h
+ Build fix for DoLoadableServer = NO systems.
+
+2005-04-20 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/xinit/startx.cpp:
+ Separate server auth and client .Xautority file in startx.
+ .Xautority might have credentials from other Xservers which
+ we might not want to enable on ours Bugzilla #3078).
+
+2005-04-20 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/GL/windows/glwindows.h:
+ * programs/Xserver/GL/windows/glwrap.c:
+ * programs/Xserver/os/auth.c:
+ * programs/Xserver/os/xdmcp.c:
+ * programs/Xserver/xkb/ddxLoad.c:
+ Fix includes right throughout the Xserver tree:
+ * apply changes to windows specific includes
+ * programs/Xserver/os/xdmauth.c:
+ Fix includes right throughout the Xserver tree:
+ * apply changes to Xdmcp.h
+
+2005-04-20 Alexander Gottwald <ago at freedesktop dot org>
+
+ * lib/xtrans/Imakefile:
+ Fix includes right throughout the Xserver tree:
+ * Create both X11/Xtrans/Xtrans.h and X11/Xtrans.h in exports/include.
+ The first is for Xserver, the second is for libX11 and friends.
+
+2005-04-20 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/xedit/util.c:
+ Move variable declaration to top. Makes gcc2 happy.
+
+2005-04-20 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/*:
+ Fix includes right throughout the Xserver tree:
+ * change "foo.h" to <X11/foo.h> for core headers, e.g. X.h, Xpoll.h;
+ * change "foo.h", "extensions/foo.h" and "X11/foo.h" to
+ <X11/extensions/foo.h> for extension headers, e.g. Xv.h;
+ * change "foo.[ch]" to <X11/Xtrans/foo.[ch]> for Xtrans files.
+ * programs/Xserver/dix/main.c (InitOutput):
+ Conditionalise usage of Xprint headers and functions.
+
+2005-04-20 Alexander Gottwald <ago at freedesktop dot org>
+
+ * lib/Xt/Initialize.c:
+ Bugzilla #3072 (https://bugs.freedesktop.org/show_bug.cgi?id=3072)
+ attachment #2469 (https://bugs.freedesktop.org/attachment.cgi?id=2469):
+ fix uninitialized pointer in libXt on Win32. Reported by Dave Williss
+
+2005-04-18 Bogdan Diaconescu <b_diaconescu@yahoo.com>
+ Added support for RageTheatre200 see BugZilla #2778
+ https://bugs.freedesktop.org/show_bug.cgi?id=2778
+
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/generic_bus.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInit): Added new option for the ATI driver:
+ RageTheatreMicrocPath - file path for microcode,
+ RageTheatreMicrocType - BINARY or ASCII. When RT200 is
+ detected, microcode is uploaded from the specified file.
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c:
+ (RADEONInitI2C): Changed the i2c bus access method for
+ GPUs newer than R100. Added detection code for PAL tuners FM1216MK3.
+ Added detection for UDA1380 sound processor.
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONAllocAdaptor), (RADEONStopVideo), (RADEONSetPortAttribute),
+ (RADEON_TDA9885_SetEncoding): TDA9885 exists on the MK3 tuners.
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.h:
+ Added UDA1380 object to the RADEONPortPrivRec.
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_vip.c:
+ (RADEONVIP_fifo_idle), (RADEONVIP_fifo_read),
+ (RADEONVIP_fifo_write), (RADEONVIP_reset), (RADEONVIP_init):
+ Added new functions for the VIP bus regarding the FIFO transfer.
+ Changed the values at reset for processors newest than R200.
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/theatre_reg.h:
+ The theatre chip detection is now in a separate module called
+ theatre_detect. Upon detecting the theatre chip type,
+ the coresponding theatre module will be loaded. For RageTheatre200
+ a new module is created called theater200.
+ * programs/Xserver/hw/xfree86/drivers/i2c/Imakefile:
+ Added new module uda1380 for the sound chip existing on
+ boards featuring RT200.
+ * programs/Xserver/hw/xfree86/drivers/i2c/fi1236.c:
+ (FI1236_get_afc_hint), (FI1236_tune), (FI1236_AFC):
+ The MK3 tuners (PAL/NTSC/SECAM) now have the AFC signal comming
+ from the TDA98xx chip. The AFC hint can be gotten now from I2C.
+ * programs/Xserver/hw/xfree86/drivers/i2c/fi1236.h:
+ * programs/Xserver/hw/xfree86/drivers/i2c/tda9885.c:
+ (tda9885_setparameters): Tweaks for new MK3 tuners.
+
+2005-04-15 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * lib/GL/apple/dri_glx.c: (GetDriverName), (glXGetDriverConfig):
+ * programs/Xserver/hw/darwin/quartz/applewmExt.h:
+ Fix cases in Darwin build where a variable is declared static and
+ later as extern (XFree86 Bug #1576, Jordan Frank).
+
+2005-04-15 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h
+ bugzilla #2885 (https://bugs.freedesktop.org/show_bug.cgi?id=2885)
+ attachment #2434 (https://bugs.freedesktop.org/attachment.cgi?id=2434)
+ Fix Solaris build bustage caused by namespace collision between symbols
+ defined in <sys/kbd.h> and those in "xf86_OSlib.h".
+ Patch by Alan Coopersmith <alan.coopersmith@sun.com>.
+
+2005-04-14 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c:
+ Bug #2141: Rework misleading warning message when APM support is
+ unavailable.
+
+2005-04-14 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Fix initial DDC parameters when validating modes.
+
+2005-04-14 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/cfb/cfbgc.c:
+ Bug #3025: gcc4 build fix.
+
+2005-04-14 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ User reports indicate that both command and vertex DMA on
+ SuperSavages lock up the engine. Disabling DMA on SuperSavages
+ until someone figures out how to make it work.
+
+2005-04-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/psout.c
+ bugzilla #3001 (https://bugs.freedesktop.org/show_bug.cgi?id=3001)
+ attachment #2404 (https://bugs.freedesktop.org/attachment.cgi?id=2404)
+ Improve rendering performance when glXSwapBuffers()| or |XPutImage()|
+ are called for the PostScript DDX via optimizing the codepath around
+ |PsOut_OutImageBytes()|.
+ Patch by Simon Toedt <simon.toedt@gmail.com> and Roland Mainz
+ <roland.mainz@nrubsig.org>.
+
+2005-04-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/vfb/InitOutput.c: (vfbScreenInit):
+ Reenable BackingStore in Xvfb.
+
+2005-04-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/linux.cf:
+ Removing the compiler flag -fsigned-char which is only used
+ for a few BE platforms. This still needs some testing - which
+ can only be done when in the tree, but since most platforms
+ don't need I strongly assume it's not needed. Ticket remains
+ open for discussion (Bugzilla #2964).
+
+2005-04-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h:
+ Correct the mask bits when checking for a 64bit memory base
+ in PCI config space (bugzilla #2963).
+
+2005-04-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ (NEOPreInit), (NEOValidMode), (neoRestore), (neoModeInit),
+ (neoCalcVCLK):
+ Fix several mode setting issues:
+ - eliminates DoubleScan modes above height == 1024.
+ - eliminates interlaced modes as we don't know how to turn
+ on interlace.
+ - Fixes clock calculation to prevent lockups.
+ (Bugzilla # 2627)
+
+2005-04-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/mi/miwideline.c:
+ Preventing hight for drawing from becoming negative when
+ face->dy < 0. The height value is used in miFillPolyHelper()
+ to calculate the size of memory to be allocated. A negative
+ value will lead to a crash (Bugzilla #2690, Keith Packard,
+ Egbert Eich).
+
+2005-04-10 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/attributes.c
+ * xc/programs/glxgears/glxgears.c
+ * xc/programs/xdbedizzy/xdbedizzy.c
+ * xc/programs/xedit/Imakefile
+ * xc/programs/xedit/Xedit-xprint.ad
+ * xc/programs/xedit/util.c
+ * xc/programs/xedit/xedit.h
+ * xc/programs/xlogo/print.c
+ * xc/programs/xlogo/xlogo.c
+ * xc/programs/xlogo/xlogo.h
+ * xc/programs/xman/Imakefile
+ * xc/programs/xman/print.h
+ * xc/programs/xmore/Imakefile
+ * xc/programs/xmore/print.c
+ * xc/programs/xmore/print.h
+ * xc/programs/xmore/printdialog.c
+ * xc/programs/xphelloworld/xpawhelloworld/xpawhelloworld.c
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.c
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.c
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.c
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.c
+ bugzilla #790 (https://bugs.freedesktop.org/show_bug.cgi?id=790)
+ attachment #2379 (https://bugs.freedesktop.org/attachment.cgi?id=2379)
+ Implement support client+Xserver support for passing output
+ (stdout+stderr) of the spooler command started by the Xprint
+ server back to the application using the "xp-spooler-command-results"
+ XPJobAttr attribute (applications can fetch the attribute value after
+ the XPEndJobNotify event was received; more details can be found
+ in http://xprint.mozdev.org/docs/dtprint_fspec.ps).
+
+2005-04-09 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xman/buttons.c
+ bugzilla #2942 (https://bugs.freedesktop.org/show_bug.cgi?id=2942)
+ attachment #2360 (https://bugs.freedesktop.org/attachment.cgi?id=2360)
+ Fix possible crash due uninitalised structure when "xman" opens the
+ print dialog.
+
+2005-04-05 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ Release SDA/SDL I2C lines from an asserted-low state after a DDC probe,
+ which caused Apple Studio Display monitors to shut off after a second
+ or so (Ben Herrenschmidt).
+
+2005-04-04 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageInitAccel):
+ Add ROP_NEEDS_SOURCE to Mono8x8PatternFill as S3 chips tend
+ to lock up without it (Helmut Fahrion).
+
+2005-04-04 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/accessx.c:
+ (CreateAccessXHelpDialog), (AccessXInitialize):
+ * programs/Xserver/hw/xfree86/xf86cfg/card-cfg.c:
+ (CardModelCallback), (CardModel):
+ * programs/Xserver/hw/xfree86/xf86cfg/config.c: (StartConfig):
+ * programs/Xserver/hw/xfree86/xf86cfg/expert.c:
+ (ExpertConfigureStart), (ExpertConfigureEnd), (CreateFiles),
+ (CreateFilesField), (UpdateFiles), (CreateFontPathField),
+ (CreateModulePathField), (CreateModuleField), (CreateModesField),
+ (CreateModeLineField), (CreateVideoAdaptorField),
+ (VideoAdaptorUpdate), (CreateVideoPortField), (CreateMonitorField),
+ (MonitorUpdate), (CreateMonitorModesField), (CreateDeviceField),
+ (DeviceUpdate), (CreateScreenField), (ScreenUpdate),
+ (CreateScreenAdaptorField), (CreateScreenDisplayField),
+ (ScreenDisplayUpdate), (CreateDisplayModeField),
+ (CreateInputField), (InputUpdate), (CreateLayoutField),
+ (CreateAdjacencyField), (AdjacencyMenuCallback),
+ (AdjacencyToggleCallback), (CreateInputrefField),
+ (CreateVendorField), (CreateVendorSubField), (VendorSubUpdate),
+ (CreateDRIField), (DRIUpdate), (CreateBuffersField),
+ (BuffersUpdate), (DeleteNode), (ToggleNodeRecursive), (ToggleNode),
+ (ExpertInitialize):
+ * programs/Xserver/hw/xfree86/xf86cfg/help.c: (Help), (StartHelp),
+ (Html_ModeStart), (Html_ModeEnd):
+ * programs/Xserver/hw/xfree86/xf86cfg/interface.c: (main),
+ (AskConfig), (QuitCallback), (AddDevice), (SelectLayoutCallback),
+ (DefaultLayoutCallback):
+ * programs/Xserver/hw/xfree86/xf86cfg/keyboard-cfg.c:
+ (UpdateRulesPopups), (KeyboardModelAndLayout):
+ * programs/Xserver/hw/xfree86/xf86cfg/monitor-cfg.c:
+ (MonitorLayout):
+ * programs/Xserver/hw/xfree86/xf86cfg/mouse-cfg.c:
+ (MouseDeviceAndProtocol):
+ * programs/Xserver/hw/xfree86/xf86cfg/options.c:
+ (ModuleOptionsPopup), (OptionsPopup):
+ * programs/Xserver/hw/xfree86/xf86cfg/screen-cfg.c: (ScreenDialog):
+ * programs/Xserver/hw/xfree86/xf86cfg/vidmode.c:
+ (VideoModeInitialize), (VideoModeConfigureStart), (GetModes),
+ (ForceAddMode), (AddMode), (TestCallback):
+ * programs/editres/widgets.c:
+ * programs/xedit/ispell.c: (InitIspell):
+ * programs/xedit/options.c: (CreateColumnsShell):
+ Fixed sentinels in Xt, editres and xedit to reduce number of
+ warnings with gcc4 (Andreas Schwab).
+
+2005-04-04 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/screen.c: (AdjustScreenUI):
+ Fix typo leading to bogus code in xorgcfg (Andreas Schwab).
+
+2005-04-04 Egbert Eich <eich-at-freedesktop-dot-org>
+ * programs/Xserver/hw/xfree86/common/xf86PciInfo.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c:
+ (xf86PreScanZX1), (xf86PostScanZX1):
+ Support for HP's IPF ZX1 systems (Alex Williamson).
+
+2005-04-04 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/compiler.h:
+ * programs/Xserver/hw/xfree86/loader/elfloader.c:
+ (ELFCollectSections):
+ When not using dlopen ia64 needs an extra cache
+ flush to ensure the icache is coherent when modules
+ are loaded (Alex Williamson).
+
+2005-04-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xevie/Xevie.man:
+ Clean up text and formatting of Xevie man page
+
+2005-04-03 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/SM/sm_process.c:
+ Bug #1447: Fix a use-after-free case in libSM. (Mark McLoughlin)
+
+2005-04-02 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/xorg.tmpl:
+ Bug #2884: Canonicalize BUILDERADDR to point to
+ @lists.freedesktop.org.
+
+2005-04-01 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/XServer.m:
+ Fix XDarwin's handling of Wacom tablet mouse buttons (Based on patch
+ suggested by Daphne Pfister).
+
+2005-04-01 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/ps/Imakefile
+ * xc/programs/Xserver/Xprint/ps/Ps.h
+ * xc/programs/Xserver/Xprint/ps/PsArea.c
+ * xc/programs/Xserver/Xprint/ps/PsColor.c
+ * xc/programs/Xserver/Xprint/ps/PsImageUtil.c
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ * xc/programs/Xserver/Xprint/ps/psout.h
+ bugzilla #2879 (https://bugs.freedesktop.org/show_bug.cgi?id=2879)
+ attachment #2287 (https://bugs.freedesktop.org/attachment.cgi?id=2287)
+ Follow-up to bugzilla #1299: Add new visuals in the Postscript DDX
+ (including TrueColor 16bit, PseudoColor 15bit/12bpg(12 bits per R-,
+ G-, B-channel as in PostScript Level 2 (and above) colors can have 12
+ bits per component (36 bit for RGB)), PseudoColor+GrayScale+StaticGray
+ 12bit/12bpg) and switch the default visual from PseudoColor 8bit/8bpg
+ to PseudoColor 12bit/12bpg.
+
+2005-04-01 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c
+ * programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c
+ Fix setjump0 declaration for DllLoader.
+
+2005-04-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/int10/helper_exec.c: (x_inl),
+ (x_outl), (pciCfg1out):
+ bugzilla #2880 (https://bugs.freedesktop.org/show_bug.cgi?id=2880)
+ attachment #2285 (https://bugs.freedesktop.org/attachment.cgi?id=2285)
+ Use system method to access PCI config space.
+
+2005-04-01 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/dixsym.c:
+ Bug #2835: Add symbol exports to support the ReadDisplay extension.
+
+2005-04-01 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Check the VESA BIOS scanline requirements and adjust the
+ displayWidth accordingly. Fixes an assumption that the screen width
+ was always used as the displayWidth.
+
+2005-03-31 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * config/cf/darwin.cf:
+ Reenable default build of xterm since Darwin does not provide
+ an alternate source for it.
+
+2005-03-31 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86PciInfo.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_chipset.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ - Add new Radeon pci ids (ATI devrel), bug 2827
+
+2005-03-31 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+
+ Patch from Antti Ajanki - provide VBI capture support for
+ PAL and SECAM (You need GATOS km module to actually get at the
+ data, the change merely configures the hardware to handle it
+ correctly).
+
+2005-03-29 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c:
+ bugzilla #2844 (https://bugs.freedesktop.org/show_bug.cgi?id=2844)
+ attachment #2230 (http://bugs.freedesktop.org/attachment.cgi?id=2230)
+ Wait for idle before uploading HW cursor data to the framebuffer to
+ avoid lockups when moving the mouse on some machines.
+
+2005-03-28 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPllErrataAfterIndex), (RADEONPllErrataAfterData),
+ (RADEONOUTPLL), (RADEONPLLWriteUpdate), (RADEONPLL2WriteUpdate),
+ (RADEONRestorePLL2Registers):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_macros.h:
+ bugzilla #2840 (https://bugs.freedesktop.org/show_bug.cgi?id=2840)
+ attachment #2227 (https://bugs.freedesktop.org/attachment.cgi?id=2227)
+ Fix build problems introduced by previous Radeon PLL errata
+ workarounds.
+
+2005-03-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/xvinfo/xvinfo.man:
+ Change hardcoded "1" to __appmansuffix__ and remove initial
+ blank line that confused Solaris nroff.
+
+Sat Mar 26 19:00:30 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbpict.h: Remove accidentally committed
+ prototype.
+
+Sat Mar 26 18:49:21 2005 Soeren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.h
+ * programs/Xserver/fb/fbmmx.c (fbCompositeSrc_8888x8888mmx): New
+ function.
+
+ * programs/Xserver/fb/fbpict.c (fbComposite): Hook it up here
+
+2005-03-25 Dave Airlie <airlied@linux.ie>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c:
+ (ATIProcessOptions):
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c:
+ (ATIProbeAndSetActiveDisplays), (ATIEnterGraphics),
+ (ATILeaveGraphics):
+ * programs/Xserver/hw/xfree86/drivers/ati/atilock.c: (ATIUnlock),
+ (ATILock):
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64.c:
+ (ATIMach64Calculate):
+ * programs/Xserver/hw/xfree86/drivers/ati/atimode.c:
+ (ATIModeCalculate), (ATISetVBEMode), (ATIModeSet):
+ * programs/Xserver/hw/xfree86/drivers/ati/atioption.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atioption.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c:
+ (ATIPreInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:
+ (ATIScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/atistruct.h:
+ bugzilla #2057 (https://bugs.freedesktop.org/show_bug.cgi?id=2057)
+ attachment #1516 (https://bugs.freedesktop.org/attachment.cgi?id=1516)
+ Add TVOUT Support for Mach64 (Leif Delgass, fixed up for Xorg by me).
+
+2005-03-24 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/Imakefile
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ bugzilla #2821 (https://bugs.freedesktop.org/show_bug.cgi?id=2821)
+ attachment #2215 (https://bugs.freedesktop.org/attachment.cgi?id=2215)
+ Remove the cfb dependicy from the PostScript DDX as this is not needed
+ in a vector DDX (mfb is still needed to fill the |BitmapToRegion()|
+ callback with |mfbPixmapToRegion()|).
+
+2005-03-24 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineReset):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_bios.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONINPLL), (RADEONOUTPLL), (RADEONProbePLLParameters),
+ (RADEONGetPanelInfoFromReg), (RADEONPreInitConfig),
+ (RADEONRestoreFPRegisters), (RADEONRestorePLLRegisters),
+ (RADEONRestorePLL2Registers), (RADEONSave), (RADEONRestore),
+ (RADEONDisplayPowerManagementSet), (RADEONSetDynamicClock):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_macros.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONAllocAdaptor), (RADEONDisplayVideo):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_vip.c:
+ - radeon PLL access errata workarounds (Benjamin Herrenschmidt, acked by Hui Yu)
+
+2005-05-23 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/OpenBSD.cf:
+ OpenBSD doesn't have libpng in base system.
+ * config/cf/OpenBSDLib.tmpl
+ Bump libfreetype2 minor after update to 2.1.9
+ * config/cf/X11.tmpl
+ Update freetype version in comments
+ * programs/Xserver/Xext/saver.c:
+ bugzilla #2194: fix an alignement problem on 64 bit architectures.
+
+2005-03-23 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c:
+ (mtrr_cull_wc_region), (mtrr_remove_offending),
+ (mtrr_add_wc_region):
+ Bugzilla #2750 (https://bugs.freedesktop.org/show_bug.cgi?id=2750)
+ Linux-only fixes:
+ Fix case where a smaller write-combining region blocks write-combining
+ setting of the whole frame buffer.
+ Fix bug in wc setting code when regions are first splitted
+ and setting of write-combining then fails.
+
+2005-03-23 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/vfb/InitOutput.c
+ * xc/programs/Xserver/hw/vfb/Xvfb.man
+ bugzilla #2791 (https://bugs.freedesktop.org/show_bug.cgi?id=2791)
+ attachment #2197 (https://bugs.freedesktop.org/attachment.cgi?id=2197)
+ Add support for 12bit PseudoColor and 30bit TrueColor to Xvfb.
+
+2005-03-23 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Imakefile
+ * xc/programs/Xserver/Xprint/DiPrint.h
+ * xc/programs/Xserver/Xprint/Imakefile
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/ddxInit.c
+ * xc/programs/Xserver/dix/Imakefile
+ * xc/programs/Xserver/dix/main.c
+ * xc/programs/Xserver/dix/xpstubs.c
+ * xc/programs/Xserver/os/Imakefile
+ * xc/programs/Xserver/os/utils.c
+ bugzilla #2792 (https://bugs.freedesktop.org/show_bug.cgi?id=2792)
+ attachment #2193 (https://bugs.freedesktop.org/attachment.cgi?id=2193)
+ Fix build bustage when |PrintOnlyServer| is set to |NO|.
+ Patch by Roland Mainz <roland.mainz@nrubsig.org> and Julien
+ Lafon <julien.lafon@gmail.com>.
+
+2005-03-22 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/vfb/InitOutput.c
+ bugzilla #2789 (https://bugs.freedesktop.org/show_bug.cgi?id=2789)
+ attachment #2187 (https://bugs.freedesktop.org/attachment.cgi?id=2187)
+ Fix Xvfb to honor the "-dpi" option (instead of using a hardcoded
+ value of 100DPI).
+
+2005-03-22 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/xorg.conf.man:
+ Bug #1821: Typo fix in xorg.conf man page (Jens Schweikhardt)
+
+Tue Mar 22 12:47:16 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/miext/damage/damage.c (damageCopyPlane): Only
+ validate the source if it is a viewable window. Stops the cursor
+ flickering when it is above an unviewable window.
+
+2005-03-21 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c
+ Fix some bad alignment problems when allocating memory from
+ the end of AGP space.
+ Bugzilla #2764 (https://bugs.freedesktop.org/show_bug.cgi?id=2764)
+
+2005-03-20 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/lib/X11/ErrDes.c
+ * xc/lib/X11/XKBSetGeom.c
+ Bugzilla #132 (https://bugs.freedesktop.org/show_bug.cgi?id=132)
+ Patch #2168 (https://bugs.freedesktop.org/attachment.cgi?id=2168)
+ Replace a couple of BUFSIZE uses with better values to check against.
+ Fixes by Stuart Anderson <anderson@netsweng.com>
+
+2005-03-20 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xset/xset.c
+ bugzilla #2258 (https://bugs.freedesktop.org/show_bug.cgi?id=2258)
+ attachment #2166 (https://bugs.freedesktop.org/attachment.cgi?id=2166)
+ "xset q" (query) should not print an error message ('Xlib: extension
+ "XFree86-Misc" missing on display ":35.0".') when the "XFree86-Misc"
+ is not available on the Xserver.
+
+2005-03-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/nls/Compose/iso8859-2
+ * xc/nls/Compose/iso8859-3
+ * xc/nls/Compose/iso8859-9
+ * xc/nls/Compose/iso8859-9e
+ bugzilla #2592 (https://bugs.freedesktop.org/show_bug.cgi?id=2592)
+ attachment #2156 (https://bugs.freedesktop.org/attachment.cgi?id=2156)
+ Fix a couple of typos in ISO8859-* Compose files
+ ("asciicircum" instead "of asciicirum").
+ Patch by Matthias Hopf <mhopf@suse.de>.
+
+2005-03-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/mi/miinitext.c
+ bugzilla #2771 (https://bugs.freedesktop.org/show_bug.cgi?id=2771)
+ attachment #2148 (https://bugs.freedesktop.org/attachment.cgi?id=2148)
+ Remove RENDER extension from exclusion list for the standalone print
+ server (Xprt) to get this extension enabled if the print DDX support
+ it.
+
+2005-03-18 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/common/xf86PciInfo.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_chipset.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ Add support for production version of ATI RN50/ES1000. (ATI
+ Technologies Inc.)
+
+2005-03-17 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavageEnterVT):
+ Invalidate 3D hardware state in SavageEnterVT. This fixes 3D
+ applications running during a suspend-resume cycle.
+
+2005-03-16 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c
+ Back out RadeonWaitForIdleMMIO that I put in earlier.
+
+ From discussion on dri-devel we do not need to be as
+ careful with INREG() access on Radeons as we are on mach64
+ chips.
+
+ The fix is backed out due to:
+ * it breaks DRI on SMP systems (due to absense of the
+ lock in mouse handling functions)
+ * I am no longer able to reproduce the lockup I saw before
+
+2005-03-16 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * config/cf/darwin.cf:
+ * programs/Xserver/cfb/cfballpriv.c:
+ Fix build on stock Mac OS X: Out of the box, Mac OS X does not include
+ Freetype2, Expat, or PNG. Also global variables should be initalized
+ in the Xserver.
+
+2005-03-17 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIMapInit):
+ Fixed PCI ShadowStatus initialization for the case that
+ ShadowStatus is explicitly enabled in the configuration file.
+
+Wed Mar 16 16:17:43 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/miext/damage/damage.c (damageCopyArea): Only
+ validate the source if it is a viewable window. Stops the cursor
+ flickering when it is above an unviewable window.
+
+2005-03-16 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c:
+ (xf86RandRGetInfo), (xf86RandRSetConfig):
+ Don't fail calling function when DriverFunc() for RandR
+ fails as DriverFunc() also returns FALSE when the
+ specific sub function isn't supported.
+ In the case of xf86RandRGetInfo() we simply rely on what
+ has been set before and return TRUE.
+ In the case of xf86RandRSetConfig() we only bail with
+ FALSE if we have to do a rotation and the call fails.
+ We presently cannot do rotation on the fly without the
+ help of a driver function (Bugzilla #2745).
+
+
+2005-03-16 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/loader/loader.c: (ARCHIVELoadModule):
+ Make message that gets printed when loader encounters a .o
+ with no symbols less conspicuous (Bugzilla #2744).
+
+2005-03-15 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitStreamsOld), (SavageInitStreams2000),
+ (PatchEnableSPofPanel):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (GetBlendForFourCC), (GetBlendForFourCC2000),
+ (SavageSetColorKey2000), (SavageSetColor2000), (SavageSetBlend),
+ (SavageDisplayVideoOld), (SavageDisplayVideo2000),
+ (SavagePutImage):
+ - small fixups for old streams
+ - more work on Xv support for savage2000 (still not working 100%)
+
+2005-03-15 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ LFP's may exist on Pipe A in older i830's. Check that case so
+ that Panel ID can be obtained and Xvideo is correctly setup for
+ panel fitting.
+
+2005-03-15 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c
+ Enforce DDC monitor ranges usage if we have them and reject bad
+ modes. Use NoDDC option to override DDC timings. We currently
+ only use DS_RANGES, but could use other DDC information, as does
+ the common layer, to deduce the h/v ranges.
+
+2005-03-13 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIAgpInit), (SAVAGEDRIScreenInit),
+ (SAVAGEDRIFinishScreenInit):
+ Fixed fallback to PCI mode when AGP initialization fails.
+
+2005-03-13 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGECreateContext), (SAVAGEDestroyContext), (SAVAGEDRIAgpInit),
+ (SAVAGEDRIScreenInit), (SAVAGEDRICloseScreen):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ - Removed lots of dead code.
+ - Moved driver-private definitions from savage_dri.h to
+ savage_driver.h. savage_dri.h should only contain the public
+ interface between DDX and DRI drivers.
+ - Don't forget to remove the command DMA mapping in
+ SAVAGEDRICloseScreen.
+
+2005-03-11 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/twm/Imakefile
+ * xc/programs/twm/twm.c
+ * xc/programs/xdpyinfo/xdpyinfo.c
+ bugzilla #2705 (https://bugs.freedesktop.org/show_bug.cgi?id=2705)
+ attachment #2087 (https://bugs.freedesktop.org/attachment.cgi?id=2087)
+ Make twm ignore print screens to avoid that users accidentally warp
+ on a non-video screen (which are not visible on any monitor) when
+ the Xserver has both video and print screens.
+ (This includes also a small cleanup of xdpyinfo where parts of the
+ print screen test code comes from)
+ Patch by Julien Lafon <julien.lafon@gmail.com> (MIT/X.org license).
+
+2005-03-11 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/twm/add_window.c
+ * xc/programs/twm/cursor.c
+ * xc/programs/twm/events.c
+ * xc/programs/twm/gc.c
+ * xc/programs/twm/gram.y
+ * xc/programs/twm/iconmgr.c
+ * xc/programs/twm/icons.c
+ * xc/programs/twm/list.c
+ * xc/programs/twm/menus.c
+ * xc/programs/twm/parse.c
+ * xc/programs/twm/resize.c
+ * xc/programs/twm/twm.c
+ * xc/programs/twm/util.c
+ bugzilla #2566 (https://bugs.freedesktop.org/show_bug.cgi?id=2566)
+ attachment #2083 (https://bugs.freedesktop.org/attachment.cgi?id=2083)
+ ANSI-fy twm window manager code.
+ The conversion preserves the comments which annotate variables and
+ function arguments (these have been moved into doxygen(esque?) "stubs"
+ above each function.
+ Patch by Mike Owens <etc@filespanker.com>.
+
+2005-03-11 Thomas Winischhofer <thomas@winischhofer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/sis/*
+ SiS driver:
+ - MergedFB/Xinerama: Added support for non-rectangular layouts
+ (no panning into dead areas, mouse restriced to accessible
+ areas)
+ - MergedFB/Xinerama: Added support for RandR.
+ - MergedFB: Improved "physical alignment compensation" Offset
+ by disallowing panning and mouse movements into dead areas.
+ - Added "Reflect" feature: Reflect screen in x, y or x+y direction
+ - Added aspect ratio detection for analog (VGA) devices.
+ - Fixed FSTN support on SiS55x (for 320x240 xSTN panels)
+ - Workaround for SiS76x memory access latency issues if no local
+ framebuffer memory is present.
+ - Fixed bug in SaveScreen() causing a sig 11 sometimes.
+ - Minor others.
+
+2005-03-08 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/lbxproxy/os/connection.c:
+ Bugzilla Bug 2678 (https://bugs.freedesktop.org/show_bug.cgi?id=2678)
+ Patch #2051 (https://bugs.freedesktop.org/attachment.cgi?id=2051)
+ lbxproxy core dumps on exit if clients have had authentication failures
+ (Sun bug #5074303 - Fix by Derek Wang <derek.wang@sun.com>)
+
+2005-03-09 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONScreenInit): Fix accidentally removed depth pitch
+ adjustment if displayWidth is not a multiple of 32 pixels
+ (bug #788)
+
+2005-03-08 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c:
+ (xf86open), (xf86strerror), (xf86GetErrno):
+ * programs/Xserver/hw/xfree86/os-support/xf86_libc.h:
+ Adding more errnos to the libc wrapper (Bugzilla #2672).
+
+2005-03-07 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/lib/X11/imEvToWire.c:
+ Bugzilla Bug 2006 (https://bugs.freedesktop.org/show_bug.cgi?id=2006)
+ Patch #2031 (https://bugs.freedesktop.org/attachment.cgi?id=2031)
+ XEmbed client doesn't receive key events from XIM: Use | to set a bit,
+ not &. Patch by Hidetoshi Tajima <hidetoshi.tajima@sun.com>.
+
+2005-03-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/dix/atom.c
+ * xc/programs/Xserver/dix/colormap.c
+ * xc/programs/Xserver/dix/cursor.c
+ * xc/programs/Xserver/dix/devices.c
+ * xc/programs/Xserver/dix/dispatch.c
+ * xc/programs/Xserver/dix/dixfonts.c
+ * xc/programs/Xserver/dix/dixutils.c
+ * xc/programs/Xserver/dix/events.c
+ * xc/programs/Xserver/dix/extension.c
+ * xc/programs/Xserver/dix/gc.c
+ * xc/programs/Xserver/dix/glyphcurs.c
+ * xc/programs/Xserver/dix/grabs.c
+ * xc/programs/Xserver/dix/main.c
+ * xc/programs/Xserver/dix/pixmap.c
+ * xc/programs/Xserver/dix/privates.c
+ * xc/programs/Xserver/dix/property.c
+ * xc/programs/Xserver/dix/resource.c
+ * xc/programs/Xserver/dix/swaprep.c
+ * xc/programs/Xserver/dix/swapreq.c
+ * xc/programs/Xserver/dix/window.c
+ bugzilla #2560 (https://bugs.freedesktop.org/show_bug.cgi?id=2560)
+ attachment #2037 (https://bugs.freedesktop.org/attachment.cgi?id=2037)
+ ANSI-fy Xserver/dix code.
+ The conversion preserves the comments which annotate variables.
+ These have been moved into doxygen(esque?) "stubs" above each
+ function.
+ Patch by Mike Owens <etc@filespanker.com>.
+
+2005-03-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/glxgears/glxgears.c
+ bugzilla #2220 (https://bugs.freedesktop.org/show_bug.cgi?id=2220)
+ attachment #2035 (https://bugs.freedesktop.org/attachment.cgi?id=2035)
+ Backout of attachment #1630 (https://bugs.freedesktop.org/attachment.cgi?id=1630)
+ as the described issue should be fixed in the GLX implementation of
+ the server side (per discussion in xorg@freedesktop.org).
+
+2005-03-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/Imake.rules
+ * xc/programs/Xserver/hw/xfree86/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/ark/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/chips/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/dummy/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/i128/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/i2c/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/imstt/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/newport/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/nsc/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/s3/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/s3virge/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/savage/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/siliconmotion/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/sisusb/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/sunbw2/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/suncg14/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/suncg3/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/suncg6/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/sunffb/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/sunleo/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/suntcx/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/tga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/vesa/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/vga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/via/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/vmware/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/voodoo/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/wsfb/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/acecad/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/aiptek/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/calcomp/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/citron/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/digitaledge/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/dmc/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/elo2300/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/elographics/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/evdev/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/fpit/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/hyperpen/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/jamstudio/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/joystick/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/magellan/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/magictouch/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/mutouch/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/palmax/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/penmount/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/sample/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/spaceorb/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/summa/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/tek4957/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/ur98/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/void/Imakefile
+ * xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile
+ Bugzilla #2663 (https://bugs.freedesktop.org/show_bug.cgi?id=2663)
+ attachment #2034 (https://bugs.freedesktop.org/attachment.cgi?id=2034):
+ Cleanup Xorg server module installation.
+
+2005-03-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/extras/freetype2/ChangeLog
+ * xc/extras/freetype2/Jamfile
+ * xc/extras/freetype2/README
+ * xc/extras/freetype2/builds/freetype.mk
+ * xc/extras/freetype2/builds/unix/configure
+ * xc/extras/freetype2/builds/unix/configure.ac
+ * xc/extras/freetype2/builds/win32/visualc/freetype.dsp
+ * xc/extras/freetype2/builds/win32/visualc/freetype.vcproj
+ * xc/extras/freetype2/builds/win32/visualc/index.html
+ * xc/extras/freetype2/devel/ftoption.h
+ * xc/extras/freetype2/docs/CHANGES
+ * xc/extras/freetype2/docs/VERSION.DLL
+ * xc/extras/freetype2/docs/formats.txt
+ * xc/extras/freetype2/include/freetype/cache/ftcmru.h
+ * xc/extras/freetype2/include/freetype/config/ftmodule.h
+ * xc/extras/freetype2/include/freetype/config/ftoption.h
+ * xc/extras/freetype2/include/freetype/freetype.h
+ * xc/extras/freetype2/include/freetype/ftcache.h
+ * xc/extras/freetype2/include/freetype/ftmm.h
+ * xc/extras/freetype2/include/freetype/internal/ftmemory.h
+ * xc/extras/freetype2/include/freetype/internal/ftstream.h
+ * xc/extras/freetype2/include/freetype/internal/fttrace.h
+ * xc/extras/freetype2/include/freetype/internal/psaux.h
+ * xc/extras/freetype2/include/freetype/internal/services/svmm.h
+ * xc/extras/freetype2/include/freetype/internal/tttypes.h
+ * xc/extras/freetype2/include/freetype/t1tables.h
+ * xc/extras/freetype2/include/freetype/tttables.h
+ * xc/extras/freetype2/include/freetype/tttags.h
+ * xc/extras/freetype2/src/autofit/afangles.c
+ * xc/extras/freetype2/src/autofit/afdummy.c
+ * xc/extras/freetype2/src/autofit/afglobal.c
+ * xc/extras/freetype2/src/autofit/afhints.c
+ * xc/extras/freetype2/src/autofit/afhints.h
+ * xc/extras/freetype2/src/autofit/aflatin.c
+ * xc/extras/freetype2/src/autofit/aflatin.h
+ * xc/extras/freetype2/src/autofit/afloader.c
+ * xc/extras/freetype2/src/autofit/afmodule.c
+ * xc/extras/freetype2/src/autofit/aftypes.h
+ * xc/extras/freetype2/src/autohint/ahhint.c
+ * xc/extras/freetype2/src/autohint/ahmodule.c
+ * xc/extras/freetype2/src/base/ftbbox.c
+ * xc/extras/freetype2/src/base/ftdbgmem.c
+ * xc/extras/freetype2/src/base/ftexcept.c
+ * xc/extras/freetype2/src/base/ftgloadr.c
+ * xc/extras/freetype2/src/base/ftglyph.c
+ * xc/extras/freetype2/src/base/fthash.c
+ * xc/extras/freetype2/src/base/ftlist.c
+ * xc/extras/freetype2/src/base/ftmm.c
+ * xc/extras/freetype2/src/base/ftobject.c
+ * xc/extras/freetype2/src/base/ftobjs.c
+ * xc/extras/freetype2/src/base/ftstream.c
+ * xc/extras/freetype2/src/base/ftsysio.c
+ * xc/extras/freetype2/src/base/ftsysmem.c
+ * xc/extras/freetype2/src/base/ftutil.c
+ * xc/extras/freetype2/src/bdf/bdf.h
+ * xc/extras/freetype2/src/bdf/bdfdrivr.c
+ * xc/extras/freetype2/src/bdf/bdfdrivr.h
+ * xc/extras/freetype2/src/bdf/bdflib.c
+ * xc/extras/freetype2/src/cache/ftcbasic.c
+ * xc/extras/freetype2/src/cache/ftccache.c
+ * xc/extras/freetype2/src/cache/ftccback.h
+ * xc/extras/freetype2/src/cache/ftccmap.c
+ * xc/extras/freetype2/src/cache/ftcglyph.c
+ * xc/extras/freetype2/src/cache/ftcimage.c
+ * xc/extras/freetype2/src/cache/ftcmanag.c
+ * xc/extras/freetype2/src/cache/ftcsbits.c
+ * xc/extras/freetype2/src/cff/cffdrivr.c
+ * xc/extras/freetype2/src/cff/cffgload.c
+ * xc/extras/freetype2/src/cff/cffgload.h
+ * xc/extras/freetype2/src/cff/cffload.c
+ * xc/extras/freetype2/src/cff/cffobjs.c
+ * xc/extras/freetype2/src/cff/cffobjs.h
+ * xc/extras/freetype2/src/cff/cffparse.c
+ * xc/extras/freetype2/src/cid/cidgload.c
+ * xc/extras/freetype2/src/cid/cidgload.h
+ * xc/extras/freetype2/src/cid/cidobjs.c
+ * xc/extras/freetype2/src/cid/cidobjs.h
+ * xc/extras/freetype2/src/cid/cidriver.c
+ * xc/extras/freetype2/src/gzip/ftgzip.c
+ * xc/extras/freetype2/src/lzw/zopen.c
+ * xc/extras/freetype2/src/pcf/pcfdrivr.c
+ * xc/extras/freetype2/src/pcf/pcfread.c
+ * xc/extras/freetype2/src/pcf/pcfutil.c
+ * xc/extras/freetype2/src/pcf/pcfutil.h
+ * xc/extras/freetype2/src/pfr/pfrdrivr.c
+ * xc/extras/freetype2/src/pfr/pfrobjs.c
+ * xc/extras/freetype2/src/pfr/pfrobjs.h
+ * xc/extras/freetype2/src/psaux/psobjs.c
+ * xc/extras/freetype2/src/psaux/t1decode.c
+ * xc/extras/freetype2/src/raster/ftraster.c
+ * xc/extras/freetype2/src/sfnt/sfobjs.c
+ * xc/extras/freetype2/src/sfnt/ttload.c
+ * xc/extras/freetype2/src/tools/cordic.py
+ * xc/extras/freetype2/src/truetype/Jamfile
+ * xc/extras/freetype2/src/truetype/rules.mk
+ * xc/extras/freetype2/src/truetype/truetype.c
+ * xc/extras/freetype2/src/truetype/ttdriver.c
+ * xc/extras/freetype2/src/truetype/ttgload.c
+ * xc/extras/freetype2/src/truetype/ttgxvar.c
+ * xc/extras/freetype2/src/truetype/ttgxvar.h
+ * xc/extras/freetype2/src/truetype/ttobjs.c
+ * xc/extras/freetype2/src/truetype/ttobjs.h
+ * xc/extras/freetype2/src/truetype/ttpload.c
+ * xc/extras/freetype2/src/type1/t1driver.c
+ * xc/extras/freetype2/src/type1/t1gload.c
+ * xc/extras/freetype2/src/type1/t1load.c
+ * xc/extras/freetype2/src/type1/t1load.h
+ * xc/extras/freetype2/src/winfonts/winfnt.c
+ Bugzilla #878 (https://bugs.freedesktop.org/show_bug.cgi?id=878)
+ attachment #2032 (https://bugs.freedesktop.org/attachment.cgi?id=2032):
+ Update Freetype2 version in xc/extras/freetype2/ from V2.1.8 to
+ V2.1.9.
+
+2005-03-06 Branden Robinson <branden@debian.org>
+
+ * config/cf/linux.cf
+ Shut up (tons of) Imake warnings on Debian systems by testing for
+ variable being defined before testing its value. (Presumably the
+ fallback definition of NothingOutsideProjectRoot in Imake.tmpl was
+ intended to prevent this, but it apparently is not in effect yet
+ when linux.cf is parsed.)
+
+2005-03-06 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage.man:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIAgpInit), (SAVAGEDRIMapInit), (SAVAGEDRIBuffersInit),
+ (SAVAGEDRIKernelInit), (SAVAGEDRIScreenInit),
+ (SAVAGEDRIFinishScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ - Support for the new DRM version 2.4 with command DMA.
+ - Added an option "DmaMode" to choose between vertex and command DMA.
+ - Allow ShadowStatus to be explicitly disabled even with DRI enabled.
+ - Updated the man page.
+
+2005-03-05 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Imakefile
+ * xc/programs/Xserver/hw/xnest/Imakefile
+ * xc/programs/Xserver/hw/xnest/Init.c
+ Bugzilla #2653 (https://bugs.freedesktop.org/show_bug.cgi?id=2653)
+ attachment #2020 (https://bugs.freedesktop.org/attachment.cgi?id=2020):
+ Cleanup Xnest usage of the DPMS dummy stub functions from dpmsstubs.c
+ instead of using it's own copy of these functions.
+
+2005-03-05 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/xfree86/common/xf86Events.c
+ Bugzilla #2543 (https://bugs.freedesktop.org/show_bug.cgi?id=2543)
+ attachment #2019 (https://bugs.freedesktop.org/attachment.cgi?id=2019):
+ Fix |xf86SignalHandler()| which resets the signal handler
+ before setting the flag indicating a signal has been caught,
+ theoretically allowing the possibility of infinite recursion.
+ Patch by Andrew Church <xzilla@achurch.org>.
+
+2005-03-04 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ Let through all chips R300 and above - presumably the filtering
+ should take place at the DRM driver level.
+ Correct cut'n'paste position misprint.
+ Big thanks for Michel Danzer for pointing out both improvements.
+
+2005-03-04 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ Turns out Radeon R420 chips work fine with R300 microcode.
+ Thanks go to Rune Petersen for careful investigation.
+
+2005-03-03 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830.h
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Limit the maximum refresh rate to 85Hz and remove the bogus
+ 100Hz and 120Hz settings as they don't match close enough and
+ are really unsupported.
+
+2005-03-02 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/include/Xos_r.h:
+ Patch #2007 <https://bugs.freedesktop.org/attachment.cgi?id=2007>
+ 1) Fix Solaris #ifdefs to choose between UI/SVR4 (early POSIX draft)
+ and POSIX standard thread API's correctly.
+ 2) Fix calls to POSIX standard versions to check errors correctly.
+ (POSIX defines a return value of 0 on success, errno value on error,
+ but the macros were checking for -1 on error.)
+
+2005-03-02 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/xnest/Screen.c
+ * xc/programs/Xserver/hw/xnest/Window.c
+ * xc/programs/Xserver/hw/xnest/XNWindow.h
+ Bugzilla #2546 (https://bugs.freedesktop.org/show_bug.cgi?id=2546)
+ attachment #2005 (https://bugs.freedesktop.org/attachment.cgi?id=2005):
+ Fix Xnest to update the shape regions in the backend server whenever
+ a client changes them in Xnest (the fix is to add a new wrapper which
+ calls |xnestShapeWindow()| before calling |miSetShape()|).
+ Patch by Mark McLoughlin <mark@skynet.ie>
+
+2005-03-02 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/DragonFly.cf
+ * xc/config/cf/Imake.cf
+ * xc/config/cf/Imakefile
+ * xc/config/imake/imake.c
+ * xc/config/imake/imakemdep.h
+ * xc/extras/drm/shared/drm.h
+ * xc/include/Xos_r.h
+ * xc/lib/xtrans/Xtranssock.c
+ * xc/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h
+ * xc/programs/Xserver/hw/xfree86/os-support/xf86_libc.h
+ * xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_agp.c
+ * xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmCompat.c
+ Bugzilla #1712 (https://bugs.freedesktop.org/show_bug.cgi?id=1712)
+ attachment #2004 (https://bugs.freedesktop.org/attachment.cgi?id=2004):
+ Add support for DragonFly/BSD platform.
+ Patch by Jeroen Ruigrok <asmodai@tendra.org> and Mike Verona
+ <firedragonfly@gmail.com>.
+
+2005-03-01 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ Fix an off by one error when scaling which caused occasional
+ overlay color lines at the far right and bottom of the window.
+
+2005-03-01 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/GL/glx/Imakefile:
+ Remove stdcall objects in clean rule
+
+2005-02-26 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIMapInit), (SAVAGEDRICloseScreen):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ Fixed ShadowStatus handling with DRI:
+ - always enable ShadowStatus when DRI is enabled
+ - if DRI initialization fails, reset ShadowStatus to configured setting
+ - if DRI initialization fails, fall back to ShadowStatus in framebuffer
+
+2005-02-25 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ Bug #2605: Make the cyrix, dummy, glint, neomagic, tga, and trident
+ drivers build when BuildXF86DGA NO.
+
+2005-02-24 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/imake/imake.c:
+ enable detection of gcc compiler for cygwin and mingw
+
+2005-02-24 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/hw/xnest/Screen.c:
+ Bugzilla #2599 (https://bugs.freedesktop.org/show_bug.cgi?id=2599)
+ attachment #1964 (https://bugs.freedesktop.org/attachment.cgi?id=1964):
+ move miScreenInit in front of pScreen->function initializations to
+ prevent it from resetting ClipNotify.
+
+2005-02-22 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ Fix building radeon driver with BuildXF86DRI set to NO,
+ the breakage was caused by the tiling support (bug #2481)
+
+2005-02-21 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * lib/Xt/ActionHook.c
+ * lib/Xt/Alloc.c:
+ * lib/Xt/ArgList.c:
+ * lib/Xt/Callback.c:
+ * lib/Xt/ClickTime.c:
+ * lib/Xt/Composite.c:
+ * lib/Xt/Constraint.c:
+ * lib/Xt/Convert.c:
+ * lib/Xt/Converters.c:
+ * lib/Xt/Core.c:
+ * lib/Xt/Create.c:
+ * lib/Xt/Destroy.c:
+ * lib/Xt/Display.c:
+ * lib/Xt/Error.c:
+ * lib/Xt/Event.c:
+ * lib/Xt/EventI.h:
+ * lib/Xt/EventUtil.c:
+ * lib/Xt/Functions.c:
+ * lib/Xt/GCManager.c:
+ * lib/Xt/Geometry.c:
+ * lib/Xt/GetActKey.c:
+ * lib/Xt/GetValues.c:
+ * lib/Xt/HookObj.c:
+ * lib/Xt/Hooks.c:
+ * lib/Xt/Initialize.c:
+ * lib/Xt/Intrinsic.c:
+ * lib/Xt/Intrinsic.h:
+ * lib/Xt/IntrinsicI.h:
+ * lib/Xt/IntrinsicP.h:
+ * lib/Xt/Keyboard.c:
+ * lib/Xt/Manage.c:
+ * lib/Xt/NextEvent.c:
+ * lib/Xt/Object.c:
+ * lib/Xt/PassivGrab.c:
+ * lib/Xt/Pointer.c:
+ * lib/Xt/Popup.c:
+ * lib/Xt/PopupCB.c:
+ * lib/Xt/RectObj.c:
+ * lib/Xt/ResConfig.c:
+ * lib/Xt/ResourceI.h:
+ * lib/Xt/Resources.c:
+ * lib/Xt/Selection.c:
+ * lib/Xt/SelectionI.h:
+ * lib/Xt/SetValues.c:
+ * lib/Xt/SetWMCW.c:
+ * lib/Xt/Shell.c:
+ * lib/Xt/TMaction.c:
+ * lib/Xt/TMgrab.c:
+ * lib/Xt/TMkey.c:
+ * lib/Xt/TMparse.c:
+ * lib/Xt/TMprint.c:
+ * lib/Xt/TMstate.c:
+ * lib/Xt/Threads.c:
+ * lib/Xt/TranslateI.h:
+ * lib/Xt/VarGet.c:
+ * lib/Xt/Varargs.c:
+
+ Convert lib/Xt to ANSI C (Thomas Dickey).
+ Fixes for a few valgrind warnings (Thomas Dickey).
+
+2005-02-21 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * extras/Xpm/lib/create.c:
+ * extras/Xpm/lib/scan.c:
+ Avoid inifite loops. From Chris Gilbert in bug #1920.
+
+2005-02-19 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+
+ Fix an INREG without WaitForIdleMMIO. This one should be
+ unlikely to trigger, but we should still do this in the name
+ of correctness.
+
+2005-02-18 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c
+
+ Add a call to RADEONWaitForIdleMMIO() within RADEONChooseCursorCRTC()
+ as this function uses OUTREGP() which, internally, calls INREG().
+
+ Thus (due to SilkenMouse) INREG() could be called while CP engine
+ was busy. I have observed this lockup on RV350 + R300 3d driver and
+ have no idea why no issues were reported for R200 cards. Perhaps,
+ few of them have enough memory to run merged fb and 3d simultaneously ?
+
+ This fix is the right thing to do, however, we might also need to
+ put fifo management calls into other cursor handling functions
+ (in particular those that write cursor image directly to video memory).
+
+2005-02-18 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/newport/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport.h:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_shadow.c:
+ Bug #2356: Massive acceleration improvements to newport(4).
+ (Dominik Behr)
+
+2005-02-18 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/common/xf86PciInfo.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_chipset.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ Bug #2576: Add support for ATI RN50/ES1000. (ATI Technologies Inc.)
+
+2005-02-18 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/input/void/void.c:
+ Bug #2467: Fix a segfault in the void(4) driver. (David Wong)
+
+2005-02-18 Adam Jackson <ajax@freedesktop.org>
+
+ * extras/x86emu/src/x86emu/ops2.c:
+ Bug #2455: Make x86emu handle JNL correctly. (David Wong)
+
+2005-02-18 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atidac.c:
+ Bug #2567: Fix reversed memset arguments. (David Krause)
+
+2005-02-18 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/cf/mingw.cf:
+ * config/cf/mingw.rules:
+ Update MinGW config files:
+ - Require PThreads
+ - Build xkbcomp
+ - Build libXext
+ - Never build shared libraries
+
+2005-02-18 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/xkbcomp/Imakefile:
+ Do not build cross variant of xkbcomp if UseInstalledOnCrossCompile
+ is defined
+
+2005-02-18 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/cf/X11.tmpl:
+ * programs/Imakefile:
+ Bugzilla #2569 (https://bugs.freedesktop.org/show_bug.cgi?id=2569)
+ attachment #1929 (https://bugs.freedesktop.org/attachment.cgi?id=1929):
+ make build of xkbcomp configurable
+
+2005-02-18 Alexander Gottwald <ago at freedesktop dot org>
+
+ * lib/Xext/XAppgroup.c:
+ * lib/Xext/Xcup.c:
+ Bugzilla #2570 (https://bugs.freedesktop.org/show_bug.cgi?id=2570)
+ attachment #1930 (https://bugs.freedesktop.org/attachment.cgi?id=1930):
+ fixes build of libXext on mingw
+
+2005-02-13 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:
+ Bugzilla #2533 (https://bugs.freedesktop.org/show_bug.cgi?id=2533)
+ Feb. 3, 2005 "nv" driver update from Mark Vojkovich
+ (Mainly driver updates for nVidia cards with
+ ((pNv->Chipset & 0xfff0) == 0x0090) )
+
+2005-02-11 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/xf86config/Imakefile:
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Bug #826: Make xorgconfig respect font installation outside
+ $PROJECTROOT. (Donnie Berkholz)
+
+2005-02-10 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ Fix unaligned YV12 videos that caused skew when playing.
+
+2005-02-10 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ Fix pixmap cache corruption when Xv was in use due to a memory
+ allocator calculation problem.
+
+2005-02-09 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ * programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c:
+ (linuxPpcBusAddrToHostAddr), (linuxPpcHostAddrToBusAddr):
+ Added PCI2Host bus translations for linux PPC and fixed
+ fixed bugs in macros that apply these functions (Bill Randle
+ Bugzilla #325 and #327).
+
+2005-02-09 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/gnu.cf
+ Bugzilla #2507 (https://bugs.freedesktop.org/show_bug.cgi?id=2507)
+ attachment #1871 (https://bugs.freedesktop.org/attachment.cgi?id=1871):
+ Fix build problems on GNU/Hurd.
+ Patch by Pierre Chifflier <chifflier@cpe.fr>.
+
+2005-02-09 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ do not enable color tiling on r300 chips and newer, since it doesn't work (yet)
+ (Bugzilla #2504)
+
+2005-02-01 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ Setup the Xv atoms correctly.
+
+2005-02-07 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/int10/vm86/linux_vm86.c: (vm86_rep):
+ Save gs register before calling the vm86_old syscall thru
+ int 0x80. This is required for linuxthreads as the TLS uses
+ this register to keep track of local thread storage
+ (Bugzilla #2431, J. Scott Berg).
+
+2005-02-07 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86str.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c:
+ (CheckMode), (i830SetModeParameters):
+ Check the pixel clock choosen for a specific refresh rate
+ against the maximally allowed pixel clock when choosing
+ mode lines for VBESetVBEMode() and VESA BIOS version >= 3.0
+ (Bugzilla #2486).
+
+2005-02-06 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml:
+ Doc updates for OpenBSD, reflecting X11R6.8.2.
+
+2005-02-06 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/drivers/via/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/via/via.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via.man:
+ * programs/Xserver/hw/xfree86/drivers/via/via_accel.c:
+ (VIAInitAccel):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bandwidth.c:
+ (ViaSetPrimaryFIFO):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.c:
+ (ViaDumpVGAROM), (ViaVBEGetActiveDevice):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_capture.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_common.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_compose.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_cursor.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dga.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c: (VIASetup),
+ (VIAFreeRec), (VIAPreInit), (VIASave), (VIARestore), (VIAMapMMIO),
+ (VIAMapFB), (VIAUnmapMem), (VIALoadPalette), (VIAScreenInit),
+ (VIAInternalScreenInit), (VIAValidMode), (VIAWriteMode),
+ (VIAAdjustFrame), (VIADPMS):
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_i2c.c:
+ (ViaI2C1PutBits), (ViaI2C1GetBits), (ViaI2CBus1Init),
+ (ViaI2C2PutBits), (ViaI2C2GetBits), (ViaI2CBus2Init),
+ (ViaI2C3Start), (ViaI2C3Address), (ViaI2C3Stop), (ViaI2C3PutBit),
+ (ViaI2C3PutByte), (ViaI2C3GetBit), (ViaI2C3GetByte),
+ (ViaI2CBus3Init), (ViaI2CScan), (ViaI2CInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_i2c.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.c:
+ (ViaCheckCardId):
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memory.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaTVDetect), (ViaTVInit), (ViaTVSave), (ViaTVRestore),
+ (ViaTVDACSense), (ViaTVSetMode), (ViaTVPower), (ViaTVGetIndex),
+ (ViaOutputsDetect), (VIAGetActiveDisplay), (ViaOutputsSelect),
+ (VIAGetPanelSizeFromDDCv2), (ViaGetModeIndex), (ViaGetVesaMode),
+ (ViaPanelGetIndex), (ViaGetNearestRefresh), (ViaRefreshAllowed),
+ (ViaModeInit), (VIASetPrimaryClock), (VIASetSecondaryClock),
+ (VIASetLCDMode), (ViaModePrimaryVGA), (ViaModeDotClockTranslate),
+ (ViaModePrimary), (ViaModeSecondaryVGA), (ViaModeSecondary),
+ (ViaLCDPower):
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_overlay.c:
+ (viaOverlayGetV1V3Format), (viaOverlayGetSrcStartAddress),
+ (viaOverlayGetYCbCrStartAddress), (viaOverlayHQVCalcZoomWidth),
+ (viaOverlayHQVCalcZoomHeight), (viaOverlayGetFetch),
+ (viaOverlayGetDisplayCount), (rangeEqualize), (vPackFloat),
+ (viaCalculateVideoColor):
+ * programs/Xserver/hw/xfree86/drivers/via/via_overlay.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_priv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_refresh.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regrec.c:
+ (FlushVidRegBuffer), (ResetVidRegBuffer), (SaveVideoRegister):
+ * programs/Xserver/hw/xfree86/drivers/via/via_regrec.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_shadow.c:
+ (VIARefreshArea), (VIARefreshArea8), (VIARefreshArea16),
+ (VIARefreshArea24), (VIARefreshArea32):
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (VIAVidHWDiffInit), (viaSetColorSpace), (ViaInitVideoStatusFlag),
+ (ViaSetVidCtl), (ViaYUVFillBlack), (AddHQVSurface),
+ (CreateSurface), (VIAVidCreateSurface), (VIAVidLockSurface),
+ (VIAVidDestroySurface), (SetFIFO_V1), (SetFIFO_V3),
+ (SetFIFO_64or32), (SetFIFO_64or16), (SetFIFO_64or48or32),
+ (SetFIFO_V3_64or32or32), (SetFIFO_V3_64or32or16), (SetupFIFOs),
+ (SetColorKey), (SetChromaKey), (SetVideoStart), (SetHQVFetch),
+ (SetFetch), (SetDisplayCount), (SetMiniAndZoom), (SetVideoControl),
+ (FireVideoCommand), (SetVideoWindow), (Upd_Video),
+ (VIAVidUpdateOverlay), (VIAVidAdjustFrame):
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_tuner.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_tv2.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_tv3.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.c: (ViaGrMask):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (DecideOverlaySupport), (viaResetVideo), (viaInitVideo),
+ (viaSetupImageVideoG), (CreateSWOVSurface), (DestroySWOVSurface),
+ (viaStopSWOVerlay), (viaSetPortAttributeG), (viaPutImageG),
+ (viaQueryImageAttributesG), (viaPutVideo):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vt1622a.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vt162x.c:
+ (VT162xPrintRegs), (ViaVT162xDetect), (ViaVT162xSave),
+ (ViaVT162xRestore), (ViaVT162xDACSenseI2C), (ViaVT1621DACSense),
+ (ViaVT1622DACSense), (ViaVT1621ModeValid), (ViaVT1622ModeValid),
+ (ViaVT1621ModeI2C), (ViaVT1621ModeCrtc), (ViaVT1622ModeI2C),
+ (ViaVT1622ModeCrtc), (ViaVT1621Power), (ViaVT1622Power),
+ (ViaVT162xInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vt162x.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ (ViaInitXVMC), (ViaXvMCCreateSurface), (ViaXvMCCreateSubpicture),
+ (ViaXvMCDestroyContext):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvpriv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/videodev.h:
+
+ Sync with latest unichrome releases:
+ Release 30: Fixes YUV2 alloc/free issues, increased overlay height to
+ 1200, disable ScreenToScreenColorExpand Acceleration, abstract vt162x
+ and clean up standard modetable.
+ Release 29: Further cleanups to Xv, move gpioi2c into xf86I2C, sanely
+ handle output activation (primary only). Fixes many Xv and accel bugs,
+ stops VT switching hardlock with certain dotclocks.
+ Release 28: Major Xv cleanup. Add Xv cropping. Add support for new
+ XvMC info infrastructure. Tuner dropped. AGP ring-buffer support is
+ now an option. Virtual range extended.
+ (Kenneth Aafløy, Thomas Hellström, Felipe Rodriguez, Terry Lewis,
+ Andreas Robinson, Luc Verhaegen)
+
+2005-02-06 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIInitBuffers):
+ Don't clear the front buffer in SAVAGEDRIInitBuffers. Fixes blackness
+ of GL-XScreensaver hacks that grab the screen.
+
+2005-02-05 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/input/fpit/fpit.man:
+ * programs/Xserver/hw/xfree86/input/fpit/readme.txt:
+ * programs/Xserver/hw/xfree86/input/fpit/xf86Fpit.c:
+ (xf86FpitConvert), (xf86FpitReadInput), (xf86FpitControl),
+ (xf86FpitAllocate), (xf86FpitInit):
+ -Add passive pen support to the fpit driver (David M. Clay), bug 2440
+
+2005-02-04 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/common/xf86PciInfo.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h:
+ Applied patch (id=1354) by Mike A. Harris from bug #1901:
+ The attached patch updates a couple of PCI IDs for the Savage driver --
+ Debian/Ubuntu/Red Hat/Fedora.
+
+2005-02-03 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/programs/Xserver/os/xprintf.c:
+ Bugzilla #1865 (https://bugs.freedesktop.org/show_bug.cgi?id=1865)
+ attachment #1827 (https://bugs.freedesktop.org/attachment.cgi?id=1827):
+ check for va_copy not being defined and use __va_copy if available
+
+2005-02-02 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONDoAdjustFrame): fix error with color tiling and hw scrolling,
+ it looks like rv100 doesn't need the special treatment, after all
+ (reported by Stephane Marchesin)
+
+2005-02-02 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/lib/GL/glx/compsize.c:
+ * xc/programs/Xserver/GL/glx/Imakefile:
+ Bugzilla #1866 (https://bugs.freedesktop.org/show_bug.cgi?id=1866)
+ attachment #1819 (https://bugs.freedesktop.org/attachment.cgi?id=1819):
+ Define APIENTRY on windows to prevent <GL/gl.h> from loading <windows.h>
+ removed leftovers from attachment #1818
+
+2005-02-02 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/programs/Xserver/Imakefile
+ Bugzilla #2245 (https://bugs.freedesktop.org/show_bug.cgi?id=2245)
+ attachment #1817 (https://bugs.freedesktop.org/attachment.cgi?id=1817):
+ Fix linking dependencies on cygwin, bsd and maybe others introduced by
+ attachment #1649 (https://bugs.freedesktop.org/attachment.cgi?id=1649)
+ Link libos.a after libxkb.a to resolve the Xprintf symbol.
+
+2005-02-01 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ - fix long standing bug in depth 24 that made colors look dithered.
+ The CLUT was not being switched to 8 bit mode.
+
+2005-02-01 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/xaa/xaaStateChange.c:
+ Bug #1294: Make sure RenderAccel hooks get wrapped in XAA init.
+
+2005-02-01 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/GL/mesa/drivers/osmesa/Imakefile:
+ Bug #1894: Fix weak dependencies in libOSMesa. Originally Debian
+ patch 063_fix_weak_deps.diff. (Branden Robinson)
+
+2005-02-01 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h
+ * xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c
+ * xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c
+ Bugzilla #825 (https://bugs.freedesktop.org/show_bug.cgi?id=825)
+ attachment #956 (https://bugs.freedesktop.org/attachment.cgi?id=956):
+ Fix build problems on Linux/SPARC.
+ Patch by Jeremy Huddleston <eradicator@gentoo.org>.
+ Approved in the 2005-01-31 Xorg release-wranglers phone call.
+
+2005-02-02 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage.man:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ - Changed option ForcePCIMode to option BusType for consistency
+ with other drivers (radeon) and the DmaType option.
+ - Changed the type of a few more messages in SavagePreInit.
+ - Updated the manual page.
+ - Moved option CrtOnly to a more sensible place in the man page.
+
+2005-02-01 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xmore/xmore.man
+ * xc/programs/xmore/xmore.sgml
+ Bugzilla #2410 (https://bugs.freedesktop.org/show_bug.cgi?id=2410)
+ attachment #1786 (https://bugs.freedesktop.org/attachment.cgi?id=1786):
+ Fix formatting problem in the xmore(1x) manual page.
+ Patch by Matthieu Herrb <matthieu.herrb@laas.fr> and Roland Mainz
+ <roland.mainz@nrubsig.org>.
+ Approved in the 2005-01-31 Xorg release-wranglers phone call (the
+ xmore.man diff is an automatic update from the DocBook--->man
+ conversion).
+
+2005-02-01 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/Imake.rules:
+ * config/cf/Imake.tmpl:
+ Bug #1054: dlloader modules need to statically link against libgcc.
+
+2005-02-01 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_dri.c
+ Check return value of i830InitDma() and fail to initialize the DRI
+ if that fails.
+ Also, check the DRM module name that it matches i915 and not the
+ older i830 driver which some people were still trying to use
+ and was causing Dma Initialization failures and lockups.
+
+2005-02-01 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/programs/Xserver/xkb/ddxLoad.c
+ * xc/programs/Xserver/xkb/ddxList.c:
+ Bugzilla #2245 (https://bugs.freedesktop.org/show_bug.cgi?id=2245)
+ attachment #1649 (https://bugs.freedesktop.org/attachment.cgi?id=1649):
+ cleanup the generation of xkbcomp command lines. Allocate them dynamicly
+ and remove unmaintainable length calculation.
+
+2005-02-01 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ Bugzilla #2410 (https://bugs.freedesktop.org/show_bug.cgi?id=2410)
+ attachment #1782 (https://bugs.freedesktop.org/attachment.cgi?id=1782):
+ Build the XRX plugin only if the system supports shared libraries
+ (which is a requirement for this plugin).
+ Patch by Matthieu Herrb <matthieu.herrb@laas.fr>.
+ Approved in the 2005-01-31 Xorg release-wranglers phone call.
+
+2005-02-01 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/nls/Compose/pt_BR.UTF-8
+ * xc/nls/XLC_LOCALE/pt_BR.UTF-8
+ Bugzilla #2400 (https://bugs.freedesktop.org/show_bug.cgi?id=2400)
+ attachment #1762 (https://bugs.freedesktop.org/attachment.cgi?id=1762):
+ Fix build bustage caused by broken patch for brazillian locale support
+ (see Bugzilla #1896).
+ Patch by Kevin E. Martin <kem@freedesktop.org>.
+
+2005-02-01 Daniel Stone <daniel@freedesktop.org>
+
+ * config/cf/linux.cf:
+ * config/cf/xorg.cf:
+ Re-enable building of tdfx for ia64 and amd64, since libglide3 is
+ available there.
+
+2005-01-31 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man
+ change option EnableColorTiling to ColorTiling
+
+2005-01-31 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage.man:
+ Update the savage manual page:
+ - Added options AGPSize, DmaType and ForcePCIMode.
+ - Updated DisableCOB: 3D requires COB, default value is "off", which
+ means that the COB is enabled.
+
+2005-01-31 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageInitialize2DEngine):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (ShadowWait), (ShadowWaitQueue), (WaitQueue3D), (WaitQueue4),
+ (WaitQueue2K), (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ - Shadow status update thresholds on Savage4 were reversed. Fixed now.
+ - Fixed cobIndex on Savage2K. It used only a 4K COB so far. Now we
+ have full 128K.
+ - Program the shadow status thresholds correctly on Savage2K.
+ - Savage2K reports used entries in the queue in qword units instead
+ of dwords. Fixed WaitQueue2K accordingly.
+ - Event counter 0 is in status word 2 instead of status word 1 on
+ Savage2K. Fixed ShadowWait accordingly.
+ - Added a ShadowWaitQueue function that doesn't idle the engine
+ all the time. This improves 3D animation smoothness with concurrent
+ 2D activity when shadow status is enabled.
+
+2005-01-30 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSetGBD_3D):
+ - Update comments about tiled surface regs for savage3d
+
+2005-01-30 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIAgpInit), (SAVAGEDRIBuffersInit), (SAVAGEDRIKernelInit),
+ (SAVAGEDRIScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ Added two new options "DmaType" and "ForcePCIMode".
+
+2005-01-30 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/X11/Imakefile
+ Bugzilla #1090 <https://bugs.freedesktop.org/show_bug.cgi?id=1090>
+ Fix typo in filename of IsModifierKey man page
+ (Reported by Pavel Tsekov <ptsekov@gmx.net>)
+
+2005-01-30 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c
+ Bugzilla #1692 <https://bugs.freedesktop.org/show_bug.cgi?id=1692>
+ Remove reference to nonexistent Monitors file from xorgconfig
+ (Report & patch from Dejan Lesjak <dejan.lesjak@ijs.si>)
+
+2005-01-30 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c
+ Fix option dontVTSwitch under *BSD, when XKB is disabled.
+ Bugzilla #2252.
+ * config/cf/OpenBSD.cf
+ - Enable DoLoadableServer on amd64 and macppc, since the Dlloader
+ works on these architectures
+ - Reenable build of freetype, expat and xterm since OpenBSD
+ doesn't provide alternative sources for those.
+ - use gcc -pipe as on base system.
+ * config/cf/OpenBSDLib.tmpl
+ bump libICE minor version here too.
+
+2005-01-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/etc/pci.ids:
+ Update to latest rev from http://pciids.sf.net/
+ * programs/Xserver/hw/xfree86/etc/extrapci.ids:
+ Remove entries that now duplicate pci.ids
+ Add entries for new Nvidia boards added in recent nv driver update
+
+2005-01-29 Daniel Stone <daniel@freedesktop.org>
+
+ * config/cf/X11.tmpl:
+ * lib/ICE/ICElib.h:
+ * lib/ICE/misc.c:
+ * lib/SM/sm_manager.c:
+ Move _IceGetPeerName into the ICE public API as IceGetPeerName; bump ICE
+ soversion to 6.4 accordingly. Change SM's use to the public version.
+ The old version will be retained for compatibility.
+
+2005-01-28 Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
+
+ * lib/X11/StrKeysym.c:
+ - cleaned up boundary-case handling for Uxxxx Unicode keysym notation
+
+2005-01-28 Thomas Winischhofer <thomas-at-winischhofer-dot-net>
+
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb.h:
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_accel.c:
+ (SiSUSBAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_cursor.c:
+ (SiSUSBLoadCursorImage), (SiSUSBLoadCursorImageARGB):
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_driver.c:
+ (sisusbSetup), (SISUSBDriverFunc), (SISUSBProbe),
+ (SiSUSB_CheckModeCRT1), (SISUSBSearchCRT1Rate):
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_init.c:
+ (SiSUSB_CalcCRRegisters), (SiSUSBBuildBuiltInModeList):
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_init.h:
+ * programs/Xserver/hw/xfree86/drivers/sisusb/sisusb_video.c:
+ - Accelerate HWcursor upload in double scan modes
+ - Add "driverfunc" and report no hardware access needed
+ - Remove unneeded stuff
+
+2005-01-28 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Bus.c:
+ (xf86FindPrimaryDevice):
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ (DoConfigure):
+ * programs/Xserver/hw/xfree86/common/xf86DoProbe.c: (DoProbe):
+ * programs/Xserver/hw/xfree86/common/xf86Events.c: (xf86VTSwitch):
+ * programs/Xserver/hw/xfree86/common/xf86Globals.c:
+ * programs/Xserver/hw/xfree86/common/xf86Helper.c: (xf86AddDriver),
+ (xf86AllocateScreen):
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (InitOutput),
+ (ddxProcessArgument), (ddxUseMsg):
+ * programs/Xserver/hw/xfree86/common/xf86Priv.h:
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c:
+ (xf86RandRGetInfo), (xf86RandRSetConfig):
+ * programs/Xserver/hw/xfree86/common/xf86str.h:
+ * programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c:
+ (dummySetup), (dummyDriverFunc):
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c: (FBDevSetup),
+ (FBDevDriverFunc):
+ * programs/Xserver/hw/xfree86/etc/scanpci.c: (main):
+ * programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/bsd/arm_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/bsd/i386_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/bsdi/bsdi_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.c:
+ * programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c:
+ (ix86PciSelectCfgmech):
+ * programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c:
+ (linuxPciOpenFile), (linuxPciCfgRead), (linuxPciCfgWrite),
+ (linuxPciCfgSetBits), (xf86GetPciDomain), (linuxMapPci):
+ * programs/Xserver/hw/xfree86/os-support/bus/ppcPci.c:
+ (ppcPciInit), (motoppcPciInit), (buserr), (pciCfgMech1Read),
+ (pciCfgMech1Write), (pciCfgMech1SetBits):
+ * programs/Xserver/hw/xfree86/os-support/hurd/hurd_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c:
+ (xf86OpenConsole), (xf86CloseConsole):
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c:
+ (SetKbdRepeat):
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/nto/nto_ioperm.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/os2/os2_ioperm.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/sco/sco_iop.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/shared/ioperm_noop.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_vid.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/sysv/sysv_video.c:
+ (xf86EnableIO):
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h:
+ Modifying X.Org Xserver DDX to allow to run X with ordinary
+ user permissions when no access to HW registers is required.
+ For API changes which mostly involve the modifications to
+ make the RRFunc (introduced with 6.8) more flexible please
+ check Bugzilla #2407.
+ NOTE: This patch applies changes to OS specific files for
+ other OSes which I cannot test.
+
+2005-01-27 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xrx/plugin/include/npapi.h
+ Bugzilla #2398 (https://bugs.freedesktop.org/show_bug.cgi?id=2398)
+ attachment #1765 (https://bugs.freedesktop.org/attachment.cgi?id=1765):
+ Fix build bustage on AIX.
+ Patch by Dan McNichol <mcnichol@austin.ibm.com>.
+
+2005-01-27 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * lib/Xaw/XawIm.c: (SizeNegotiation), (CreateIC), (SetICValues):
+ Muffle gcc4 sentinel (trailing NULL in varargs list) check
+ (Marcus Meissner, Bugzilla #2392).
+
+2005-01-27 Daniel Stone <daniel@freedesktop.org>
+
+ * include/extensions/scrnsaver.h:
+ Include <X11/Xlib.h>.
+
+2005-01-26 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_sarea.h
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h
+ (Stephane Marchesin, me) Add support for color (framebuffer) tiling.
+ Convert all XAA accel code to use explicit dst and src offset pitch
+ control to make it work.
+ Use the new drm surface ioctls to set up the tiled surfaces
+ (if dri is enabled).
+ (retroactively applied to Changelog)
+
+2005-01-26 Roland Scheidegger <rscheidegger_lists@hispeed.ch>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ fix issues with mergedfb + pageflip (fix up sarea frame values)
+
+2005-01-26 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ Fix tiled framebuffer setup on Savage3D (Alex Deucher)
+
+2005-01-26 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/xorg.cf:
+ Disable building the Savage DRI driver.
+
+2005-01-26 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/cf/mingw.cf:
+ Define HasFreetype2 and HasZlib to NO.
+
+2005-01-26 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ (IsBaseUnassigned64), (FindPCIVideoInfo):
+ When we tested if a PCI base address was unassigned we
+ didn't take into account that this bar could have been
+ the upper part of a 64bit base address.
+ This fix makes this code 64bit bar aware (Bugzilla #2382).
+
+2005-01-26 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Bus.c: (RemoveOverlaps):
+ Rewrite of RemoveOverlaps() to make the code more readable.
+ It was virtually impossible to determine if the old code did
+ what it was supposed to do. Also changed paradigm:
+ Trust the based address more than the (guessed) size
+ (Bugzilla #2383).
+
+2005-01-25 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:
+ Jan. 2005 nv chipset update from Mark Vojkovich
+ Bug #2380 <https://bugs.freedesktop.org/show_bug.cgi?id=2380>
+ Patch #1752 <https://bugs.freedesktop.org/attachment.cgi?id=1752>
+
+2005-01-25 Thomas Winischhofer <thomas-at-winischhofer-dot-net>
+
+ * config/cf/linux.cf:
+ * programs/Xserver/hw/xfree86/drivers/sisusb:
+ Add sisusb driver
+
+2005-01-25 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ (FindPCIVideoInfo):
+ * programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h:
+ Fix interpretation of 64bit PCI bases: read hi long word
+ from the right bar (Michael Yaroslavtsev, Bugzilla #2322).
+
+2005-01-25 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ (VIAInitVisualConfigs), (VIADRIScreenInit),
+ (VIADRIFinishScreenInit):
+ Fixes for the visual fixup commits:
+ - Fix DRM memory manager initialization so that it doesn't
+ overlap the pixmap cache.
+ - Set accumAlphaSize to 0 for 16bpp visuals.
+
+2005-01-24 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/i2c/xf86i2c.c:
+ Bug #2004: Make DDC delay slightly longer. (Thomas J. Moore)
+
+2005-01-24 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONCopyData), (RADEONCopyRGB24Data), (RADEONCopyMungedData):
+ Don't exclude 'RADEONInfoPtr info = ...' declaration even when
+ not building with DRI support (Bugzilla #2370)
+
+2005-01-24 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ Adding vgaHW module to PPC64 architecture.
+
+2005-01-24 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ Adding dummy driver support to all platforms which don't build
+ it by default yet. The dummy driver is completely generic and
+ should work everywhere (Bugzilla #2369).
+
+2005-01-24 Egbert Eich <eich-at-freedesktop-dot-org>
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c:
+ (I810DRILeave):
+ Unmap XCursor AGP memory on VT switch to prevent system from lockup
+ (Matthias Hopf, Bugzilla #2329).
+
+2005-01-24 Daniel Stone <daniel@fooishbar.org>
+
+ * config/cf/Imake.tmpl:
+ * config/cf/X11.tmpl:
+ Disable potentially dangerous FreeType, zlib and libpng builds by
+ default. Disable xterm and XRX builds per default.
+
+2005-01-21 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/Xext/Imakefile:
+ * doc/man/Xext/XcupGetReservedColormapEntries.man:
+ * doc/man/Xext/XcupQueryVersion.man:
+ * doc/man/Xext/XcupStoreColors.man:
+ Add man pages for TOG-CUP extension functions. (Converted to
+ man page format by Sun based on TOG-CUP specification docs.)
+
+2005-01-21 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/linux.cf:
+ * programs/Xserver/hw/xfree86/os-support/linux/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_font.c:
+ (lnx_savefont):
+ * programs/Xserver/hw/xfree86/vgahw/Imakefile:
+ Alan Cox requested that we check the kernel version before
+ we use kernel VGA font save/restore as the required features
+ have been added to Linux 2.6.11 (Bugzilla #2277).
+
+2005-01-21 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c:
+ (AccelInit):
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ (chipsPreInitHiQV), (chipsModeInitHiQV):
+ Comparing the C&T driver code with the original BE support patch
+ by Rob Taylor and Jean-Laurent Gazelle it looks like the handling
+ of the availability of a dual endian fb aperture and the byte
+ swapping control bit appears to be slightly wrong.
+ This patch attempts to fix it (Bugzilla #2346).
+
+2005-01-19 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/config/imake/imakemdep.h:
+ Pass through additional #defines for Solaris.
+ (Sun bug id #5097074 - Alan Coopersmith)
+
+2005-01-19 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Xinput.c:
+ Fix debugging ErrorF() so it compiles when DEBUG is true.
+
+Wed Jan 19 16:52:51 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/Imakefile: Add MMXOPTIONS to fbcopy.c
+
+2005-01-19 Alan Coopersmith <alan.coopersmith@sun.com>
+ * doc/man/Xt/Imakefile
+ * doc/man/Xt/XtAddCbk.man
+ * doc/man/Xt/XtAddIn.man
+ * doc/man/Xt/XtAllocGC.man
+ * doc/man/Xt/XtAppE.man
+ * doc/man/Xt/XtAppEM.man
+ * doc/man/Xt/XtAppSTC.man
+ * doc/man/Xt/XtClass.man
+ * doc/man/Xt/XtConvSt.man
+ * doc/man/Xt/XtConvert.man
+ * doc/man/Xt/XtCreateSR.man
+ * doc/man/Xt/XtDisplayI.man
+ * doc/man/Xt/XtErr.man
+ * doc/man/Xt/XtErrM.man
+ * doc/man/Xt/XtExtEvDis.man
+ * doc/man/Xt/XtGEDB.man
+ * doc/man/Xt/XtGetANC.man
+ * doc/man/Xt/XtGetActK.man
+ * doc/man/Xt/XtGetAres.man
+ * doc/man/Xt/XtGetSTO.man
+ * doc/man/Xt/XtGetSres.man
+ * doc/man/Xt/XtInit.man
+ * doc/man/Xt/XtInitWC.man
+ * doc/man/Xt/XtManChild.man
+ * doc/man/Xt/XtOffset.man
+ * doc/man/Xt/XtOwnSel.man
+ * doc/man/Xt/XtRegDraw.man
+ * doc/man/Xt/XtResPA.man
+ * doc/man/Xt/XtSession.man
+ * doc/man/Xt/XtSetLangP.man
+ * doc/man/Xt/XtSetSP.man
+ * doc/man/Xt/XtSetVal.man
+ * doc/man/Xt/XtSetWMC.man
+ Xt man page cleanups/merge with Sun versions (Alan Coopersmith &
+ Sun Microsystems docs teams)
+ Bug #2331 <https://bugs.freedesktop.org/show_bug.cgi?id=2331>
+ Attachment #1718 <https://bugs.freedesktop.org/attachment.cgi?id=1718>
+
+2005-01-19 Thomas Winischhofer <thomas@winischhofer.net>
+ SiS driver (all files)
+ - Fix off-by-one error in setting up offscreen-images
+ - Fix for retrieval of mode timing from BIOS for LCD
+ - Fix for DGA in MergedFB mode
+ - Code size reduction by more calculations, less tables
+ - ShadowFB uses fast memcpy (correctly) now
+ - Prefer user given modes over default ones
+ - Add ForcePanelRGB option
+ - Wrap fb and MMIO access with macros for easier porting
+
+2005-01-18 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/nls/compose.dir
+ * xc/nls/locale.dir
+ * xc/nls/Compose/Imakefile
+ * xc/nls/Compose/pt_BR.UTF-8
+ * xc/nls/XI18N_OBJS/Imakefile
+ * xc/nls/XI18N_OBJS/pt_BR.UTF-8
+ * xc/nls/XLC_LOCALE/Imakefile
+ * xc/nls/XLC_LOCALE/pt_BR.UTF-8
+ * xc/programs/Xserver/XpConfig/Imakefile
+ Bugzilla #1896 (https://bugs.freedesktop.org/show_bug.cgi?id=1896)
+ attachment #1675 (https://bugs.freedesktop.org/attachment.cgi?id=1675):
+ Add support for pt_BR.UTF-8 locale.
+ Patch by Gustavo Noronha Silva, Branden Robinson, Julien Lafon.
+
+2005-01-17 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/input/evdev/evdev.c (EvdevReadInput)
+ (EvdevReadInput): Handle horizontal wheel events and move mapping
+ of extra buttons up so they don't overlap the wheel buttons.
+ Patch from Alan Swanson (#968).
+
+2005-01-15 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/fb/fbmmx.c:
+ * programs/Xserver/fb/fbpict.c:
+ * programs/Xserver/fb/fbpict.h:
+ Bug #1895: Fix fbComposeGetSolid for BGR. (David S. Miller)
+
+Fri Jan 14 17:03:40 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/mi/miwindow.c (miSlideAndSizeWindow): Fix from Keith
+ Packard for bitgravity bugs in the Composite extension, reported
+ by Amir Bukhari.
+
+Fri Jan 14 11:12:46 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbpict.c (fbComposite): Use mmx CopyArea in
+ a few more places.
+
+2005-01-14 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86PM.c: (eventName),
+ (DoApmEvent), (xf86HandlePMEvents):
+ - Don't suspend Xserver on APM standby request as this seems
+ to cause problems on may systems which don't support APM
+ standby and might not be required as according to the APM
+ specs the chips should receive enough power to retain its
+ state.
+ - Print out power state change requests to log file in all
+ verbosity levels.
+ - Don't change server state if no driver PM function is
+ registered.
+ (Bugzilla #2279)
+
+2005-01-14 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/linux.cf:
+ * programs/Xserver/hw/xfree86/os-support/linux/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx.h:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_font.c:
+ (getfont), (lnx_savefont), (setfont), (lnx_restorefont),
+ (lnx_switchaway), (lnx_freefontdata):
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c:
+ (xf86OpenConsole), (xf86CloseConsole):
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c:
+ * programs/Xserver/hw/xfree86/os-support/shared/VTsw_usl.c:
+ (xf86VTSwitchAway):
+ * programs/Xserver/hw/xfree86/vgahw/Imakefile:
+ * programs/Xserver/hw/xfree86/vgahw/vgaHW.c: (vgaHWRestoreFonts),
+ (vgaHWSaveFonts):
+ Let the OS instead of X save/restore text console fonts on Linux.
+ So far we relied on the generic VGA layer to restore text console
+ fonts for us when shutting down the server or VT switching back
+ to the text console.
+ This has worked rather well but it has some downsides on Linux:
+ a. Many people use fbdev as console text mode. In this case it is
+ not necessary to save/restore console fonts as the console is
+ running in graphics mode anyway.
+ b. Some architectures don't have a fbdev console but require a
+ full POST of even the primary card (ie. IA64). This posting
+ has to take place before we even have a chance to save
+ anything. Therefore the fonts we save are the once written to
+ the chip by POST, not what has been programmed by the user.
+ c. Certain chipsets utilize the BIOS to perform mode setting. This
+ may interfer with the vga save/restore font function in a
+ strange way.
+ It would therefore be preferrable to let the OS - which has been
+ used to set up the font in the first place - take care of
+ saving/restoring the data.
+ I will attach a patch which will do so for Linux.
+ To make this fully functional a small patch needs to be applied to
+ the Linux kernel.
+ To disable this feature add:
+ #define DoOSFontRestore NO
+ to your host.def. (Bugzilla #2277)
+
+2005-01-14 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * lib/X11/lcFile.c: (normalize_lcname):
+ Made some security enhancements:
+ - no writing past end of buffer caused by bogus locale.
+ - explicitely add a \0 character at end of string.
+ (Ienup Sung, Bugzilla #2262)
+
+2005-01-14 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c
+ Disable 32bpp depth buffers (Mesa limitations)
+
+2005-01-14 Alexander Gottwald <ago at freedesktop dot org>
+ * xc/programs/Xserver/os/xprintf.c:
+ Added copyright notice.
+
+2005-01-14 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/afb/afbbres.c
+ * xc/programs/Xserver/afb/afbbresd.c
+ * xc/programs/Xserver/afb/afbclip.c
+ * xc/programs/Xserver/afb/afbhrzvert.c
+ * xc/programs/Xserver/afb/afbline.c
+ * xc/programs/Xserver/afb/afbmodule.c
+ * xc/programs/Xserver/afb/afbpixmap.c
+ * xc/programs/Xserver/afb/afbpolypnt.c
+ * xc/programs/Xserver/afb/afbpushpxl.c
+ * xc/programs/Xserver/afb/afbtegblt.c
+ * xc/programs/Xserver/cfb/Imakefile.inc
+ * xc/programs/Xserver/cfb/cfballpriv.c
+ * xc/programs/Xserver/cfb/cfbbitblt.c
+ * xc/programs/Xserver/cfb/cfbcppl.c
+ * xc/programs/Xserver/cfb/cfbgc.c
+ * xc/programs/Xserver/cfb/cfbglblt8.c
+ * xc/programs/Xserver/cfb/cfbmap.h
+ * xc/programs/Xserver/cfb/cfbpixmap.c
+ * xc/programs/Xserver/cfb/cfbscrinit.c
+ * xc/programs/Xserver/cfb/cfbtab.h
+ * xc/programs/Xserver/cfb/cfbteblt8.c
+ * xc/programs/Xserver/cfb/cfbunmap.h
+ * xc/programs/Xserver/mfb/maskbits.c
+ * xc/programs/Xserver/mfb/maskbits.h
+ * xc/programs/Xserver/mfb/mergerop.h
+ * xc/programs/Xserver/mfb/mfb.h
+ * xc/programs/Xserver/mfb/mfbclip.c
+ * xc/programs/Xserver/mfb/mfbfont.c
+ * xc/programs/Xserver/mfb/mfbgc.c
+ * xc/programs/Xserver/mfb/mfbmisc.c
+ * xc/programs/Xserver/mfb/mfbpushpxl.c
+ * xc/programs/Xserver/XpConfig/Imakefile
+ Bugzilla #1114 (https://bugs.freedesktop.org/show_bug.cgi?id=1114)
+ attachment #667 (https://bugs.freedesktop.org/attachment.cgi?id=667):
+ Convert afb and cfb{,16,24,32} to be dlloader-friendly.
+ Patch by Adam Jackson <ajax@freedesktop.org>.
+
+2005-01-14 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/sunleo/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_bcopy.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_checks.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_frect.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_frectsp.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_fspans.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_fspanssp.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_gc.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_gc.h:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_glyph.c:
+ * programs/Xserver/hw/xfree86/drivers/sunleo/leo_stubs.c:
+ Bug #1259: Convert sunleo(4) to fb.
+
+2005-01-14 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_bcopy.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dga.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb.h:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_rcache.h:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/ffb_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/sunffb/Imakefile:
+ Bug #1891: XAA support for Sun FFB. (Dave S. Miller)
+
+2005-01-14 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/xorg.cf:
+ Use dlloader by default for loadable server builds.
+
+2005-01-14 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/nls/compose.dir
+ * xc/nls/locale.alias
+ * xc/nls/locale.dir
+ * xc/programs/Xserver/XpConfig/Imakefile
+ Bugzilla #1830 (https://bugs.freedesktop.org/show_bug.cgi?id=1830)
+ attachment #1674 (https://bugs.freedesktop.org/attachment.cgi?id=1674):
+ Adding support for the bs_BA (bs, bs_BA, bs_BA.iso88592,
+ bs_BA.ISO-8859-2, bs_BA.ISO_8859-2, bs_BA.UTF-8) locale.
+ Patch by Vedran Ljubovic <vljubovic@smartnet.ba>.
+
+Thu Jan 13 17:45:13 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/GL/glx/glxcmds.c (DoCreateGLXPixmap): Make sure
+ the pixmap is a valid new resource
+
+ * programs/Xserver/GL/glx/glxcmds.c (DoCreateContext): Make sure
+ the context is a legal new resource.
+
+ * lib/GL/glx/glx_pbuffer.c (CreatePbuffer): Handle null
+ attrib_list.
+
+ * lib/GL/glx/glx_pbuffer.c (CreateDrawable): Handle null
+ attrib_list; copy attrib_list to data; actually allocate the new
+ GLXDrawable.
+
+Thu Jan 13 15:40:29 2005 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/fb/fbmmx.c (fbCompositeSrc_8888x8x8888mmx): Add
+ MMX implementation of non-repeating source IN repeating mask, aka
+ "translucent window".
+
+ * programs/Xserver/fb/fbmmx.c (fbCopyAreammx,
+ fbCompositeCopyAreammx): Add MMX implementation of CopyArea.
+
+ * programs/Xserver/fb/fbcopy.c (fbCopyNtoN): Use MMX
+ implementation of CopyArea.
+
+ * programs/Xserver/fb/fbpict.c (fbComposite): Use the new
+ implementations.
+
+2005-01-13 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+
+ Some of the newer Radeons (R420 for example) have MM_TABLE's
+ with size 0x33 (instead of 0x0c that we know). Furthermore,
+ they lockup during access of I2C bus !
+
+ Add a check to validate MM_TABLE.
+
+2005-01-12 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/common/compiler.h:
+ Bug #2114: PPC64 Linux build fix: use system definition of eieio().
+ Originally Gentoo bug #66223. (Tim Yamin, Donnie Berkholz)
+
+2005-01-12 Kristian Høgsberg <krh@redhat.com>
+
+ * config/cf/linux.cf:
+ * programs/Xserver/hw/xfree86/input/evdev/evdev.c:
+ * programs/Xserver/hw/xfree86/input/evdev/Imakefile:
+ Add new evdev input driver. This driver uses the linux input
+ layer directly and can handle both mice and keyboards.
+
+ * ChangeLog:
+ Convert this to UTF-8 again. The ChangeLog should be kept in
+ UTF-8.
+
+2005-01-12 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_driver.c
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_driver.h
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.h
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_memcpy.c
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_cursor.c
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_accel.c
+ Import some changes from the Unichrome project.
+ - Fixes 2D acceleration problems
+ - Adds AGP DMA
+
+2005-01-11 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c
+ More visual fixing.
+
+2005-01-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * lib/X11/lcFile.c: (normalize_lcname), (_XlcResolveLocaleName):
+ 'Normalize' locale names (ie. remove any '-' and '_' and convert
+ to lower case after the <language>_<territory> part) before
+ matching against locale.alias (Bugzilla #2262).
+ This needs adequate testing that we don't accidentally introduce
+ undesirable side effects.
+
+2005-01-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ Don't build tdfx DRI driver on any platform but x86 and AXP
+ as therequired Glide3 lib is only available there (if at all).
+ Readability fixes (Bugzilla #2264).
+
+2005-01-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/chips/chips.man:
+ Explain the FpMode option (Bugzilla #2261).
+
+2005-01-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/ddc/edid.h:
+ Minor format fix.
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c: (KbdPreInit),
+ (PostKbdEvent):
+ Added explanatory comment and debug code.
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c:
+ (lnxPMConfirmEventToOs):
+ Added comment.
+
+2005-01-11 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c
+ Add alpha buffer initialization to 32bpp modes.
+ Move 24/8 mode to first exported mode as it works best (currently).
+
+2005-01-10 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/spooler.c
+ Bugzilla #2167 (https://bugs.freedesktop.org/show_bug.cgi?id=2167)
+ attachment #1641 (https://bugs.freedesktop.org/attachment.cgi?id=1641):
+ Fix broken Solaris print queue enumeration.
+
+2005-01-11 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIAgpInit), (SAVAGEDRIBuffersInit), (SAVAGEDRIKernelInit),
+ (SAVAGEDRIScreenInit), (SAVAGEDRIFinishScreenInit),
+ (SAVAGEDRICloseScreen):
+ - Support for PCI Savages: on PCI cards don't run
+ SAVAGEDRIAgpInit, add PCI DMA buffers instead of AGP
+ buffers. Set dma_type properly in SAVAGEDRIKernelInit.
+ - Something's still wrong with ShadowStatus on the PCI card I'm
+ testing here. Probably a DRM issue.
+ - Fixed error handling. Call SAVAGEDRICloseScreen instead of
+ DRICloseScreen.
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h:
+ - Added AGP/PCI detection (copied from the radeon driver).
+
+2005-01-10 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/linux.cf:
+ * config/cf/xorg.cf:
+ Make MIPS build rules more standard conformant: Use a macro
+ defined in the project specific config file for OptimizedCDebugFlags.
+
+2005-01-10 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/attributes.h
+ Bugzilla #2254 (https://bugs.freedesktop.org/show_bug.cgi?id=2254)
+ attachment #1659 (https://bugs.freedesktop.org/attachment.cgi?id=1659):
+ Refix for gcc4.0 build failure. It seems that the |ExecCommand()|
+ function has no consumer and can safely be removed.
+
+2005-01-10 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ When having a place to define DevelDrivers for AMD64
+ we should have reference it, too.
+
+2005-01-10 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c: (PostKbdEvent):
+ PC keyboards internally generate a different scan code when the
+ ALT modifier is pressed with the SysReq/Print key. Since X expects
+ the same scancode regardless of the modifier the keyboard driver
+ has to 'map the code back'. So far it does so when seeing the
+ SysReq scancode without checking if the modifier is on. If this
+ scancode is also sent by another key on an extended keyboard it
+ receives the same remapping.
+ Fix: Add check for ALT modifier down before doing the remapping
+ (Bugzilla #2255, Helmut Fahrion).
+
+2005-01-10 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Util.c
+ * xc/programs/Xserver/Xprint/attributes.h
+ * xc/programs/Xserver/Xprint/ps/Ps.h
+ Bugzilla #2254 (https://bugs.freedesktop.org/show_bug.cgi?id=2254)
+ attachment #1654 (https://bugs.freedesktop.org/attachment.cgi?id=1654):
+ Fix gcc4.0 build failure.
+ Patch by Egbert Eich <eich@freedesktop.org> and Roland Mainz
+ <roland.mainz@nrubsig.org>
+
+2005-01-10 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c:
+ (SpecialKey):
+ Make option 'DontVTSwitch' work again with kbd driver
+ under Linux.
+ The kbd driver now calls the OS layer to handle special
+ keys. Possibly other special keys and other OSes need to
+ be looked at also.
+ (Bugzilla #2252, Helmut Fahrion).
+
+2005-01-10 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ Revert some changes to TweakMemorySize
+
+2005-01-09 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/config/cf/mingw.cf:
+ Adjust XVendorManNameString, XVendorContact, OSName and OSVendor
+
+2005-01-10 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_driver.c
+ * xc/programs/Xserver/hw/xfree86/drivers/via/via_dri.c
+ Fix VIA DRI initialization so that the correct visuals are exported.
+
+2005-01-09 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/programs/Xserver/Imakefile:
+ Fix library dependencies for libxkb.a on cygwin and mingw.
+
+2005-01-09 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/programs/Xserver/xkb/ddxList.c
+ * xc/programs/Xserver/xkb/ddxLoad.c
+ Bugzilla #2245 (https://bugs.freedesktop.org/show_bug.cgi?id=2245)
+ attachment #1647 (https://bugs.freedesktop.org/attachment.cgi?id=1647):
+ export Win32System and Win32TempDir
+ remove #ifdef WIN32 block for building xkbcomp commandline
+ create win32 tempfile in system tempdir
+ use PATH_MAX*4 for commandline buffer
+ unlink tempfile again
+
+2005-01-09 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/programs/Xserver/xkb/ddxLoad.c
+ Bugzilla #2245 (https://bugs.freedesktop.org/show_bug.cgi?id=2245)
+ attachment #1645 (https://bugs.freedesktop.org/attachment.cgi?id=1645):
+ cleanup some #ifdef __UNIXOS2__ and WIN32 blocks.
+ make OutputDirectory check the size of the buffer
+ quote all file and pathnames in the xkbcomp commandline
+ use PATH_MAX*4 for commandline buffer
+
+2005-01-09 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/include/Xwindows.h:
+ Make sure PATH_MAX is at least 1024
+
+2005-01-08 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint.cpp
+ Bugzilla #2240 (https://bugs.freedesktop.org/show_bug.cgi?id=2240)
+ attachment #1642 (https://bugs.freedesktop.org/attachment.cgi?id=1642):
+ Fix incorrect usage of /usr/bin/tr in startup script (the used
+ "[\n]" is neither correct or portable, using "\n" seems to be
+ sufficient (this fixes various "random" issues, including
+ including Debian bug #258419 and Debian bug #264983).
+ Patch by Drew Parsons <dparsons@debian.org>.
+
+2005-01-07 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/lib/GL/mesa/tnl/Imakefile.inc
+ Add missing t_vb_cull.c
+
+2005-01-06 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i830_context.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/intel_context.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_context.c
+ Cleanup of extension string handling (Ian Romanick)
+
+2005-01-06 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/extras/drm/linux/drm_pm.h
+ Missing file
+
+2005-01-06 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/common.h
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i810.man
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830.h
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_common.h
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_dri.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_modes.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i830_context.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i830_reg.h
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i830_state.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i830_texblend.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_context.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_metaops.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_reg.h
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_state.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_tex.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_texprog.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_texstate.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/intel_context.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/intel_context.h
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/intel_ioctl.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/intel_screen.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/intel_state.c
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/intel_tex.c
+ * xc/extras/drm/shared/drm_pciids.txt
+ * xc/extras/drm/shared/i915_drv.h
+ * xc/extras/drm/shared/i915.h
+ * xc/extras/drm/linux/drm_drv.h
+ * xc/extras/drm/linux/drm_os_linux.h
+ * xc/extras/drm/linux/drmP.h
+ * xc/extras/drm/linux/i915_drv.c
+ * xc/extras/drm/linux/Makefile
+ * xc/extras/drm/linux/Makefile.kernel
+ Add:
+ - Intel i915GM support to 2D DDX and 3D Mesa drivers.
+ - PanelID identification
+ - DRI suspend/resume support
+ - Detection of monitor changes on VT switches
+ - Support custom video modes if available in the Video BIOS
+ - 3D enhancements:
+ * GL_ARB_texture_cube_map
+ * GL_EXT_blend_equation_separate
+ * GL_ATI_blend_equation_separate
+ * GL_ARB_point_parameters
+ * GL_NV_blend_square
+ * GL_EXT_cull_vertex
+ * GL_ARB_depth_texture
+ * GL_SGIX_depth_texture
+ * GL_ARB_shadow
+ * GL_EXT_shadow_funcs
+ * GL_3DFX_texture_compression_FXT1
+ By Tungsten Graphics, Keith Whitwell & Alan Hourihane.
+
+2005-01-05 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xterm/INSTALL
+ * xc/programs/xterm/MANIFEST
+ * xc/programs/xterm/Makefile.in
+ * xc/programs/xterm/Tekproc.c
+ * xc/programs/xterm/VTPrsTbl.c
+ * xc/programs/xterm/VTparse.def
+ * xc/programs/xterm/VTparse.h
+ * xc/programs/xterm/XTerm.ad
+ * xc/programs/xterm/aclocal.m4
+ * xc/programs/xterm/button.c
+ * xc/programs/xterm/charclass.c
+ * xc/programs/xterm/charproc.c
+ * xc/programs/xterm/configure
+ * xc/programs/xterm/configure.in
+ * xc/programs/xterm/ctlseqs.ms
+ * xc/programs/xterm/cursor.c
+ * xc/programs/xterm/doublechr.c
+ * xc/programs/xterm/fontutils.c
+ * xc/programs/xterm/fontutils.h
+ * xc/programs/xterm/input.c
+ * xc/programs/xterm/main.c
+ * xc/programs/xterm/main.h
+ * xc/programs/xterm/menu.c
+ * xc/programs/xterm/menu.h
+ * xc/programs/xterm/misc.c
+ * xc/programs/xterm/os2main.c
+ * xc/programs/xterm/plink.sh
+ * xc/programs/xterm/precompose.c
+ * xc/programs/xterm/print.c
+ * xc/programs/xterm/ptyx.h
+ * xc/programs/xterm/resize.c
+ * xc/programs/xterm/screen.c
+ * xc/programs/xterm/scrollbar.c
+ * xc/programs/xterm/testxmc.c
+ * xc/programs/xterm/trace.c
+ * xc/programs/xterm/util.c
+ * xc/programs/xterm/uxterm
+ * xc/programs/xterm/version.h
+ * xc/programs/xterm/xstrings.c
+ * xc/programs/xterm/xterm.h
+ * xc/programs/xterm/xterm.log.html
+ * xc/programs/xterm/xterm.man
+ * xc/programs/xterm/xterm_io.h
+ * xc/programs/xterm/xtermcfg.hin
+ * xc/programs/xterm/unicode/README
+ * xc/programs/xterm/unicode/make-precompose.sh
+ * xc/programs/xterm/unicode/precompose.c.head
+ Bugzilla #1979 (https://bugs.freedesktop.org/show_bug.cgi?id=1979)
+ attachment #1639 (https://bugs.freedesktop.org/attachment.cgi?id=1639):
+ Update xterm from version #196 to version #197:
+ - modify configure script to remove empty "-DPROJECTROOT="
+ definition which resulted unusable values for luit's default path.
+ - update precompose.c based on Unicode 4.0.1
+ - several minor fixes based on Intel compiler warnings.
+ - change default translations so a BtnDown which is not recognized
+ is simply ignored rather than emitting a bell. That makes it less
+ obtrusive when the user tries to use a mouse which provides more
+ capabilities than the X mouse driver supports, e.g., one with a
+ horizontal scroll wheel (Debian #265133).
+ - note in xterm's manpage that translations is not specific to xterm
+ (Debian #278897).
+ - modify uxterm script to use locale program to verify if the
+ derived locale is installed (Debian #246398).
+ - correct font handling for active icon when in UTF-8 mode (report
+ by Paolo Liberatore).
+ - make active-icon and toolbar configurations work together.
+ - modify the criteria for disowning primary selection. Previously,
+ this happened anytime the cursor was moved before the end of the
+ selection. That would ensure that any insert/delete of char or
+ line, as well as scrolling, would disown the selection. The new
+ criteria change this to checking if the operations would modify
+ the data which is highlighted (Debian #277832).
+ - reimplement DECALN with functions for vt420 rectangles, fixes
+ selection for this case.
+ - implement vt420 rectangle operations.
+ - add parsing, for debug/test of vt220 soft-fonts.
+ - add menu entry, actions and escape sequence to allow
+ enabling/disabling toolbars at runtime.
+ - improve rendering for Xft, allow it to draw non-linedrawing
+ characters such as "pi", which were drawn from internal tables
+ with patch #180 (Freedesktop.org Bugzilla #1260).
+ - add configure option --enable-mini-luit, ifdef'd the mini-luit
+ feature with OPT_MINI_LUIT.
+ - add mini-luit feature, which supports Latin9 directly rather than
+ via luit, provided that Unicode fonts are used (Freedesktop.org
+ Bugzilla #1571, request by Stefan Dirsch, patch by Michael
+ Schroeder).
+ - for Linux, if IUTF8 is defined, e.g., on recent 2.6.x kernels, set
+ the corresponding flag for the slave pty, to enable UTF-8
+ interpretation of backspace in cooked mode (Freedesktop.org
+ Bugzilla #1578, request by Stefan Dirsch).
+ - modify faceSize resource to use a floating-point internal value
+ (adapted from patch by Sam Stephenson).
+ - correct handling selection of tabs over cleared space in UTF-8
+ mode. In this special case, xterm represents the whitespace with a
+ null rather than a space character (Debian #276447).
+ - amend fix for infinite loop from patch #192 to check if there
+ is wrapped text to output in a following iteration (Debian
+ #273202).
+ - fixes ifdef'd with __INTERIX to allow building with Interix
+ (Windows Services for UNIX) 3.5 using the xlibs libraries from
+ freedesktop.org (patch by Min Sik Kim).
+ - amend solution for Debian #252873, #260471 from patch #194 by
+ making the cursor not explicitly colored if only the foreground
+ color is set, and the cursor is on a blank space (Debian #275473).
+ - correct logic for send/receive mode (SRM) with regard to control
+ characters.
+ - fix masking of invisible text in wide-character mode, which did
+ not work for line-drawing characters.
+ - incorporate CF_XOPEN_SOURCE into configure script, replacing
+ CF_GNU_SOURCE.
+ Patch by Thomas Dickey <dickey@radix.net>.
+
+2005-01-04 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/glxgears/glxgears.c
+ Bugzilla #2220 (https://bugs.freedesktop.org/show_bug.cgi?id=2220)
+ attachment #1630 (https://bugs.freedesktop.org/attachment.cgi?id=1630):
+ Make glxgears a better GL client via calling |glFinish()| between frame
+ swaps to avoid that the GL instruction queue gets spammed, sometimes
+ even killing all interactive usage of the Xserver.
+
+2005-01-04 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ - made structure of PPC64 part look more like the other
+ structures.
+ - added VBE driver to PPC64. I don't know if this really
+ makes sense, but since we are building the int10 module
+ we should also build the vbe module.
+ - added i915 DRM driver to list of drivers for the AMD64
+ architecture.
+ - added a check for gcc versions > 3 for setting GccAliasingFlags.
+
+2005-01-03 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Bugzilla #2211 (https://bugs.freedesktop.org/show_bug.cgi?id=2211)
+ attachment #1627 (https://bugs.freedesktop.org/attachment.cgi?id=1627):
+ xorgconfig default keyboard model outdated (should be pc105,
+ not pc101/pc102)
+
+Mon Jan 3 12:45:10 2005 Søren Sandmann <sandmann@redhat.com>
+
+ Clean-ups and support for AMD64. Bug 1067.
+ Patch by Nicholas Miell (nmiell@comcast.net)
+
+ * programs/Xserver/fb/Imakefile: Add support for AMD64
+
+ * programs/Xserver/fb/{fbmmx.[ch],fbpict.c}: Many cleanups
+ using <mmintrin.h> instead of __builin_ia32_*, and intrinsics
+ instead of inline assembly. Also unconditionally use pshufw on
+ AMD64.
+
+ * programs/Xserver/fb/*: s/USE_GCC34_MMX/USE_MMX/g
+
+2005-01-03 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * include/Xos.h:
+ * include/Xthreads.h:
+ gcc 4 doesn't like predeffines line 'linux' any more.
+ To muffle the compiler replace them with __linux__
+ (Bugzilla #2207).
+
+2005-01-03 Adam Jackson <ajax@freedesktop.org>
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_video.c:
+ Bug #1488: Fix crash on i830 during startup. (Eric Anholt)
+
+2005-01-03 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/Xprint/attributes.c: (AppendEntry):
+ Added missing return value (Bugzilla #2205)
+ Problem found by Stefan Kulow.
+
+2005-01-03 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ (screen_configuration):
+ Added missing return value (Bugzilla #2206)
+ Problem found by Stefan Kulow.
+
+2005-01-03 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/lib/XprintAppUtil/xpapputil.c
+ * xc/lib/XprintAppUtil/xpapputil.h
+ * xc/lib/XprintUtil/xprintutil.c
+ * xc/lib/XprintUtil/xprintutil.h
+ * xc/programs/glxgears/glxgears.c
+ * xc/programs/xdbedizzy/xdbedizzy.c
+ * xc/programs/xedit/Xedit-xprint.ad
+ * xc/programs/xedit/commands.c
+ * xc/programs/xlogo/print.c
+ * xc/programs/xlsfonts/xlsfonts.c
+ * xc/programs/xlsfonts/xlsfonts.man
+ * xc/programs/xlsfonts/xlsfonts.sgml
+ * xc/programs/xman/Xman-xprint.ad
+ * xc/programs/xman/handler.c
+ * xc/programs/xman/print.c
+ * xc/programs/xman/print.h
+ * xc/programs/xmore/XMore.ad
+ * xc/programs/xmore/print.c
+ * xc/programs/xmore/print.h
+ * xc/programs/xmore/printdialog.c
+ * xc/programs/xmore/printdialog.h
+ * xc/programs/xmore/printdialogprivates.h
+ * xc/programs/xmore/xmore.c
+ * xc/programs/xphelloworld/xpawhelloworld/xpawhelloworld.c
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.c
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.c
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.c
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.c
+ * xc/programs/xplsprinters/xplsprinters.c
+ * xc/util/memleak/getretmips.c
+ Bugzilla #1706 (https://bugs.freedesktop.org/show_bug.cgi?id=1706)
+ attachment #1615 (https://bugs.freedesktop.org/attachment.cgi?id=1615):
+ XprintUtils 2004/Q3 update. This adds various new features to the
+ XprintUtils library including support for page resolutions where
+ X_resolution!=Y_resolution, listfonts-mode control and initial framework
+ for the COLORSPACE extension.
+ Patch by Roland Mainz <roland.mainz@nrubsig.org> and Julien Lafon
+ <julien.lafon@gmail.com>.
+
+2005-01-02 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * doc/man/Xt/XtNextEv.man:
+ Fix formatting.
+
+2005-01-02 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEInitVisualConfigs):
+ Make 32-bit visuals match the set of visuals supported by the DRI
+ driver.
+
+2005-01-02 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIScreenInit), (SAVAGEDRIFinishScreenInit),
+ (SAVAGEDRIInitBuffers), (SAVAGEDRIMoveBuffers):
+ Reenabled SAVAGEDRIInitBuffers and SAVAGEDRIMoveBuffers and fixed
+ lockups they were causing. InitBuffers now uses the DRM clear
+ command, MoveBuffers needs to wait for 3D idle. Some related
+ cleanups.
+
+2005-01-01 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageInitialize2DEngine), (SavageInitAccel):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGECreateContext), (SAVAGEDestroyContext),
+ (SAVAGEWakeupHandler), (SAVAGEBlockHandler), (SAVAGESelectBuffer),
+ (SAVAGEDRIAgpInit), (SAVAGEDRIMapInit), (SAVAGEDRIKernelInit),
+ (SAVAGEDRIScreenInit), (SAVAGEDRIFinishScreenInit),
+ (SAVAGEDRIInitBuffers), (SAVAGEDRICloseFullScreen):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (ShadowWait), (SavageIdentify), (SavageProbe), (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_hwmc.c:
+ (SAVAGEXvMCCreateContext):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_sarea.h:
+ Updates to support the new Savage DRM driver (version 2.0.x) which
+ was just committed to DRM CVS. Cleaned up the interface to the DRI
+ driver. Bumped the Savage DDX version to 2.0.0 due to incompatible
+ changes in that interface.
+
+2005-01-01 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/os-support/xf86drm.h:
+ Added new DRM map type DRM_CONSISTENT for consistent PCI
+ memory. Only implemented in the Linux DRM so far.
+
+2004-12-24 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONProbePLLParameters), (RADEONInitCrtc2Registers):
+ - Fix MCLK / SCLK calculation (Benjamin Herrenschmidt) bug 2144
+ - formatting cleanup
+
+2004-12-24 Alexander Gottwald <ago at freedesktop dot org>
+
+ * xc/programs/Xserver/xkb/ddxLoad.c:
+ Print error message if CreateProcess fails
+ Simplify popen simulation code for WIN32
+ Remove temporary file after executing xkbcomp
+
+2004-12-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/programs/Xserver/hw/xfree86/common/xf86Init.c:
+ * xc/lib/Xmu/CvtStdSel.c:
+ * xc/programs/Xserver/hw/xfree86/os-support/bus/Sbus.c:
+ Bug #2123 <https://bugs.freedesktop.org/show_bug.cgi?id=2123>
+ Attachment #1587 <https://bugs.freedesktop.org/attachment.cgi?id=1587>
+ Call to uname should not check for return == 0, but for >= 0 instead
+
+2004-12-20 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/hw/via/viaLowLevel.c: (pciCommand), (agpCommand):
+ * lib/XvMC/hw/via/viaXvMC.c: (XvMCCreateContext),
+ (XvMCDestroyContext), (XvMCSyncSurface):
+ Updated libviaXvMC to Unichrome release 0.13.3.
+
+2004-12-19 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_dac.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/tvga_dac.c:
+ Bug #1202: Remove long-broken 1bpp and 4bpp support from trident
+ driver. (Jakub Stachowski)
+
+2004-12-19 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c:
+ (R128EngineInit), (R128RestoreCCEAccelState), (R128CCEAccelInit),
+ (R128RestoreAccelState), (R128MMIOAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_cursor.c:
+ (R128SetCursorColors), (R128SetCursorPosition),
+ (R128LoadCursorImage), (R128HideCursor), (R128ShowCursor):
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ (R128EntPriv), (R128INPLL), (R128Blank), (R128Unblank),
+ (R128GetBIOSParameters):
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c:
+ (R128Probe):
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h:
+ - Add support for Dualhead on M3/M4 (bug 1760)
+
+2004-12-19 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig), (RADEONPreInit):
+ - Make dualhead ram allocation cleaner and related messages
+ clearer
+
+2004-12-19 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c:
+ (ATIEnterVT):
+ * programs/Xserver/hw/xfree86/drivers/ati/atidri.c:
+ (ATIDRISetAgpMode), (ATIDRIAgpInit), (ATIDRIResume):
+ * programs/Xserver/hw/xfree86/drivers/ati/atidri.h:
+ - Add DRI resume support (Micha Feigin) bug 2063
+
+2004-12-19 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (R100SetupTexture), (R200SetupTexture):
+ - fix warnings (Ronny V. Vindenes)
+
+2004-12-18 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ - fix warning and potential error in radeon_driver.c
+
+2004-12-17 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ - Add VGAAccess option to r128 driver. Based on Benh's radeon patch.
+ r128 should now work on ppcs without usefbdev. To use this on ppc
+ make sure you set "usefbdev" to false. (bug 2089)
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineRestore):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONProbePLLParameters), (RADEONGetPanelInfoFromReg),
+ (RADEONGetLVDSInfo), (RADEONGetPanelInfo), (RADEONGetClockInfo),
+ (RADEONQueryConnectedMonitors), (RADEONUpdatePanelSize),
+ (RADEONDDCModes), (RADEONValidateDDCModes), (RADEONPreInitModes),
+ (RADEONPreInit), (RADEONSave), (RADEONRestore),
+ (RADEONInitDispBandwidth), (RADEONInitCrtc2Registers),
+ (RADEONInitPLLRegisters), (RADEONInitPLL2Registers), (RADEONInit),
+ (RADEONFreeScreen):
+ - Apply Benjamin Herrenschmidt's radeon patches (bug 2064)
+
+2004-12-16 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+
+ Move DMA robustness fix into radeon_dri.c::RADEONEnterServer()
+ as per suggestion by Michel Dänzer.
+
+ I could not trigger a lockup, even with r300_demo (possibly it
+ has code that flushes cache inside ?), so this must be good
+ enough..
+
+2004-12-16 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+
+ Add DMA robustness fix from Nicolai Haehnle.
+
+ TODO: move this fix into DRM driver or other parts of Xserver
+ when R300 support is more stable.
+
+ This fix affects only R300 and later variants and results in
+ small slowdown when using CP acceleration in comparison to
+ the previous version of the driver.
+
+ We are still a lot faster in CP mode than using MMIO register
+ access.
+
+2004-12-15 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/xdm/dm.h:
+ Remove unused define.
+ * programs/Xserver/Xext/xres.c:
+ Use snprintf.
+
+2004-12-15 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h:
+ Bug #2008: Fix gcc4 compile problem.
+
+2004-12-15 Thomas Winischhofer <thomas@winischhofer.net>
+
+ * Fix MISC extension's PassMessage(). Make it actually
+ work (MsgVal was trashed) and fix memory leaks.
+ * Increase MISC extension's minor number to 9 to indicate
+ that PassMessage() is actually usable
+
+
+2004-12-14 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/GL/mesa/shader/Imakefile.inc:
+ Revert last change, shaderobjects.c is in Mesa 6.3 only.
+
+2004-12-14 Adam Jackson <ajax@freedesktop.org>
+
+ * extras/Mesa/:
+ Bug #2003: Import Mesa 6.2.1.
+
+ * lib/GL/mesa/shader/Imakefile.inc:
+ * lib/GL/mesa/drivers/dri/r128/Imakefile.inc:
+ Imakefile fixes for Mesa 6.2.1. (Sergio Montiero Basto)
+
+2004-12-13 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * lib/X11/imInsClbk.c: (_XimUnRegisterIMInstantiateCallback):
+ Removed #ifdef'ed out code together with the comment explaining
+ why it was #ifdef'ed out.
+
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Fixed typo.
+
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.c: (xf86scanpci):
+ Added comment to a changed that's been committed with one of the
+ previous commits.
+
+2004-12-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/util/memleak/getretmips.c
+ Bugzilla #758 (https://bugs.freedesktop.org/show_bug.cgi?id=758)
+ attachment #375 (https://bugs.freedesktop.org/attachment.cgi?id=375):
+ Fix a buffer overrun which may happen when the size of the stack buffer
+ is exactly the same as the actual stack size.
+ Patch by Stephen Kennedy <Stephen.Kennedy@havok.com>.
+
+2004-12-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xext/saver.c
+ Bugzilla #1695 (https://bugs.freedesktop.org/show_bug.cgi?id=1695)
+ attachment #1230 (https://bugs.freedesktop.org/attachment.cgi?id=1230):
+ Fix crash in Xscreensaver code which allowed any authentificated X client
+ to crash the Xserver using |XScreenSaverUnsetAttributes()|.
+ Patch by ajax@nwnk.net
+
+2004-12-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c
+ Bugzilla #1688 (https://bugs.freedesktop.org/show_bug.cgi?id=1688)
+ attachment #1530 (https://bugs.freedesktop.org/attachment.cgi?id=1530):
+ Fix the current implementation to make it possible to slow down the
+ mouse pointer or use arbitrary fractions (without running into
+ rounding error issues). The change is using the same method of
+ preserving rounding errors that the exponential method is already
+ using.
+ Patch by Jan Brunner <Jan_B@gmx.ch>.
+
+2004-12-12 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/Xext/xf86vmode.c:
+ Lower default verbosity for Xvidmode log messages to stop the
+ extension from writing non critical info to the log, thus keeping
+ the disk busy.
+ https://bugs.freedesktop.org/show_bug.cgi?id=1552
+
+ * programs/Xserver/hw/xfree86/os-support/bus/460gxPCI.c
+ Add fix for bus scanning SEGV on ia64 with 460gx bus.
+ https://bugs.freedesktop.org/show_bug.cgi?id=1383
+
+2004-12-12 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/Imake.rules:
+ * config/cf/Imake.tmpl:
+ Bug #1054: When building dlloader modules, don't link them against
+ any other shared libs.
+
+2004-12-12 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+
+ Make DMA blitting code more robust.
+
+2004-12-12 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+
+ Enable DRM support permanently, allowing its use for any
+ CHIP_FAMILY > R300.
+ Fix bug in naming Mesa3d driver (it was defaulting to r200)
+
+2004-12-12 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONSetAgpMode):
+ - missing diff from agp 8x support
+
+2004-12-12 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h
+ Add R300 (and later) DRM support, protected by X_R300_DRM
+ option.
+
+ Note: at the moment this is for 2d support only, if enabled
+ running glxgears locks up my machine, but DMAForXv=yes
+ works fine.
+
+2004-12-12 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * doc/man/X11/XGetWProp.man:
+ Fix missing XChangeProperty() prototype missing in
+ synopsis section.
+
+2004-12-11 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitDRI):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ - add AGP 8x support (Hui Yu, Michel Daenzer) bug 1819
+
+2004-12-11 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_bios.c:
+ (RADEONGetConnectorInfoFromBIOS):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONQueryConnectedMonitors), (RADEONScreenInit),
+ (RADEONInitFPRegisters):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ - only mess with Dynamicclocks on mobility chips (Benh, me) bug 1912
+ - fix display detection (Hui Yu) bug 1559
+ - Add new option "BIOSHotkeys" to allow the bios to control
+ output switching (off by default) bug 2000
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage.man:
+ - update the savage man page to document the "CrtOnly" option
+
+2004-12-11 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * extras/Xpm/lib/Imakefile:
+ * extras/Xpm/lib/RdFToI.c:
+ * extras/Xpm/lib/WrFFrI.c:
+ * extras/Xpm/lib/s_popen.c:
+ * lib/Xpm/Imakefile:
+ Replace s_popen() by a more specific function that allows only
+ one command in the pipe. Remove extraneous tests on file names
+ that broke some applications. From Alex Reisen in Bugzilla #1920.
+
+2004-12-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_type.h:
+ Bugzilla #1985 <https://bugs.freedesktop.org/show_bug.cgi?id=1985>
+ sync to 12/08/04 version of Nvidia driver from Mark Vojkovich,
+ including these fixes since last sync:
+ Fix some DAC/Graphics memory contention issues on newer
+ NVIDIA chips (specifically, NV40).
+ More PCI IDs.
+ Also, I've had trouble getting some panels to work
+ automagically so I expose an FPTweak option to let the user
+ adjust a troublesome register.
+
+2004-12-09 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * config/cf/darwin.cf:
+ Fix building with Apple gcc newer than version 3.3.
+
+2004-12-09 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/miext/rootless/accel/rlAccel.c: (rlCloseScreen),
+ (RootlessAccelInit):
+ Fix crash with more than one screen reported by John Davidorff Pell.
+
+2004-12-08 Alexander Gottwald <ago at freedesktop dot org>
+
+ * lib/X11/ErrDes.c:
+ * doc/man/general/X.man:
+ Bugzilla #1980 (https://bugs.freedesktop.org/show_bug.cgi?id=1980)
+ Handle XERRORDB only on WIN32 platform
+
+2004-12-08 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/mi/miinitext.c
+ Bugzilla #1361 (https://bugs.freedesktop.org/show_bug.cgi?id=1361)
+ attachment #1287 (https://bugs.freedesktop.org/attachment.cgi?id=1287):
+ Avoid DRI initalisation when the Xfree86-DRI extension was turned
+ off.
+ Patch by Kristian Høgsberg <krh@bitplanet.net>.
+
+2004-12-08 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/mi/miinitext.c
+ Bugzilla #1361 (https://bugs.freedesktop.org/show_bug.cgi?id=1361)
+ attachment #938 (https://bugs.freedesktop.org/attachment.cgi?id=938):
+ Allow more extensions to be enabled/disabled.
+
+2004-12-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/extras/Xpm/lib/xpm.h
+ Bugzilla #830 (https://bugs.freedesktop.org/show_bug.cgi?id=830):
+ Fix libXpm header (xpm.h) to use the X11 function begin/end marker
+ macros (_XFUNCPROTOBEGIN, _XFUNCPROTOEND) instead of homegrown
+ (native) C++ code.
+ Patch by Kevin DeKorte <kdekorte@yahoo.com>.
+
+2004-12-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/include/extensions/dpms.h
+ Bugzilla #830 (https://bugs.freedesktop.org/show_bug.cgi?id=830):
+ Get DPMS header file (include/extensions/dpms.h) working with C++
+ applications.
+ Patch by Kevin DeKorte <kdekorte@yahoo.com> and Roland
+ Mainz <roland.mainz@nrubsig.org>.
+
+2004-12-06 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ xf86Config.c references USE_DEPRECATED_KEYBOARD_DRIVER so
+ define it if needed when building this file
+ * programs/Xserver/hw/xfree86/common/xf86config.c:
+ - bug fix: pointerMsg -> keyboardMsg in auto-configuration code.
+ - make the 'kbd' driver the default for autoconfiguration everywhere.
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c:
+ Previous fix broke hardware-based autorepeat. This fix
+ mimics the behaviour of the legacy driver by making a local
+ copy of the autoRepeat flag.
+
+2004-12-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/dmx/dmx.c: (DMXAddScreen), (DMXAddInput):
+ Fix overwrite in DMX library calls (Bug #1989, Mark McLoughlin).
+
+2004-12-06 Alexander Gottwald <ago at freedesktop dot org>
+
+ * include/Imakefile:
+ Link Xwindows.h for cygwin too.
+
+2004-12-06 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/fb/fbwindow.c: (fbCopyWindow):
+ Use the same method of finding the screen pixmap of COMPOSITE
+ extension is compiled in or not.
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ Removed stale make variable.
+ * programs/Xserver/hw/xfree86/xaa/xaaWrapper.c:
+ (xaaWrapperCreateWindow), (xaaWrapperWindowExposures),
+ (xaaWrapperPaintWindow), (xaaSetupWrapper):
+ Updated xaaWrapper.c: Under certain circumstances the
+ accel path was not used when possible.
+ Removed some debugging stuff and stale code that had been
+ commented out.
+ * programs/Xserver/mi/micmap.c: (miListInstalledColormaps):
+ Check if maps are really installed before attempting to list
+ them.
+
+2004-12-06 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ Apply Debian patch to re-POST via VBE if driver thinks it has no
+ video memory (a symptom of incompletely coming up from D3 power
+ state), which fixes some Dell laptops (closes: #1890).
+
+2004-12-06 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/Imakefile:
+ Removed linking of msvcr70.dll from Xming.
+
+2004-12-06 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONHostDataBlit), (RADEONHostDataBlitCopyPass):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitDRI):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONCopyData), (RADEON_420_422), (RADEONCopyRGB24Data),
+ (RADEONCopyMungedData), (RADEONPutImage):
+ When direct rendering is enabled, use hostdata blits to transfer data
+ from system memory to video RAM, which should reduce CPU usage
+ especially with larger videos. Can be disabled via Option "DMAForXv"
+ if there should be any stability issues, but it's been stable for me
+ during a week of testing. Based on a patch by Nikolaus Meine
+ <meine@tnt.uni-hannover.de>.
+ Probably fix endianness issues in some newer XVideo code, untested.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (R100SetupTexture), (R200SetupTexture):
+ Also use hostdata blits to transfer RENDER image data to video RAM to
+ avoid idling the accelerator engine. Increases RENDER performance
+ significantly for me.
+
+ These changes were only tested on an M9 in a Titanium PowerBook but
+ should work with all Radeons where direct rendering is supported.
+
+2004-12-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/Imakefile:
+ Bugzilla #1987 <https://bugs.freedesktop.org/show_bug.cgi?id=1987>
+ HAVE_SYSV_IPC should be defined when building libc_wrapper.c on
+ Solaris
+
+2004-12-04 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ Bugzilla #1800 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1800):
+ Fix Postscript DDX's 1bit StaticGray visual to report only 1bit
+ of significant bits in color specification (instead of 8bits).
+ Patch by Julien Lafon <julien.lafon@gmail.com>
+
+2004-12-04 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c:
+ Retry CCE idle commands until the (higher) timeout is reached, and
+ properly stop the engine if we totally fail -- gets rid of serious
+ performance issues and lockups with r128 DRI (closes: #1889).
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c:
+ Disable interrupt handling after the DRM handler has been removed,
+ preventing lockups (closes: #1886).
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_video.c:
+ Allow pitches with a granularity of 32, rather than 64, because some
+ clamshell iBooks have 800-byte pitches. Change Xv allocation
+ granularity to 8 bytes, rather than 16 bytes, also (closes: #1888).
+
+2004-12-04 Alexander Gottwald <ago at freedesktop dot org>
+
+ * doc/man/general/X.man:
+ Bugzilla #1980, https://bugs.freedesktop.org/show_bug.cgi?id=1980
+ Document XERRORDB in X.man
+
+2004-12-03 Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
+
+ - Converted numerous plain-text files to UTF-8 encoding
+
+2004-12-03 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c
+ - set default XkbModel to pc105 (like legacy keyboard driver did)
+ - fix autorepeat (Bugzilla #1651, Petter Urkedal).
+
+2004-12-03 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/xcursorgen/xcursorgen.c
+ (read_config_file, read_config_file, load_image, load_image):
+ Check malloc() return values and handle failures gracefully.
+
+2004-12-02 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/include/os.h:
+ * programs/Xserver/os/xprintf.c:
+ * programs/Xserver/os/Imakefile:
+ Bugzilla #1865, https://bugs.freedesktop.org/show_bug.cgi?id=1865
+ Added X(NF)printf and X(NF)vprintf functions which allocate the
+ buffer with X(NF)alloc
+
+ * lib/misc/snprintf.c:
+ Bugzilla #1865, https://bugs.freedesktop.org/show_bug.cgi?id=1865
+ extend snprintf to work on NULL.
+
+2004-12-02 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/lib/font/fontfile/Imakefile
+ Bugzilla #2002 (https://freedesktop.org/bugzilla/show_bug.cgi?id=2002):
+ Make location of the encodings/ files configurable in the build
+ system via adding a new |FontEncDir|-symbol to xc/config/cf/X11.tmpl
+ (default value is |$(LIBDIR)/fonts/encodings|).
+
+2004-12-02 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/miext/damage/damagestr.h
+ Bugzilla #1998 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1998):
+ Fix Xserver standalone build when RENDER extension includes
+ are not availabe.
+
+2004-12-02 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86.h:
+ * programs/Xserver/include/os.h:
+ Use __printf__ in gcc function attributes to avoid clash with libc
+ wrapper define, and remove the last bits of the old workaround.
+
+2004-12-02 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/os/WaitFor.c:
+ Remove some of the ifdef WIN32 checks from WaitForSomething
+
+2004-12-02 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/cf/mingw.cf:
+ Set HasFfs to NO
+
+ * programs/Xserver/Imakefile:
+ Fix link order problems with mingw. Add libdix.a after libmi.a.
+
+ * programs/Xserver/mi/Imakefile:
+ Pass -DHAS_FFS to compiler
+
+ * programs/Xserver/mi/mibitblt.c:
+ remove inline code for ffs(). It will link to dix/ffs.c instead
+ added declaration for ffs()
+
+2004-12-01 Daniel Stone <daniel@freedesktop.org>
+
+ * include/extensions/Xinerama.h:
+ Include <X11/Xlib.h>, since we use libX11 functions (closes: #1897).
+
+2004-12-01 Alexander Gottwald <ago at freedesktop dot org>
+
+ * lib/X11/ErrDes.c (XGetErrorDatabaseText):
+ Bugzilla #1980, https://bugs.freedesktop.org/show_bug.cgi?id=1980
+ Make location of XErrorDB configurable
+
+2004-12-01 Alexander Gottwald <ago at freedesktop dot org>
+
+ * lib/X11/XlibInt.c (_XopenFile):
+ Bugzilla #1864, http://bugs.freedesktop.org/show_bug.cgi?id=1864
+ Initialize pointer to NULL to avoid freeing random memory
+
+2004-11-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Xprt.html
+ Bugzilla #811 (https://freedesktop.org/bugzilla/show_bug.cgi?id=811):
+ Updating generated Xprt.html which was forgotten during the
+ previous work.
+
+2004-11-30 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/xorgsite.def:
+ Make Xorg the default server to install.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c: (ATIProbe):
+ Avoid PIO access on IA64. Some IA64 machine check if legacy ports
+ outside the VGA range are accessed. The ATi driver however does
+ this to probe for ISA Mach8/32/64.
+ Since no IA64 has ISA slots this restriction should not be
+ relevant to the user.
+
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.c: (xf86scanpci):
+ Avoid recursive calls of xf86scanpci(). This function normally
+ detects that it has been called before by checking if the PCI
+ structure is filled out. So far if this was not the case
+ (because PCI probing has failed for some reason) the function
+ is traversed again. With the chipset specific PCI bus probing
+ this can lead to an endless recursive loop as the post-probing
+ code calls xf86scanpci() from within this function.
+
+ * programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c:
+ (linuxPciOpenFile):
+ The OS specific PCI code for Linux worked only if bus 0
+ was populated as it checked for the presence of /proc/bus/pci/00.
+ Fixed to check for /proc/bus/pci/<bus_to_look_for> instead.
+
+2004-11-28 Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
+ * fonts/bdf/misc/18x18ko.bdf
+ * fonts/bdf/misc/18x18ja.bdf
+ * fonts/bdf/misc/12x13ja.bdf
+ * fonts/bdf/misc/9x18B.bdf
+ * fonts/bdf/misc/9x18.bdf
+ * fonts/bdf/misc/9x15B.bdf
+ * fonts/bdf/misc/9x15.bdf
+ * fonts/bdf/misc/8x13O.bdf
+ * fonts/bdf/misc/8x13B.bdf
+ * fonts/bdf/misc/8x13.bdf
+ * fonts/bdf/misc/7x14B.bdf
+ * fonts/bdf/misc/7x14.bdf
+ * fonts/bdf/misc/7x13O.bdf
+ * fonts/bdf/misc/7x13B.bdf
+ * fonts/bdf/misc/7x13.bdf
+ * fonts/bdf/misc/6x9.bdf
+ * fonts/bdf/misc/6x13O.bdf
+ * fonts/bdf/misc/6x13B.bdf
+ * fonts/bdf/misc/6x13.bdf
+ * fonts/bdf/misc/6x12.bdf
+ * fonts/bdf/misc/6x10.bdf
+ * fonts/bdf/misc/5x8.bdf
+ * fonts/bdf/misc/5x7.bdf
+ * fonts/bdf/misc/4x6.bdf
+ * fonts/bdf/misc/10x20.bdf
+ Resynchronized with latest release of ucs-font package at
+ http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html
+ * fonts/bdf/misc/gb24st.bdf
+ * fonts/bdf/misc/gb16st.bdf
+ * fonts/bdf/misc/gb16fs.bdf
+ Fixed Bug #1805
+ * fonts/util/8859-7.TXT
+ Updated to ISO 8859-7:2003 (with euro sign)
+ * fonts/util/8859-14.TXT
+ * fonts/util/8859-15.TXT
+ * fonts/util/8859-16.TXT
+ * fonts/util/ucs2any.pl
+ * fonts/util/ucs2any.c
+ * fonts/util/bdftruncate.pl
+ Removed obsolete email address from comments
+
+2004-11-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+ * xc/programs/Xserver/hw/xfree86/driver/ati/radeon.man
+ * xc/programs/Xserver/hw/xfree86/driver/voodoo/voodo.man
+ * xc/programs/Xserver/hw/xfree86/driver/wsfb/wsfb.man
+ XF86Config -> __xconfigfile__
+
+2004-11-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/doc/man/general/Imakefile
+ * xc/doc/man/general/Xprint.html
+ * xc/doc/man/general/Xprint.man
+ * xc/doc/man/general/Xprint.sgml
+ * xc/programs/Xserver/Xprint/Imakefile
+ * xc/programs/Xserver/Xprint/Xprint.html
+ * xc/programs/Xserver/Xprint/Xprint.man
+ * xc/programs/Xserver/Xprint/Xprint.sgml
+ Bugzilla #811 (https://freedesktop.org/bugzilla/show_bug.cgi?id=811):
+ Fixing "make install.man" build bustage caused by previous checkin
+ via moving the Xprint(7) manual page it's correct location
+ (=xc/doc/man/general/)
+
+2004-11-25 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * extras/Xpm/lib/s_popen.c:
+ Add file missed in previous commit..
+
+2004-11-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Imakefile
+ * xc/programs/Xserver/Xprint/Xprt.html
+ * xc/programs/Xserver/Xprint/Xprt.man
+ * xc/programs/Xserver/Xprint/Xprt.sgml
+ Bugzilla #811 (https://freedesktop.org/bugzilla/show_bug.cgi?id=811):
+ Add missing manual page for "Xprt" (DocBook master file (Xprt.sgml)
+ and the generated files (Xprt.html, Xprt.man).
+
+2004-11-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/xprint_host.def
+ * xc/config/cf/xprint_site.def
+ Bugzilla #1921 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1921):
+ Rename "xc/config/cf/xprint_site.def" to "xc/config/cf/xprint_host.def"
+ to clarify it's purpose.
+
+2004-11-25 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * extras/Xpm/lib/Attrib.c:
+ * extras/Xpm/lib/CrBufFrI.c:
+ * extras/Xpm/lib/CrDatFrI.c:
+ * extras/Xpm/lib/Imakefile:
+ * extras/Xpm/lib/RdFToBuf.c:
+ * extras/Xpm/lib/RdFToI.c:
+ * extras/Xpm/lib/WrFFrBuf.c:
+ * extras/Xpm/lib/WrFFrI.c:
+ * extras/Xpm/lib/XpmI.h:
+ * extras/Xpm/lib/create.c:
+ * extras/Xpm/lib/data.c:
+ * extras/Xpm/lib/hashtab.c:
+ * extras/Xpm/lib/misc.c:
+ * extras/Xpm/lib/parse.c:
+ * extras/Xpm/lib/scan.c: (AGetImagePixels):
+ * lib/Xpm/Imakefile:
+ Fixes for CAN-2004-0914 (Thomas Biege).
+
+2004-11-25 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/os/utils.c:
+ Bugzilla #1914: fix size limit for -fp argument
+
+2004-11-24 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/Xext/xvmc.c:
+ Add <sys/types.h> include to unbreak build on FreeBSD.
+
+2004-11-23 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Beta.c:
+ Remove this file and all references to the binary expiry code.
+
+ * include/extensions/Imakefile (DAMAGEHEADERS):
+ Remove old obsolete include/extensions/damage.h.
+
+ * programs/xkbcomp/symbols/macintosh/us:
+ Include srvrv_ctrl(xfree86) in macintosh US XKB symbol file so VT
+ switching works again on mac (#1872).
+
+ * programs/Xserver/hw/xfree86/common/xf86.h:
+ * programs/Xserver/include/os.h:
+ Remove out of place #define's of printf to xf86printf. This
+ definition should only be in xfree86/os-support/xf86_libc.h
+
+2004-11-23 Daniel Stone <daniel@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/radeon/radeon_driver.c:
+ Use fp_horz_stretch for horizontal stretch factor derivation, not
+ fp_vert_stretch (closes: #1881).
+
+2004-11-23 Luc Verhaegen <libv@skynet.be>
+
+ Sync with unichrome X r27.
+ Fixes: CLE266 rev.18 hang in HQV Idle. XvMC removing DRI MMIO. AGP
+ ringbuffer crashing at VT switch. Bad handling of unsupported mode.
+ YV12 Chroma. Flickering overlay when covered.
+ Updates: ids. XvMC to new drm version.
+ Improves: XvMC startup time and handling of multiple cards. VGA/output
+ debugging. VT162x DAC detection. Move to single I2CDev for VT162x.
+ ViaYUVFillBlack.
+ Removes: pViaModeTable structure and the acquiring of modetables from
+ VGA BIOS. Unused/broken VBE OEM calls.
+ Adds: Option to control VT1622 flicker filter.
+ (Terry Barnaby, Thomas Hellström, Ivor Hewitt, Pieter Peers, Luc
+ Verhaegen)
+
+ * programs/Xserver/hw/xfree86/drivers/via/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/via/via.man:
+ * programs/Xserver/hw/xfree86/drivers/via/via_bandwidth.c:
+ (ViaSetCLE266APrimaryFIFO), (ViaSetPrimaryExpireNumber),
+ (ViaSetPrimaryFetchCount), (ViaSetPrimaryFIFO),
+ (ViaSetSecondaryFetchCount), (ViaSetSecondaryFIFO):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.c:
+ (ViaDumpVGAROM), (ViaVBEGetActiveDevice),
+ (ViaVBEGetDisplayDeviceInfo), (ViaVBEPrintBIOSDate),
+ (ViaVBEPrintBIOSVersion):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ (VIAGetRec), (VIAFreeRec), (VIAPreInit), (VIAEnterVT),
+ (VIALeaveVT), (VIASave), (VIARestore), (VIAEnableMMIO),
+ (VIADisableMMIO), (VIAScreenInit), (VIAInternalScreenInit),
+ (VIAValidMode), (VIAWriteMode), (VIACloseScreen), (VIAFreeScreen),
+ (VIAAdjustFrame), (VIASwitchMode), (VIADPMS), (VIADeviceSelection):
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_i2c.c:
+ (VIAI2C1PutBits), (VIAI2C2PutBits), (ViaGpioI2c_Release),
+ (ViaGpioI2c_SCLWrite), (ViaGpioI2c_SCLRead), (ViaGpioI2c_SDAWrite),
+ (ViaGpioI2c_SDARead), (VIAI2CInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_lib.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (ViaPrintTVRegs), (VIATVDetect), (VIAVT162xDACDetect),
+ (VIASensorDVI), (VIAPostDVI), (VIAGetDeviceDetect),
+ (VIAGetPanelSizeFromDDCv1), (VIAGetPanelSizeFromDDCv2),
+ (ViaGetModeIndex), (ViaPanelGetIndex), (ViaTVGetIndex),
+ (VIAFindModeUseBIOSTable), (VIASetPrimaryClock),
+ (VIASetSecondaryClock), (VIASetLCDMode), (VIAPreSetTV2Mode),
+ (VIAPreSetVT1623ModeGpioI2c), (VIAPostSetTV2Mode),
+ (VIAPreSetTV3Mode), (VIAPostSetTV3Mode), (ViaTVModePreset),
+ (ViaTVClose), (ViaTVModePostSet), (ViaSetPrimaryOffset),
+ (ViaSetBlankingEndOverflow), (VIASetModeUseBIOSTable),
+ (ViaSetSecondaryOffset), (VIASetModeForMHS), (ViaLCDPowerSequence),
+ (VIAEnableLCD), (VIADisableLCD), (VIALoadPalette):
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (ViaYUVFillBlack), (VIAVidCreateSurface), (Upd_Video),
+ (VIAVidUpdateOverlay):
+ * programs/Xserver/hw/xfree86/drivers/via/via_tuner.c:
+ (ViaAudioSelect), (ViaTunerProbe):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vbe.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.c:
+ (ViaVgahwMask), (ViaCrtcMask), (ViaSeqMask), (ViaVgahwPrint):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (viaSetupImageVideoG), (viaStopVideoG), (viaSetPortAttributeG),
+ (viaPutImageG), (viaQueryImageAttributesG), (viaPutVideo):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ (ViaInitXVMC), (ViaXvMCCreateContext):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvpriv.h:
+
+2004-11-23 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/XvMC.c: (XvMCGetDRInfo):
+ * programs/Xserver/Xext/Imakefile:
+ * programs/Xserver/Xext/xvmc.c: (ProcXvMCGetDRInfo):
+ Bugzilla #1883 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1883):
+ Fix insufficient SHM detection in XvMC local test.
+ Removed reference to getpagesize() which caused linking problems on s390.
+ Reported by Stefan Dirsch <sndirsh@suse.de>
+
+2004-11-23 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/miext/damage/damage.c
+ Bugzilla #1204 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1204):
+ Fix X11 test suite (caused by DAMAGE layer) failure with Xvfb when
+ rendering text using |XDrawText*()| (XDrawText() tests 1, 3, 4, 27, 28,
+ 29, 30, 34, 37, 39, 41, 43 and XDrawText16() tests 1, 3, 9, 10, 11, 12,
+ 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 34,
+ 37, 39, 41, 43).
+ Patch by Hong Bo Peng <penghb@cn.ibm.com> and Stefan Dirsch
+ <sndirsch@suse.de>.
+
+2004-11-23 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c:
+ (SavageShowCursor), (SavageHideCursor), (SavageSetCursorPosition),
+ (SavageSetCursorColors):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ - fix and enable HW Cursor on crtc2
+ - enable independant CLUT access
+
+2004-11-22 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (GetTileAperturePitch2000), (SavageSetGBD), (SavageSetGBD_2000):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitStreams2000):
+ - fix tiled framebuffer on Savage2000
+
+2004-11-22 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/mi/mibitblt.c:
+ Windows does not have ffs() implementation. added one
+
+ * programs/Xserver/miext/rootless/Imakefile:
+ * programs/Xserver/miext/rootless/rootlessConfig.h:
+ Enable RootlessSafeAlpha and RootlessAcceleration for the Windows
+ port too
+
+2004-11-22 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/xkb/ddxLoad.c:
+ Use GetTempPath for finding a place where to store temporary files on
+ Windows
+
+2004-11-22 Alexander Gottwald <ago at freedesktop dot org>
+
+ * config/cf/mingw.cf:
+ Enable building of multiwindow and glx on win32
+
+2004-11-22 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/os/WaitFor.c:
+ * programs/Xserver/os/connection.c:
+ * programs/Xserver/os/io.c:
+ * programs/Xserver/os/lbxio.c:
+ * programs/Xserver/os/osdep.h:
+ Use a simple hashtable as ConnectionTranslation instead of a plain
+ array on Windows because socket fds are not sequential and do not
+ start at 0
+
+2004-11-15 Alexander Gottwald <ago at freedesktop dot org>
+
+ * programs/Xserver/xkb/ddxLoad.c:
+ Use CreateProcess instead of system() to spawn xkbcomp on windows.
+ system() can not handle spaces in the path component. Quoted all
+ filenames on the commandline.
+
+2004-11-15 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/GL/glx/glxcmds.c:
+ Bug #1672: Prevent libGL segfault if server's GLX version is > 1.2.
+
+2004-11-15 Alexander Gottwald <ago at freedesktop dot org>
+
+ * Imakefile:
+ * config/cf/Imake.cf:
+ * config/cf/Imakefile:
+ * config/cf/cygwin.cf:
+ * config/cf/mingw.cf:
+ * config/cf/mingw.rules:
+ * config/cf/mingw.tmpl:
+ * config/imake/imake.c: (define_os_defaults):
+ * config/imake/imakemdep.h:
+ * config/util/Imakefile:
+ * include/Imakefile:
+ * include/Xos.h:
+ * include/Xpoll.h:
+ * include/Xthreads.h:
+ * include/Xw32defs.h:
+ * include/Xwinsock.h:
+ * include/Xwindows.h:
+ * lib/GL/glx/glxclient.h:
+ * lib/X11/ConnDis.c:
+ * lib/X11/OpenDis.c:
+ * lib/X11/XlibInt.c:
+ * lib/X11/imTrans.c:
+ * lib/X11/lcFile.c: (parse_line1), (_XlcParsePath), (xlocaledir):
+ * lib/Xau/AuFileName.c: (XauFileName):
+ * lib/Xau/AuLock.c:
+ * lib/Xdmcp/GenKey.c:
+ * lib/font/fc/fsio.c:
+ * lib/font/fontfile/bufio.c: (BufFileOpenRead), (BufFileOpenWrite):
+ * lib/font/fontfile/dirfile.c:
+ * lib/font/fontfile/fontdir.c: (FontFileMakeDir):
+ * lib/font/fontfile/fontfile.c: (FontFileNameCheck):
+ * lib/xtrans/Xtrans.c: (SetOption):
+ * lib/xtrans/Xtransdnet.c: (DNETBytesReadable), (DNETRead),
+ (DNETWrite), (DNETDisconnect), (DNETClose):
+ * lib/xtrans/Xtranssock.c: (SocketINETGetAddr),
+ (SocketINETGetPeerAddr), (SocketOpen):
+ * lib/xtrans/Xtransutil.c: (WSAStartup):
+ * programs/Xserver/GL/Imakefile:
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/os/WaitFor.c:
+ * programs/Xserver/os/access.c: (DefineSelf), (ConvertAddr):
+ * programs/Xserver/os/connection.c:
+ * programs/Xserver/os/io.c:
+ * programs/Xserver/os/log.c: (LogInit), (LogVWrite):
+ * programs/Xserver/os/osdep.h:
+ * programs/Xserver/os/utils.c:
+ * programs/Xserver/os/xdmcp.c: (get_addr_by_name):
+ * programs/Xserver/render/picture.h:
+ * programs/Xserver/xkb/ddxLoad.c: (Win32TempDir),
+ (OutputDirectory):
+ * programs/xkbcomp/listing.c: (AddDirectory), (AddMatchingFiles),
+ (GenerateListing):
+ * programs/xkbcomp/xkbcomp.c:
+ Bufzilla #1802, http://freedesktop.org/bugzilla/show_bug.cgi?id=1802
+ Added mingw (Win32) port
+
+2004-11-15 Alexander Gottwald <ago at freedesktop dot org>
+
+ * lib/X11/XlibInt.c (_XFopenFile):
+ Bugzilla #1864, http://freedesktop.org/bugzilla/show_bug.cgi?id=1864
+ Initialize pointer to NULL to avoid freeing random memory
+
+2004-11-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Fix typos in output file. (Bugzilla #1849, reported by Yi Ren-Chen)
+
+2004-11-13 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_memcpy.c:
+ (fastrdtsc):
+ Bugzilla #1838, http://freedesktop.org/bugzilla/show_bug.cgi?id=1838
+ fixed an asm cpuid call that clobbered the PIC register.
+
+2004-11-13 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * include/extensions/XvMC.h:
+ * include/extensions/XvMClib.h:
+ * include/extensions/XvMCproto.h:
+ * lib/XvMC/Imakefile:
+ * lib/XvMC/XvMC.c: (XvMCGetDRInfo):
+ * lib/XvMC/wrapper/XvMCWrapper.c: (dlopenversion), (preInitW),
+ (initW):
+ * programs/Xserver/Xext/xvmc.c: (ProcXvMCGetDRInfo),
+ (xvmcNumRequest), (XvMCScreenInit), (xf86XvMCRegisterDRInfo):
+ * programs/Xserver/Xext/xvmcext.h:
+ Added support for automatic loading of the correct hardware
+ XvMC driver. This involves a protocol extension of the
+ XvMC protocol. The XvMC revision number was bumped.
+
+2004-11-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/lib/GL/mesa/Imakefile
+ * xc/lib/GL/mesa/math/Imakefile
+ * xc/lib/GL/mesa/shader/Imakefile
+ * xc/lib/GL/mesa/sparc/Imakefile
+ * xc/lib/GL/mesa/swrast/Imakefile
+ * xc/lib/GL/mesa/swrast_setup/Imakefile
+ * xc/lib/GL/mesa/tnl/Imakefile
+ * xc/lib/GL/mesa/tnl_dd/Imakefile
+ Bugzilla #1843 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1843):
+ Fix build failure in the linker stage of libOSMesa.so.4.0 which
+ happens more or less every couple of months with the message
+ "ld: fatal: too many symbols require `small' PIC references:
+ have 2112, maximum 2048 -- recompile some modules -K PIC.".
+ The fix is to add |#define LargePICTable YES| to _ALL_ relevant
+ Imakefiles (previously this was done only on "on-demand" basis).
+
+2004-11-11 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/OpenBSDLib.tmpl:
+ update shared lib revisions on OpenBSD (Bug #1828).
+ * config/cf/xorgsite.def:
+ * config/cf/xprint_site.def:
+ update references to xf86site.def in comments (Bug #1827).
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_KbdMap.c:
+ (KbdGetMapping):
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c: (KbdOn),
+ (KbdOff), (WSReadInput), (OpenKeyboard), (xf86OSKbdPreInit):
+ fix kbd driver for wskbd protocol and pure wscons console driver
+ (Bug #1825).
+ * programs/Xserver/hw/xfree86/xf86cfg/interface.c: (main):
+ don't add '-4' to generated default file name (bug #1826).
+ * programs/xdm/resource.c:
+ typo in resource name (XFree86 bug #1300, X.org bug #1825)
+
+2004-11-10 Kristian Høgsberg <krh@redhat.com>
+
+ * lib/X11/XKBBind.c (XkbRefreshKeyboardMapping): Buzilla #1459,
+ fix bzero() size argument so it doesn't trash the stack.
+
+ * programs/xmodmap/pf.c (process_line): Fix off-by-one allocation
+ error (#1818).
+
+2004-11-09 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/lib/font/util/Imakefile
+ * xc/lib/font/util/utilbitmap.c
+ Bugzilla #1804 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1804):
+ Fix build failure (caused by missing symbols such as |TwoByteSwap|)
+ when linking the FreeType module and the FreeType library both
+ statically info the Xserver.
+
+2004-11-09 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv.man:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_cursor.c:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dma.h:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_proto.h:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_video.c:
+ * xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c:
+
+ (Bugzilla #1777) Import Mark Vojkovich's changes to NV driver
+ since last sync with XFree86, including:
+ Support for new NVIDIA chips.
+ Egbert has a laptop that needs some DPMS ordering reversed.
+ New chip support and workaround for Toshiba M30 laptop issue.
+ PCI-Xpress chip support.
+ DPMS support for DVI.
+ Cursor changes for NV11 so that alpha blended cursors will work
+ in conjunction with dithering (laptop panels). It previously
+ did not.
+ HW support for alpha blended stretch blits on NV5 and higher,
+ though nothing is using them at this point.
+ Add support for VBlank syncing the Xv Blit adaptor on hardware
+ that supports it (NV11 and higher).
+ Make console restoration a little more robust. We were making
+ an assumption that failed on a newer laptop.
+ Workaround for some NV31 DVI artifacts.
+
+ Also add nVidia license statement to nv man page to comply with
+ requirement that it appear in "user documentation"
+
+2004-11-09 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Imakefile
+ Bugzilla #1811 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1811):
+ Fix build failure when linking Xservers if
+ |#define BuildComposite NO| was used.
+
+2004-11-09 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/xprint_site.def
+ Bugzilla #1810 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1810):
+ Fix Xprint standalone config.
+
+2004-11-09 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/drivers/wsfb:
+ Bugs #1807 & #1808: make wsfb driver work on NetBSD (Nathan J.
+ Williams).
+
+2004-11-09 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/xf86cfg/loader.h:
+ Bug #557: Don't use "bool" as a variable name in xf86cfg, to avoid
+ compiler bugs. (Donnie Berkholz)
+
+2004-11-09 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/elfloader.c:
+ Bug #1765: Add support for R_ALPHA_SREL32 relocations in elfloader.
+ Originally Debian patch 202_alpha_elfloader_support_R_ALPHA_SREL32.diff.
+ (Falk Hueffner)
+
+2004-11-08 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/nls/compose.dir
+ * xc/nls/locale.alias
+ * xc/nls/locale.dir
+ * xc/programs/Xserver/XpConfig/Imakefile
+ Bugzilla #1544 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1544):
+ Adding support for the si_LK (si, sinhala, si_LK, si_LK.UTF-8)
+ locale.
+ Patch by Anuradha Ratnaweera <gnu.slash.linux@gmail.com>.
+
+2004-11-08 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xpr/x2jet.c
+ * xc/programs/xpr/xpr.c
+ Bugzilla #1795 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1795):
+ Fix build bustage caused by bug 1779, patch by Bernhard
+ Rosenkraenzer <bero@arklinux.org>.
+
+2004-11-08 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xpr/x2jet.c
+ * xc/programs/xpr/x2pmp.c
+ * xc/programs/xpr/xpr.c
+ * xc/programs/xpr/xpr.h
+ Bugzilla #1779 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1779):
+ Fix various warnings, build problems in "xpr" and convert the
+ whole source from K&R style to ANSI-C.
+
+2004-11-08 Fabio M. Di Nitto <fabbione@fabbione.net>
+
+ * programs/Xserver/hw/darwin/Imakefile
+ * programs/Xserver/hw/darwin/quartz/Imakefile
+ * programs/Xserver/hw/xfree86/common/Imakefile
+ Rename XFREE86_CUSTOM_VERSION to XORG_CUSTOM_VERSION, since
+ the former is not used anymore.
+ Also ensure tohandle properly XFree86CustomVersion to not break
+ actual build systems and provide smooth transition.
+ If both XorgCustomVersion and XFree86CustomVersion are defined,
+ the former is always preferred.
+ * config/cf/linux.cf
+ Rename XFree86CustomVersion to XorgCustomVersion in the Debian
+ Maintainer section.
+
+2004-11-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/sun.cf
+ * xc/config/cf/sv4Lib.rules
+ Bugzilla #1748: Fix the problem that libGLU was not being
+ build on Solaris. This adds the missing
+ |SharedDepCplusplusLibraryTarget| Imake rule which caused
+ C++ libraries to be linked with plain "ld" instead of $(CXX),
+ resulting in missing symbols when linking the library into
+ applications which do not link to libCrun (Sun Workshop/Forte
+ C++ runtime library) elsewhere, too.
+
+2004-11-07 Fabio M. Di Nitto <fabbione@fabbione.net>
+
+ * programs/Xserver/hw/dmx/config/Imakefile
+ Add missing InstallProgram targets for the Xdmx configuration tools.
+
+2004-11-05 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/fb/fb.h:
+ Use ROOTLESS instead of platform specific defines.
+
+2004-11-04 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/fonts/encodings/Imakefile
+ * xc/fonts/encodings/ascii-0.enc
+ * xc/programs/mkfontscale/mkfontscale.c
+ Bugzilla #1703: Adding ascii-0 font encoding which helps in
+ cases where a font has all ASCII chars populated but not enougth
+ glyphs to match the requirements for ISO8859-1 (and to add
+ backwards compatibility to ttmkfdir).
+
+2004-11-04 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/nls/compose.dir
+ * xc/nls/locale.alias
+ * xc/nls/locale.dir
+ * xc/programs/Xserver/XpConfig/Imakefile
+ Bugzilla #860: Adding some of the major indic locales
+ (bn_IN.UTF-8, bn_IN.utf8, gu_IN.UTF-8, gu_IN.utf8, pa_IN.UTF-8,
+ pa_IN.utf8) to X.
+ Patch by Leon Ho <llch@redhat.com>.
+
+2004-11-03 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/doc/man/general/Standards.cpp
+ * xc/doc/man/general/X.cpp
+ * xc/doc/man/general/XProjectTeam.cpp
+ * xc/doc/man/general/security.cpp
+ * xc/extras/accessx/Imakefile
+ * xc/extras/accessx/accessx.c
+ * xc/extras/accessx/accessx.uil.cpp
+ * xc/extras/accessx/accessx.xbm
+ * xc/extras/accessx/accessxstrings.uil
+ * xc/include/extensions/panoramiX.h
+ * xc/lib/X11/xlibi18n/im/ximp40/Imakefile
+ * xc/lib/X11/xlibi18n/im/ximp40/XIMProto.h
+ * xc/lib/X11/xlibi18n/im/ximp40/Ximp40.mapfile
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpCallbk.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpConv.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpExten.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpIC.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpICG.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpICS.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpIM.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpIm.h
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpLkup.c
+ * xc/lib/X11/xlibi18n/im/ximp40/XimpRm.c
+ * xc/lib/X11/xlibi18n/lc/UTF-8/Imakefile
+ * xc/lib/X11/xlibi18n/lc/UTF-8/Xlc.mapfile
+ * xc/lib/X11/xlibi18n/lc/UTF-8/XlcDBUnicode.h
+ * xc/lib/X11/xlibi18n/lc/UTF-8/XlcPublicUnicode.h
+ * xc/lib/X11/xlibi18n/lc/UTF-8/lcDBUnicode.c
+ * xc/lib/X11/xlibi18n/lc/UTF-8/lcPublicUnicode.c
+ * xc/lib/X11/xlibi18n/lc/UTF-8/lcUNICODE.c
+ * xc/lib/X11/xlibi18n/lc/big5/Imakefile
+ * xc/lib/X11/xlibi18n/lc/big5/Xlc.mapfile
+ * xc/lib/X11/xlibi18n/lc/big5/lcbig5.c
+ * xc/lib/X11/xlibi18n/lc/gbk/Imakefile
+ * xc/lib/X11/xlibi18n/lc/gbk/Xlc.mapfile
+ * xc/lib/X11/xlibi18n/lc/gbk/lcgbk.c
+ * xc/lib/X11/XlcUTF.h
+ * xc/lib/X11/Xvarargs.h
+ * xc/lib/X11/aixlcLoad.c
+ * xc/lib/X11/lcUTF.c
+ * xc/lib/Xext/XPanoramiX.c
+ * xc/lib/xtrans/Xtransam.c
+ * xc/nls/Compose/fcd8859-15
+ * xc/nls/XI18N_OBJS/zh
+ * xc/nls/XLC_LOCALE/conv_tables/BIG5-1.GLGR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/GB2312-0.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/GBK-0.GLGR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-10.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-15.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-2.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-3.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-4.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-5.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-6.GLGR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-6.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-7.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-8.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/ISO8859-9.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/Imakefile
+ * xc/nls/XLC_LOCALE/conv_tables/JISX0201-0.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/JISX0208-0.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/JISX0212-0.GR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/KSC-JOHAP.GLGR.txt
+ * xc/nls/XLC_LOCALE/conv_tables/SUNUDCJA.GL.txt
+ * xc/nls/XLC_LOCALE/conv_tables/TIS620.2533-0.GR.txt
+ * xc/nls/XLC_LOCALE/util/xuctblgen/Imakefile
+ * xc/nls/XLC_LOCALE/util/xuctblgen/bool.h
+ * xc/nls/XLC_LOCALE/util/xuctblgen/conv_def.h
+ * xc/nls/XLC_LOCALE/util/xuctblgen/conv_info.c
+ * xc/nls/XLC_LOCALE/util/xuctblgen/conv_info.h
+ * xc/nls/XLC_LOCALE/util/xuctblgen/cstream.c
+ * xc/nls/XLC_LOCALE/util/xuctblgen/cstream.h
+ * xc/nls/XLC_LOCALE/util/xuctblgen/lookup_tbl.c
+ * xc/nls/XLC_LOCALE/util/xuctblgen/lookup_tbl.h
+ * xc/nls/XLC_LOCALE/util/xuctblgen/range_tbl.c
+ * xc/nls/XLC_LOCALE/util/xuctblgen/range_tbl.h
+ * xc/nls/XLC_LOCALE/util/xuctblgen/tblgen.c
+ * xc/nls/XLC_LOCALE/util/xuctblgen/time.c
+ * xc/nls/XLC_LOCALE/util/xuctblgen/time.h
+ * xc/nls/XLC_LOCALE/util/Imakefile
+ * xc/nls/XLC_LOCALE/en_US.utf
+ * xc/nls/XLC_LOCALE/fcd8859-15
+ * xc/nls/XLC_LOCALE/gb2312
+ * xc/nls/XLC_LOCALE/jis0201
+ * xc/nls/XLC_LOCALE/jis0208
+ * xc/nls/XLC_LOCALE/ksc5601
+ * xc/nls/XLC_LOCALE/tab8859_1
+ * xc/nls/XLC_LOCALE/tab8859_10
+ * xc/nls/XLC_LOCALE/tab8859_15
+ * xc/nls/XLC_LOCALE/tab8859_2
+ * xc/nls/XLC_LOCALE/tab8859_3
+ * xc/nls/XLC_LOCALE/tab8859_4
+ * xc/nls/XLC_LOCALE/tab8859_5
+ * xc/nls/XLC_LOCALE/tab8859_6
+ * xc/nls/XLC_LOCALE/tab8859_7
+ * xc/nls/XLC_LOCALE/tab8859_8
+ * xc/nls/XLC_LOCALE/tab8859_9
+ * xc/nls/XLC_LOCALE/tabkoi8_r
+ * xc/nls/XLC_LOCALE/th_TH.TACTIS
+ * xc/nls/XLC_LOCALE/zh
+ * xc/programs/Xserver/Xprint/Quarks.c
+ * xc/programs/Xserver/Xprint/Xlcint.h
+ * xc/programs/Xserver/Xprint/Xresource.h
+ * xc/programs/Xserver/Xprint/Xrm.c
+ * xc/programs/Xserver/Xprint/XrmI.h
+ * xc/programs/Xserver/cfb/cfb8cppl.c
+ * xc/programs/Xserver/hw/dec/ws/Imakefile
+ * xc/programs/Xserver/hw/dec/ws/Xdec.man
+ * xc/programs/Xserver/hw/dec/ws/acc_2da.c
+ * xc/programs/Xserver/hw/dec/ws/acc_3d.c
+ * xc/programs/Xserver/hw/dec/ws/acc_none.c
+ * xc/programs/Xserver/hw/dec/ws/cfbinit.c
+ * xc/programs/Xserver/hw/dec/ws/ext_device.c
+ * xc/programs/Xserver/hw/dec/ws/init.c
+ * xc/programs/Xserver/hw/dec/ws/keynames.h
+ * xc/programs/Xserver/hw/dec/ws/mdepthinit.c
+ * xc/programs/Xserver/hw/dec/ws/ws.h
+ * xc/programs/Xserver/hw/dec/ws/ws_color.c
+ * xc/programs/Xserver/hw/dec/ws/ws_io.c
+ * xc/programs/Xserver/hw/hp/include/XHPproto.h
+ * xc/programs/Xserver/hw/hp/include/hppriv.h
+ * xc/programs/Xserver/hw/hp/input/X11/XHPlib.h
+ * xc/programs/Xserver/hw/hp/input/drivers/Imakefile
+ * xc/programs/Xserver/hw/hp/input/drivers/X0screens
+ * xc/programs/Xserver/hw/hp/input/drivers/XHPKeymaps
+ * xc/programs/Xserver/hw/hp/input/drivers/hil_driver.c
+ * xc/programs/Xserver/hw/hp/input/drivers/hp7lc2k.c
+ * xc/programs/Xserver/hw/hp/input/drivers/hp7lc2m.c
+ * xc/programs/Xserver/hw/hp/input/drivers/ps2io.h
+ * xc/programs/Xserver/hw/hp/input/Imakefile
+ * xc/programs/Xserver/hw/hp/input/cr16.s
+ * xc/programs/Xserver/hw/hp/input/get_tv.c
+ * xc/programs/Xserver/hw/hp/input/getkeysym.c
+ * xc/programs/Xserver/hw/hp/input/hildef.h
+ * xc/programs/Xserver/hw/hp/input/hpKeyMap.c
+ * xc/programs/Xserver/hw/hp/input/hpext.h
+ * xc/programs/Xserver/hw/hp/input/hpkeys.h
+ * xc/programs/Xserver/hw/hp/input/screentab.h
+ * xc/programs/Xserver/hw/hp/input/x_hil.c
+ * xc/programs/Xserver/hw/hp/input/x_hil.h
+ * xc/programs/Xserver/hw/hp/input/x_hilinit.c
+ * xc/programs/Xserver/hw/hp/input/x_hilinit.h
+ * xc/programs/Xserver/hw/hp/input/x_serialdrv.h
+ * xc/programs/Xserver/hw/hp/input/xtest1imp.c
+ * xc/programs/Xserver/hw/hp/ngle/Imakefile
+ * xc/programs/Xserver/hw/hp/ngle/dregs.h
+ * xc/programs/Xserver/hw/hp/ngle/hyperScrn.c
+ * xc/programs/Xserver/hw/hp/ngle/ngle.h
+ * xc/programs/Xserver/hw/hp/ngle/ngleblt.c
+ * xc/programs/Xserver/hw/hp/ngle/nglecolormap.c
+ * xc/programs/Xserver/hw/hp/ngle/nglecolormap.h
+ * xc/programs/Xserver/hw/hp/ngle/nglecopy.c
+ * xc/programs/Xserver/hw/hp/ngle/nglecopy.h
+ * xc/programs/Xserver/hw/hp/ngle/nglecursor.c
+ * xc/programs/Xserver/hw/hp/ngle/nglecursor.h
+ * xc/programs/Xserver/hw/hp/ngle/ngledevrom.h
+ * xc/programs/Xserver/hw/hp/ngle/ngledoblt.o.8.07
+ * xc/programs/Xserver/hw/hp/ngle/ngleextern.h
+ * xc/programs/Xserver/hw/hp/ngle/nglehdw.h
+ * xc/programs/Xserver/hw/hp/ngle/nglenoop.c
+ * xc/programs/Xserver/hw/hp/ngle/nglenoop.h
+ * xc/programs/Xserver/hw/hp/ngle/nglescreen.c
+ * xc/programs/Xserver/hw/hp/ngle/nglescreen.h
+ * xc/programs/Xserver/hw/hp/Imakefile
+ * xc/programs/Xserver/hw/hp/Xhp.man
+ * xc/programs/Xserver/hw/hp/ddx_info.c
+ * xc/programs/Xserver/hw/hp/hpCursorUtils.c
+ * xc/programs/Xserver/hw/hp/hpInit.c
+ * xc/programs/Xserver/hw/sunAmoeba/Imakefile
+ * xc/programs/Xserver/hw/sunAmoeba/sun.h
+ * xc/programs/Xserver/hw/sunAmoeba/sunAmInit.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunAmIo.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunAmKbd.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunAmMouse.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunAmProbe.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunAmScreen.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunCfb.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunCursor.c
+ * xc/programs/Xserver/hw/sunAmoeba/sunFbs.c
+ * xc/programs/Xserver/hw/xfree68/LinkKit/Imakefile
+ * xc/programs/Xserver/hw/xfree68/common/Imakefile
+ * xc/programs/Xserver/hw/xfree68/common/XF68_FBDev.c
+ * xc/programs/Xserver/hw/xfree68/doc/man/Imakefile
+ * xc/programs/Xserver/hw/xfree68/doc/sgml/Imakefile
+ * xc/programs/Xserver/hw/xfree68/doc/sgml/fbdev.sgml
+ * xc/programs/Xserver/hw/xfree68/doc/Imakefile
+ * xc/programs/Xserver/hw/xfree68/doc/README.fbdev
+ * xc/programs/Xserver/hw/xfree68/etc/Imakefile
+ * xc/programs/Xserver/hw/xfree68/fbdev/Imakefile
+ * xc/programs/Xserver/hw/xfree68/fbdev/fbdev.c
+ * xc/programs/Xserver/hw/xfree68/os-support/linux/Imakefile
+ * xc/programs/Xserver/hw/xfree68/os-support/misc/Imakefile
+ * xc/programs/Xserver/hw/xfree68/os-support/Imakefile
+ * xc/programs/Xserver/hw/xfree68/Imakefile
+ * xc/programs/Xserver/hw/xfree68/XF68Conf.cpp
+ * xc/programs/Xserver/hw/xfree68/XF68_FBDev.man
+ * xc/programs/Xserver/hw/xfree86/LinkKit/Imakefile
+ * xc/programs/Xserver/hw/xfree86/LinkKit/Imakefile.LK
+ * xc/programs/Xserver/hw/xfree86/LinkKit/README
+ * xc/programs/Xserver/hw/xfree86/LinkKit/mkmf.cpp
+ * xc/programs/Xserver/hw/xfree86/LinkKit/site.def.LK
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/00README
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/01.CopyRights
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/8514.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/AL.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/ARK.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/ATI.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/ATIMach.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Ahead.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Alliance.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Amake.cmds
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Amake.srclist
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/CGA.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/ChipsTech.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Cirrus.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Compaq.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/GLINT.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Genoa.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/HMC.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Herc.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/I128.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Imakefile
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Intergraphics.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/MDA.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/MX.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Main.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Makefile.std
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Matrox.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/MemProbe.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/NCR.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/OS_Linux.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/OS_LynxOS.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/OS_Mach.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/OS_Minix.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/OS_Os2.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Oak.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/PCI.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/PCI.h
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Primus.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Print.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/RamDac.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/RealTek.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/S3.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/SiS.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/SigmaDesigns.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/SolX86IO.s
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Trident.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Tseng.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/UMC.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Utils.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/VGA.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Video7.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/WD.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Weitek.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/Yamaha.c
+ * xc/programs/Xserver/hw/xfree86/SuperProbe/sprobe.def
+ * xc/programs/Xserver/hw/xfree86/VGADriverDoc/Imakefile
+ * xc/programs/Xserver/hw/xfree86/VGADriverDoc/Imakefile.stub
+ * xc/programs/Xserver/hw/xfree86/VGADriverDoc/VGADriver.Doc
+ * xc/programs/Xserver/hw/xfree86/VGADriverDoc/stub_bank.s
+ * xc/programs/Xserver/hw/xfree86/VGADriverDoc/stub_driver.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/Att490.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/Att490.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/Bt481.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/Bt481.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/Bt485.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/Bt485.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agx.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agx.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxBCach.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxBCach.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxBStor.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxBlt.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxCmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxCursor.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxDLine.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxDSeg.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxFArc.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxFCach.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxFPoly.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxFRect.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxFS.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxFont.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxGC.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxGC16.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxGC32.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxGS.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxGtImg.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxIm.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxIm.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxInit.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxLine.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxMap.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxPntWin.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxSS.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxScrIn.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxSeg.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxText.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/agxWin.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/hercRamDac.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/hercRamDac.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/regagx.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/xf861502x.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/xf861502x.h
+ * xc/programs/Xserver/hw/xfree86/accel/agx/xf86RamDac.c
+ * xc/programs/Xserver/hw/xfree86/accel/agx/xf86RamDac.h
+ * xc/programs/Xserver/hw/xfree86/accel/i128/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128.h
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128Cursor.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128Cursor.h
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128IBMCurs.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128TiCurs.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128accel.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128init.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128misc.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128reg.h
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/i128/i128stubs.c
+ * xc/programs/Xserver/hw/xfree86/accel/cache/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/cache/xf86bcache.c
+ * xc/programs/Xserver/hw/xfree86/accel/cache/xf86bcache.h
+ * xc/programs/Xserver/hw/xfree86/accel/cache/xf86fcache.c
+ * xc/programs/Xserver/hw/xfree86/accel/cache/xf86fcache.h
+ * xc/programs/Xserver/hw/xfree86/accel/cache/xf86text.c
+ * xc/programs/Xserver/hw/xfree86/accel/cache/xf86text.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/asm/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/asm/w32it.s
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/asm/w32line.s
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/asm/w32pit.s
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/dummy.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/et4000.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/et4000w32.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/gglbox.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/ggldraw.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/ramdac.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/vga.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/vgaCmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32blt.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32box.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32funcs.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32itext.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32map.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32stip.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32vars.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/w32/w32version.h
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfb8cppl.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfb8line.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbbitblt.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbblt.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbfillrct.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbfillsp.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbgc.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbgetsp.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbglblt8.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbply1rct.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbpntwin.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbpush8.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbscrinit.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbsetsp.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbsolid.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbtegblt.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbtile32.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/cfbtileodd.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/stipple.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32bres.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32bresd.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32fillarc.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32hrzvert.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32line.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32polypnt.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32rctstp8.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32teblt8.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/cfb.w32/w32zerarc.c
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/confw32.cmd
+ * xc/programs/Xserver/hw/xfree86/accel/et4000w32/confw32.sh
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/8514cach.h
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/8514im.h
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/bcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/blt.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/bstor.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/dsline.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/dsseg.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/fc.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/fcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/font.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/frect.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/fs.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/gs.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/gtimg.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/ibm8514.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/ibm8514.h
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/im.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/imfill.s
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/imread.s
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/imstip.s
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/imwrite.s
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/init.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/line.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/plypt.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/reg8514.h
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/seg.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/ss.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/text.c
+ * xc/programs/Xserver/hw/xfree86/accel/ibm8514/win.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/ativga.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/ativga.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32bc.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32blt.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32bstor.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32curs.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32dline.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32dseg.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32fcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32font.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32frect.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32fs.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32gs.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32gtimg.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32im.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32im.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32init.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32line.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32mem.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32plypt.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32pntwn.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32seg.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32ss.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32text.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/mach32win.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach32/regmach32.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64blt.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64bstor.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64curs.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64fcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64fifo.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64fifo.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64font.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64frect.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64fs.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64im.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64im.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64init.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64line.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64orect.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64pcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64pntwn.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64seg.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64text.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64util.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/mach64win.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach64/regmach64.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8bc.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8blt.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8bstor.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8cache.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8dsln.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8dssg.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8fc.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8fcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8font.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8frect.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8fs.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8gs.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8gtimg.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8im.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8im.h
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8imfl.s
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8imrd.s
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8imst.s
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8imwrt.s
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8init.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8line.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8plypt.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8seg.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8ss.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8text.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/mach8win.c
+ * xc/programs/Xserver/hw/xfree86/accel/mach8/regmach8.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/I2061Acal.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/I2061Aset.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/ICD2061A.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000Bt485.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000Bt485.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000BtCurs.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000blt.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000curs.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000curs.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000frect.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000gc16.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000gc32.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000im.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000im.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000init.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000line.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000orchid.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000orchid.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000pntwin.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000reg.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000seg.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000text.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000vga.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000viper.c
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000viper.h
+ * xc/programs/Xserver/hw/xfree86/accel/p9000/p9000win.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/drivers/mmio_928/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3/drivers/mmio_928/mmio_928.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/drivers/newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3/drivers/newmmio/newmmio.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/drivers/s3_generic/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3/drivers/s3_generic/s3_generic.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3mmio/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3/IBMRGBCurs.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3/Ti3026Curs.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/confS3.sh
+ * xc/programs/Xserver/hw/xfree86/accel/s3/confs3.cmd
+ * xc/programs/Xserver/hw/xfree86/accel/s3/newmmio.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/regs3.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3Bt485.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3BtCursor.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3Cursor.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3Cursor.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3ELSA.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3ELSA.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3TiCursor.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3bcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3blt.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3bstor.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3dline.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3dseg.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3fcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3font.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3frect.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3fs.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3gc16.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3gc24.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3gc32.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3gs.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3gtimg.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3im.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3im.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3init.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3line.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3linear.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3misc.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3name.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3plypt.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3ramdacs.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3seg.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3ss.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3text.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3/s3win.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/drivers/s3_virge/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/drivers/s3_virge/s3_virge.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/confS3V.sh
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/confs3v.cmd
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/newmmio-sizes.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/newmmio.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/regs3v.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3Cursor.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3Cursor.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3ELSA.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3ELSA.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3bcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3blt.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3bstor.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3cmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3dline.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3fcach.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3font.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3frect.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3fs.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3gc.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3gc16.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3gc24.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3gc32.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3gs.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3gtimg.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3im.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3im.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3init.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3line.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3misc.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3name.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3plypt.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3rop.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3scrin.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3ss.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3text.c
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3v.h
+ * xc/programs/Xserver/hw/xfree86/accel/s3_virge/s3win.c
+ * xc/programs/Xserver/hw/xfree86/accel/tga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tga.c
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tga.h
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tgaBtCurs.c
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tga_accel.c
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tga_presets.h
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tga_regs.h
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tgacmap.c
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tgacurs.c
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tgacurs.h
+ * xc/programs/Xserver/hw/xfree86/accel/tga/tgainit.c
+ * xc/programs/Xserver/hw/xfree86/accel/Imakefile
+ * xc/programs/Xserver/hw/xfree86/common/Mach32.c
+ * xc/programs/Xserver/hw/xfree86/common/Mach64.c
+ * xc/programs/Xserver/hw/xfree86/common/Mach8.c
+ * xc/programs/Xserver/hw/xfree86/common/NOTES.Mice
+ * xc/programs/Xserver/hw/xfree86/common/XF86_8514.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_AGX.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_I128.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_Mono.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_P9000.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_S3.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_SVGA.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_TGA.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_VGA16.c
+ * xc/programs/Xserver/hw/xfree86/common/XF86_W32.c
+ * xc/programs/Xserver/hw/xfree86/common/cfb16.h
+ * xc/programs/Xserver/hw/xfree86/common/cfb24.h
+ * xc/programs/Xserver/hw/xfree86/common/cfb32.h
+ * xc/programs/Xserver/hw/xfree86/common/coKeynames.h
+ * xc/programs/Xserver/hw/xfree86/common/xf86DCConf.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86DCConf.h
+ * xc/programs/Xserver/hw/xfree86/common/xf86Dl.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86Elo.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86Jstk.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86Lock.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86Procs.h
+ * xc/programs/Xserver/hw/xfree86/common/xf86Summa.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86Wacom.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86_Config.h
+ * xc/programs/Xserver/hw/xfree86/common/xf86_Mouse.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86_Option.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86_Option.h
+ * xc/programs/Xserver/hw/xfree86/common/xf86_PnPMouse.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/ATTDac.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/BUSmemcpy.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/BUSmemcpy.s
+ * xc/programs/Xserver/hw/xfree86/common_hw/Ch8391clk.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/CirrusClk.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/CirrusClk.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/I2061Aalt.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/I2061Acal.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/I2061Aset.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/IBMRGB.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/IBMRGB.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/ICD2061A.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/ICS1562.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/ICS2595.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/ICS2595.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/IODelay.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/IODelay.s
+ * xc/programs/Xserver/hw/xfree86/common_hw/Imakefile
+ * xc/programs/Xserver/hw/xfree86/common_hw/S3gendac.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/S3gendac.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/SC11412.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/SC11412.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/STG1703clk.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/SlowBcopy.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/SlowBcopy.s
+ * xc/programs/Xserver/hw/xfree86/common_hw/Ti3025clk.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/Ti3026clk.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/Ti302X.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/glibcAxpIo.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/xf86_ClkPr.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/xf86_HWlib.h
+ * xc/programs/Xserver/hw/xfree86/common_hw/xf86_PCI.c
+ * xc/programs/Xserver/hw/xfree86/common_hw/xf86_PCI.h
+ * xc/programs/Xserver/hw/xfree86/doc/Japanese/sgml/BUILD.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/Japanese/sgml/chips.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/Japanese/BUILD
+ * xc/programs/Xserver/hw/xfree86/doc/Japanese/README.chips
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/CPYRIGHT.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/DocIndex.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/LinkKit.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/Mach.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/NV1.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/OS2note.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/QStart.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTE.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/S3V.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/SOLX86.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/VGADriv.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/W32.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/sgml/clkprog.sgml
+ * xc/programs/Xserver/hw/xfree86/doc/COPYRIGHT
+ * xc/programs/Xserver/hw/xfree86/doc/READ.FreeBSD
+ * xc/programs/Xserver/hw/xfree86/doc/README.Mach
+ * xc/programs/Xserver/hw/xfree86/doc/README.S3V
+ * xc/programs/Xserver/hw/xfree86/doc/README.SOLX86
+ * xc/programs/Xserver/hw/xfree86/doc/README.W32
+ * xc/programs/Xserver/hw/xfree86/doc/README.clkprog
+ * xc/programs/Xserver/hw/xfree86/doc/README.trident
+ * xc/programs/Xserver/hw/xfree86/etc/BM-Lynx.shar
+ * xc/programs/Xserver/hw/xfree86/etc/apSolx86.shar
+ * xc/programs/Xserver/hw/xfree86/etc/et4000clock.c
+ * xc/programs/Xserver/hw/xfree86/etc/ioctl_pc.h
+ * xc/programs/Xserver/hw/xfree86/etc/ld-wrapper.c
+ * xc/programs/Xserver/hw/xfree86/etc/postinst.sh
+ * xc/programs/Xserver/hw/xfree86/etc/preinst.sh
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloBlt.c
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apolloHW.h
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/apollo/apollodriv.c
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/hercules/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/hercules/hercules.c
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/HGC1280.info
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280HW.h
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/hgc1280/hgc1280driv.c
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/sigma/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmaHW.h
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/sigma/sigmadriv.c
+ * xc/programs/Xserver/hw/xfree86/mono/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/mfb.banked/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/mfb.banked/mfblinebank.h
+ * xc/programs/Xserver/hw/xfree86/mono/mfb.banked/mfbmap.h
+ * xc/programs/Xserver/hw/xfree86/mono/mfb.banked/mfbmap.sh
+ * xc/programs/Xserver/hw/xfree86/mono/mono/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/mono/mono.c
+ * xc/programs/Xserver/hw/xfree86/mono/mono/mono.h
+ * xc/programs/Xserver/hw/xfree86/mono/COPYRIGHT
+ * xc/programs/Xserver/hw/xfree86/mono/Imakefile
+ * xc/programs/Xserver/hw/xfree86/mono/USING
+ * xc/programs/Xserver/hw/xfree86/mono/confmono.cmd
+ * xc/programs/Xserver/hw/xfree86/mono/confmono.sh
+ * xc/programs/Xserver/hw/xfree86/os-support/amoeba/Imakefile
+ * xc/programs/Xserver/hw/xfree86/os-support/amoeba/am_init.c
+ * xc/programs/Xserver/hw/xfree86/os-support/amoeba/am_io.c
+ * xc/programs/Xserver/hw/xfree86/os-support/amoeba/am_video.c
+ * xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
+ * xc/programs/Xserver/hw/xfree86/os-support/mach/Imakefile
+ * xc/programs/Xserver/hw/xfree86/os-support/mach/bios_mmap.c
+ * xc/programs/Xserver/hw/xfree86/os-support/mach/mach_init.c
+ * xc/programs/Xserver/hw/xfree86/os-support/mach/mach_io.c
+ * xc/programs/Xserver/hw/xfree86/os-support/mach/mach_video.c
+ * xc/programs/Xserver/hw/xfree86/os-support/minix/Imakefile
+ * xc/programs/Xserver/hw/xfree86/os-support/minix/bios_devmem.c
+ * xc/programs/Xserver/hw/xfree86/os-support/minix/local.h
+ * xc/programs/Xserver/hw/xfree86/os-support/minix/mnx_init.c
+ * xc/programs/Xserver/hw/xfree86/os-support/minix/mnx_io.c
+ * xc/programs/Xserver/hw/xfree86/os-support/minix/mnx_video.c
+ * xc/programs/Xserver/hw/xfree86/os-support/shared/IO_utils.c
+ * xc/programs/Xserver/hw/xfree86/os-support/shared/mapVT_noop.c
+ * xc/programs/Xserver/hw/xfree86/os-support/shared/std_mouse.c
+ * xc/programs/Xserver/hw/xfree86/os-support/shared/std_mseEv.c
+ * xc/programs/Xserver/hw/xfree86/os-support/solx86/Imakefile
+ * xc/programs/Xserver/hw/xfree86/os-support/solx86/solx86_init.c
+ * xc/programs/Xserver/hw/xfree86/os-support/solx86/solx86_iout.s
+ * xc/programs/Xserver/hw/xfree86/os-support/solx86/solx86_mmap.c
+ * xc/programs/Xserver/hw/xfree86/os-support/solx86/solx86_vid.c
+ * xc/programs/Xserver/hw/xfree86/os-support/sysv/bios_V4mmap.c
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/ati/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/oak/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/cl64xx/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/et3000/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/et4000/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/generic/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/ncr77c22/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/sis/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/tvga8900/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/OScompiler.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/emulOpStip.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/emulRepAre.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/emulStip.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/emulTile.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ibmTrace.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/mfbbres.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/mfbbresd.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/mfbfillarc.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/mfbhrzvert.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/mfbimggblt.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/mfbline.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/mfbzerarc.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/offscreen.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppc.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcArea.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcBStore.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcBitMacs.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcBitmap.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcCReduce.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcClip.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcCpArea.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcCurs.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcDepth.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcFillRct.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcGC.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcGCstr.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcGetSp.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcIO.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcImg.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcPixFS.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcPixmap.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcPntWin.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcPolyPnt.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcPolyRec.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcPushPxl.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcQuery.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcRot.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcRslvC.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcScrn.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcSetSp.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcSpMcro.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcWinFS.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/ppcWindow.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vga16.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaBitBlt.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaGC.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaImages.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaReg.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaSolid.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaStipple.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/vgaVideo.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/wm0.h
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/wm3.c
+ * xc/programs/Xserver/hw/xfree86/vga16/ibm/wm3.h
+ * xc/programs/Xserver/hw/xfree86/vga16/mfb/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/mi/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/misc/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/vga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga16/cvga16.cmd
+ * xc/programs/Xserver/hw/xfree86/vga16/cvga16.sh
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/ati/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/gvga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/cirrus/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/cl64xx/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/compaq/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/et3000/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/et4000/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/generic/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/generic/gen_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/ncr77c22/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/oak/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/pvga1/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/sis/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/tvga8900/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/mfb/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/mfb.banked/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/mfb.banked/mfbbitblt.c
+ * xc/programs/Xserver/hw/xfree86/vga2/mfb.banked/mfbblt.c
+ * xc/programs/Xserver/hw/xfree86/vga2/mfb.banked/mfblinebank.h
+ * xc/programs/Xserver/hw/xfree86/vga2/misc/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/vga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/vga/vgaLBank.s
+ * xc/programs/Xserver/hw/xfree86/vga2/vga/vgaLBankc.c
+ * xc/programs/Xserver/hw/xfree86/vga2/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga2/confvga2.cmd
+ * xc/programs/Xserver/hw/xfree86/vga2/confvga2.sh
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/al2101/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/al2101/al_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/al2101/al_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ali/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ali/ali_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ali/ali_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_bitblt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_blt16.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_cop.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_cursor.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ark/ark_driver.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ati.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ati.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ati_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiadapter.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiadapter.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiadjust.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiadjust.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atibank.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atibank.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atibanks.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atibus.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atibus.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atichip.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atichip.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticmap.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticmap.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticrtc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticrtc.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atidac.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atidac.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atidepth.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atidsp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atidsp.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atifbinit.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atifbinit.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atigetmode.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atigetmode.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiident.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiident.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiio.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiio.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atimach64.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atimach64.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atimono.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprint.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprint.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiproto.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiregs.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atireset.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atireset.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiscrinit.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiscrinit.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiutil.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiutil.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativalid.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativalid.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativersion.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativga.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativga.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atividmem.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atividmem.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiwonder.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiwonder.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/regati.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_BitBlt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_BlitMM.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_Blitter.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_BltHiQV.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_FillRct.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_FillSt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_alloc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_blitter.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_blt16.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_colexp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_config.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_driver.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_line.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_lline.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_lline.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_pci.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_solid.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_teblt8.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/ct_textblt.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/dRegs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/chips/mRegs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cirBlitMM.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cirBlitter.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cirFillRct.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cirFillSt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_alloc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_alloc.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitLG.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitLG.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blitter.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_blt16.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_bltC.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_colexp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_driver.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_fill.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_fillLG.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_im.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_imblt.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_inline.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_line.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_orect.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_solid.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_span.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_span.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_teblt8.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_textblt.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cirrus_acl.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/laguna_acl.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/linearline.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/linearline.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cl64xx/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cl64xx/cl_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/cl64xx/cl_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/compaq/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/compaq/cpq_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/compaq/cpq_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et3000/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et3000/bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et3000/et3_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/et4_accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/et4_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_acl.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_acl.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_clock.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_colexp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_colexp.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_cursor.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_dpms.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_inline.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/et4000/tseng_ramdac.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/generic/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/generic/gen_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/gvga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/gvga/bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/gvga/gvg_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/util/Makefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/util/README
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/util/stormdwg.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/README
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_bios.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_dac1064.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_dac3026.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_hwcurs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_macros.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_map.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_reg.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_storm.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mga/mga_xaarepl.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mx/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mx/mx_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/mx/mx_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ncr77c22/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ncr77c22/ncr_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/ncr77c22/ncr_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/README
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/README.NV1
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/README.RIVA128
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/README.tech
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv1cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv1driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv1ref.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv1setup.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv3cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv3driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv3ref.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv3setup.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nv_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nvaccel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nvcursor.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nvreg.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nvsetup.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nvuser.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/nvvga.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_colexp.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oak_driver.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oti87_bltC.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oti87_fill.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/oak/oti87_sol.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/paradise.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/pvg_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/pvgaBitBlt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/pvgablt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/pvgapntwin.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/pvga1/pvgasolid.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/realtek/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/realtek/rt_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/realtek/rt_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/IBMRGBCurs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/README.S3
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/Ti3026Curs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/newmmio.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3Bt485.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3BtCursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3ELSA.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3ELSA.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3TiCursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3fbinit.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3init.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3misc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3probe.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3ramdacs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3reg.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3save.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/newmmio.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/regs3v.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_cursor.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_misc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_rop.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis86c201.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_BitBlt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_Blitter.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_FillRct.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_FillSt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_blitter.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_blt16.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_colexp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_curs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_driver.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_pntwin.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_solid.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_teblt8.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/sis/sis_textblt.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/bankc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/t89_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/t89_driver.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/tgui_accel.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/tgui_curs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/tgui_drv.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/tgui_ger.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/tgui_mmio.h
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/tvga8900/tgui_oldacl.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/video7/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/video7/v7_bank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/video7/v7_driver.c
+ * xc/programs/Xserver/hw/xfree86/vga256/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/SpeedUpBlt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/fBitBlt.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/fFill.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/fFillSet.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/fLineBres.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/fLineH.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/fLineV.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/gBanks.c
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/suBBlt2.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/suBitBlt.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/suBox.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/suLine.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/suVHLine.s
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/vgaBitBlt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/vgaBltFillc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/vgaFasm.h
+ * xc/programs/Xserver/hw/xfree86/vga256/enhanced/vgaLinec.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/Design
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vga.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vga.h
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vga256.h
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vga8cppl.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaAsm.h
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaBank.h
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaBank.s
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaBankc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaCmap.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaHW.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaPCI.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaPCI.h
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgabitblt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgablt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgabltC.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgabresd.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgabstore.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgafillarc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgafillrct.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgafillsp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgafuncs.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgagc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgagetsp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaglblt8.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaimage.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaline.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgalined.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgaply1rct.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgapntwin.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgapolypnt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgapush8.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgapwinS.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgarctstp8.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgascrinit.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgasetsp.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgasolid.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgatables.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgateblt8.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgategblt.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgatile32.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgatileodd.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgawindow.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vga/vgazerarc.c
+ * xc/programs/Xserver/hw/xfree86/vga256/vgainit/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/vgainit/vgabpp.h
+ * xc/programs/Xserver/hw/xfree86/vga256/vgainit/vgabppscrin.c
+ * xc/programs/Xserver/hw/xfree86/vga256/Imakefile
+ * xc/programs/Xserver/hw/xfree86/vga256/cvga256.cmd
+ * xc/programs/Xserver/hw/xfree86/vga256/cvga256.sh
+ * xc/programs/Xserver/hw/xfree86/xaa/xaa16/Imakefile
+ * xc/programs/Xserver/hw/xfree86/xaa/xaa24/Imakefile
+ * xc/programs/Xserver/hw/xfree86/xaa/xaa32/Imakefile
+ * xc/programs/Xserver/hw/xfree86/xaa/xaa8/Imakefile
+ * xc/programs/Xserver/hw/xfree86/xaa/xaavga256/Imakefile
+ * xc/programs/Xserver/hw/xfree86/xaa/Imakefile.BPP
+ * xc/programs/Xserver/hw/xfree86/xaa/cfbcpplane.c
+ * xc/programs/Xserver/hw/xfree86/xaa/sampledrv.c
+ * xc/programs/Xserver/hw/xfree86/xaa/vga256map.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86bench.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86bitmap.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86cparea.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86cursor.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86cursor.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86defs.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86dline.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86dseg.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86expblt.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86expblt.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86farc.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86fpoly.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86frect.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86gc.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86gcmap.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86gcmisc.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86im.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86initac.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86line.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86line2.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86local.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86maploc.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86orect.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86pcache.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86pcache.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86plane.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86scrin.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86scrin.h
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86spans.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86stip.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86tables.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86text.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86txtblt.s
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86window.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86wline.c
+ * xc/programs/Xserver/hw/xfree86/xaa/xf86xaa.h
+ * xc/programs/Xserver/hw/xfree86/xf86config/xf86conf.man
+ * xc/programs/Xserver/hw/xfree98/LinkKit/Imakefile
+ * xc/programs/Xserver/hw/xfree98/SuperProbe/Imakefile
+ * xc/programs/Xserver/hw/xfree98/VGADriverDoc/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/pics/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/scripts/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/scripts/xmseconfig
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/tcllib/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/texts/generic/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/texts/ja/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/texts/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF86Setup/filelist.tcl
+ * xc/programs/Xserver/hw/xfree98/accel/cache/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3ga968/drivers/mmio_928/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3ga968/drivers/newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3ga968/drivers/s3_generic/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3ga968/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3ga968/s3mmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3ga968/s3newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3ga968/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/drivers/mmio_928/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/drivers/newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/drivers/s3_generic/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/s3mmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/s3newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/s3pc98.c
+ * xc/programs/Xserver/hw/xfree98/accel/s3nec/s3pc98.h
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwlb/drivers/mmio_928/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwlb/drivers/newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwlb/drivers/s3_generic/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwlb/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwlb/s3mmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwlb/s3newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwlb/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwskb/drivers/mmio_928/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwskb/drivers/newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwskb/drivers/s3_generic/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwskb/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwskb/s3mmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwskb/s3newmmio/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/s3pwskb/Imakefile
+ * xc/programs/Xserver/hw/xfree98/accel/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common/pc98_vers.h
+ * xc/programs/Xserver/hw/xfree98/common_hw/ga968/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common_hw/generic/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common_hw/nec/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common_hw/pwlb/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common_hw/pwskb/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common_hw/Imakefile
+ * xc/programs/Xserver/hw/xfree98/common_hw/Imakefile.chw
+ * xc/programs/Xserver/hw/xfree98/doc/Japanese/sgml/1st.sgml
+ * xc/programs/Xserver/hw/xfree98/doc/Japanese/sgml/Imakefile
+ * xc/programs/Xserver/hw/xfree98/doc/Japanese/sgml/read98.sgml
+ * xc/programs/Xserver/hw/xfree98/doc/Japanese/Imakefile
+ * xc/programs/Xserver/hw/xfree98/doc/Japanese/README98
+ * xc/programs/Xserver/hw/xfree98/doc/Japanese/README98.1st
+ * xc/programs/Xserver/hw/xfree98/doc/man/Imakefile
+ * xc/programs/Xserver/hw/xfree98/doc/sgml/Imakefile
+ * xc/programs/Xserver/hw/xfree98/doc/Imakefile
+ * xc/programs/Xserver/hw/xfree98/doc/VideoBoard98
+ * xc/programs/Xserver/hw/xfree98/etc/Imakefile
+ * xc/programs/Xserver/hw/xfree98/os-support/bsd/Imakefile
+ * xc/programs/Xserver/hw/xfree98/os-support/misc/Imakefile
+ * xc/programs/Xserver/hw/xfree98/os-support/linux/Imakefile
+ * xc/programs/Xserver/hw/xfree98/os-support/minix/Imakefile
+ * xc/programs/Xserver/hw/xfree98/os-support/sysv/Imakefile
+ * xc/programs/Xserver/hw/xfree98/os-support/Imakefile
+ * xc/programs/Xserver/hw/xfree98/reconfig/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/drivers/generic/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/ibm/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/ibm/egc_asm.s
+ * xc/programs/Xserver/hw/xfree98/vga16/mfb/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/mi/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/misc/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/vga/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga16/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/ganbwap/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/mga/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/nec480/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/nec480/bank.s
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/nec480/nec480_dr.c
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/nkvnec/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/svga/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/trident/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/trident/pc98_tgui.c
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/trident/pc98_tgui.h
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/wabep/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/wabs/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/wsna/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/drivers/cir_pc98.c
+ * xc/programs/Xserver/hw/xfree98/vga256/ganbwap/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/mga/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/nec480/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/nkvnec/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/svga/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/trident/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/vgainit/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/wabep/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/wabs/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/wsna/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/Imakefile
+ * xc/programs/Xserver/hw/xfree98/vga256/Imakefile.vga
+ * xc/programs/Xserver/hw/xfree98/vga256/cmga.cmd
+ * xc/programs/Xserver/hw/xfree98/vga256/cmga.sh
+ * xc/programs/Xserver/hw/xfree98/vga256/cnec480.cmd
+ * xc/programs/Xserver/hw/xfree98/vga256/cnec480.sh
+ * xc/programs/Xserver/hw/xfree98/vga256/ctgui.cmd
+ * xc/programs/Xserver/hw/xfree98/vga256/ctgui.sh
+ * xc/programs/Xserver/hw/xfree98/vga256/cvga256.cmd
+ * xc/programs/Xserver/hw/xfree98/vga256/cvga256.sh
+ * xc/programs/Xserver/hw/xfree98/xaa/xaa16/Imakefile
+ * xc/programs/Xserver/hw/xfree98/xaa/xaa24/Imakefile
+ * xc/programs/Xserver/hw/xfree98/xaa/xaa32/Imakefile
+ * xc/programs/Xserver/hw/xfree98/xaa/xaa8/Imakefile
+ * xc/programs/Xserver/hw/xfree98/xaa/xaavga256/Imakefile
+ * xc/programs/Xserver/hw/xfree98/xaa/Imakefile
+ * xc/programs/Xserver/hw/xfree98/xaa/Imakefile.BPP
+ * xc/programs/Xserver/hw/xfree98/xf86config/Cards98
+ * xc/programs/Xserver/hw/xfree98/xf86config/Imakefile
+ * xc/programs/Xserver/hw/xfree98/Imakefile
+ * xc/programs/Xserver/hw/xfree98/XF98Conf.cpp
+ * xc/programs/Xserver/hw/xnest/Cursor.h
+ * xc/programs/Xserver/hw/xnest/Pixmap.h
+ * xc/programs/Xserver/os/iopreader.c
+ * xc/programs/Xserver/pandix/Imakefile
+ * xc/programs/Xserver/pandix/dispatch.c
+ * xc/programs/Xserver/pandix/dixfonts.c
+ * xc/programs/Xserver/pandix/events.c
+ * xc/programs/Xserver/pandix/main.c
+ * xc/programs/Xserver/pandix/resource.c
+ * xc/programs/Xserver/pandix/window.c
+ * xc/programs/Xserver/panmi/Imakefile
+ * xc/programs/Xserver/panmi/miexpose.c
+ * xc/programs/Xserver/panmi/miregion.c
+ * xc/programs/Xserver/panmi/mivaltree.c
+ * xc/programs/fsinfo/Imakefile
+ * xc/programs/fsinfo/fsinfo.c
+ * xc/programs/fsinfo/fsinfo.man
+ * xc/programs/xdm/config/Xresources
+ * xc/programs/xfs/include/events.h
+ * xc/programs/xfs/include/resource.h
+ * xc/programs/xkbcomp/keymap/sgi/cs
+ * xc/programs/xkbcomp/symbols/cs
+ * xc/programs/xkbcomp/xkbparse.h
+ * xc/programs/xprop/dsimple.c
+ * xc/programs/xprop/dsimple.h
+ * xc/programs/xwd/dsimple.c
+ * xc/programs/xwd/dsimple.h
+ * xc/programs/xwininfo/dsimple.c
+ * xc/programs/xwininfo/dsimple.h
+ * xc/fonts/bdf/misc/7x13euro.bdf
+ * xc/fonts/bdf/misc/7x13euroB.bdf
+ * xc/fonts/bdf/misc/7x14rk.bdf
+ * xc/fonts/bdf/misc/heb6x13.bdf
+ * xc/fonts/bdf/misc/heb8x13.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTBI__10.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTBI__12.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTBI__14.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTBI__18.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTBI__24.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTB___10.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTB___12.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTB___14.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTB___18.bdf
+ * xc/fonts/bdf/unnec_100dpi/UTB___24.bdf
+ * xc/fonts/bdf/unnec_100dpi/charB08.bdf
+ * xc/fonts/bdf/unnec_100dpi/charB10.bdf
+ * xc/fonts/bdf/unnec_100dpi/charB12.bdf
+ * xc/fonts/bdf/unnec_100dpi/charB14.bdf
+ * xc/fonts/bdf/unnec_100dpi/charB18.bdf
+ * xc/fonts/bdf/unnec_100dpi/charB24.bdf
+ * xc/fonts/bdf/unnec_100dpi/charBI08.bdf
+ * xc/fonts/bdf/unnec_100dpi/charBI10.bdf
+ * xc/fonts/bdf/unnec_100dpi/charBI12.bdf
+ * xc/fonts/bdf/unnec_100dpi/charBI14.bdf
+ * xc/fonts/bdf/unnec_100dpi/charBI18.bdf
+ * xc/fonts/bdf/unnec_100dpi/charBI24.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTBI__10.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTBI__12.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTBI__14.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTBI__18.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTBI__24.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTB___10.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTB___12.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTB___14.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTB___18.bdf
+ * xc/fonts/bdf/unnec_75dpi/UTB___24.bdf
+ * xc/fonts/bdf/unnec_75dpi/charB08.bdf
+ * xc/fonts/bdf/unnec_75dpi/charB10.bdf
+ * xc/fonts/bdf/unnec_75dpi/charB12.bdf
+ * xc/fonts/bdf/unnec_75dpi/charB14.bdf
+ * xc/fonts/bdf/unnec_75dpi/charB18.bdf
+ * xc/fonts/bdf/unnec_75dpi/charB24.bdf
+ * xc/fonts/bdf/unnec_75dpi/charBI08.bdf
+ * xc/fonts/bdf/unnec_75dpi/charBI10.bdf
+ * xc/fonts/bdf/unnec_75dpi/charBI12.bdf
+ * xc/fonts/bdf/unnec_75dpi/charBI14.bdf
+ * xc/fonts/bdf/unnec_75dpi/charBI18.bdf
+ * xc/fonts/bdf/unnec_75dpi/charBI24.bdf
+ * xc/util/patch/ChangeLog
+ * xc/util/patch/Configure
+ * xc/util/patch/EXTERN.h
+ * xc/util/patch/INTERN.h
+ * xc/util/patch/MANIFEST
+ * xc/util/patch/Makefile.SH
+ * xc/util/patch/Makefile.nt
+ * xc/util/patch/README
+ * xc/util/patch/backupfile.c
+ * xc/util/patch/backupfile.h
+ * xc/util/patch/common.h
+ * xc/util/patch/config.H
+ * xc/util/patch/config.h.SH
+ * xc/util/patch/config.h.nt
+ * xc/util/patch/inp.c
+ * xc/util/patch/inp.h
+ * xc/util/patch/malloc.c
+ * xc/util/patch/patch.c
+ * xc/util/patch/patch.man
+ * xc/util/patch/patchlevel.h
+ * xc/util/patch/pch.c
+ * xc/util/patch/pch.h
+ * xc/util/patch/util.c
+ * xc/util/patch/util.h
+ * xc/util/patch/version.c
+ * xc/util/patch/version.h
+ * xc/util/patch/winnt.h
+ Bugzilla #1770 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1770):
+ Fixing build bustage caused by dead files which were never properly
+ cvs removed, the RCS backing files just had an invalid default branch
+ set, which prevented CVS from checking them out. After fixing the RCS
+ backing files this patch now removes those files.
+
+2004-11-03 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/lib/font/FreeType/ftfuncs.c
+ Bugzilla #1767 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1767):
+ Fixing build bustage in xc/programs/bdftopcf/ due missing
+ `FT_STREAM_SEEK'/`FT_STREAM_POS' symbols.
+
+2004-11-02 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/pclcomp/pclcomp.c
+ Bugzilla #1758 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1758):
+ Fixing various build errors and warnings in "pclcomp".
+
+2004-11-02 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * lib/font/FreeType/ftfuncs.c:
+ Removing unneeded private FreeType2 symbol.
+
+ * programs/Xserver/hw/xfree86/ddc/edid.h:
+ * programs/Xserver/hw/xfree86/ddc/interpret_edid.c:
+ (xf86InterpretEDID), (get_display_section),
+ (get_std_timing_section), (get_dt_md_section),
+ (get_dst_timing_section), (get_monitor_ranges),
+ (get_detailed_timing_section), (validate_version):
+ * programs/Xserver/hw/xfree86/ddc/print_edid.c: (xf86PrintEDID),
+ (print_display), (print_input_features), (print_dpms_features),
+ (print_detailed_monitor_section), (print_detailed_timings),
+ (print_number_sections):
+ Updating to EDID 1.3. (Bugzilla# 1490, Jay Cotton, Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ (chipsModeInitHiQV):
+ Removing unneeded code.
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810SetMode), (I810ModeInit):
+ * programs/Xserver/xkb/ddxList.c: (XkbDDXListComponent):
+ * programs/Xserver/xkb/ddxLoad.c: (XkbDDXCompileNamedKeymap):
+ Fixed KGA handling for i810. KGA handling for chips derived from
+ C&T chips is slightly different. The changes make the code
+ consistent with the C&T (chips) and i740 drivers.
+
+
+2004-11-01 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/Xext/saver.c: (ScreenSaverUnsetAttributes):
+ Fixed sig11 which occured when calling a CloseDisplay()
+ after XScreenSaverSetAttributes() followed by
+ XScreenSaverUnsetAttributes(). Caused by missing FreeResource()
+ in XScreenSaverUnsetAttributes().
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ (configureDDCMonitorSection):
+ Removing unused DDC sections that caused misinterpretation of
+ DDC data due to a missing break statement in a switch.
+ * programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c:
+ (ix86PciSelectCfgmech):
+ Fixed typo: #if <-> #ifdef.
+
+2004-10-31 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/glxgears/Imakefile
+ Bugzilla #1747: Fix build failure on Solaris due missing
+ |sched_yield| symbol (which is provided by the realtime library
+ (librt.so) in Solaris).
+
+2004-10-31 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/lib/GL/mesa/drivers/osmesa/Imakefile
+ Bugzilla #1743: Fix build failure on Solaris due "ld: fatal:
+ too many symbols require `small' PIC references" via adding
+ |#define LargePICTable YES| to the Imakefile.
+
+2004-10-31 Felix Kuehling <fxkuehl@gmx.de>
+
+ * xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavageDDC1):
+ * xc/programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitStreamsNew), (SavageInitStreams2000):
+ Make the Savage driver work with the dl-loader.
+
+2004-10-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/pclcomp/Imakefile
+ Bugzilla #631: Adding missing Imakefile.
+
+2004-10-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Imakefile
+ * xc/programs/pclcomp/README
+ * xc/programs/pclcomp/pclcomp.c
+ * xc/programs/pclcomp/pclcomp.man
+ * xc/programs/pclcomp/printer.note
+ * xc/programs/xpr/Imakefile
+ * xc/programs/xpr/lncmd.h
+ * xc/programs/xpr/pmp.h
+ * xc/programs/xpr/x2jet.c
+ * xc/programs/xpr/x2pmp.c
+ * xc/programs/xpr/xdpr.man
+ * xc/programs/xpr/xdpr.script
+ * xc/programs/xpr/xpr.c
+ * xc/programs/xpr/xpr.h
+ * xc/programs/xpr/xpr.man
+ Bugzilla #631: Uploading "xpr" and "pclcomp" as they are needed
+ for the RASTER and PCL drivers on some platforms.
+
+2004-10-30 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/config/util/mdepend.cpp:
+ Add -d flag for compilers like the Sun C compilers that
+ produce dependency lists themselves. To use with the Sun
+ compilers, add to host.def:
+ # define UseCCMakeDepend YES
+ # define DependFlags -cc $(CC) -d -xM
+ (Sun bug id #4245688 - fix by Alan Coopersmith)
+ * xc/programs/Xserver/hw/xfree86/loader/elfloader.c:
+ Add Solaris to the platforms on which mprotect is run to set
+ execute permissions when necessary. (Sun bug id #6175128 -
+ Xorg bugzilla #1812 - fix by Alan Coopersmith)
+ * xc/programs/xclock/Imakefile,Clock.c,ClockP.h,xclock.c:
+ Internationalize digital output (Sun bug id #4119396 - fix by
+ Steve Swales), add -bgpixmap option to set XPM file as background
+ (originally from STSF project version of xclock by Alan Coopersmith)
+ * xc/programs/xmodmap/handle.c,pf.c
+ xmodmap was printing line numbers which are one too low in error
+ messages (Xorg bugzilla #1739, Sun bug id 4637857 - fix by Sam Lau)
+
+2004-10-29 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * config/cf/X11.tmpl:
+ * config/cf/cygwin.cf:
+ * config/cf/darwin.cf:
+ * programs/Xserver/dix/Imakefile:
+ * programs/Xserver/miext/damage/Imakefile:
+ Add BuildRootless Imake variable and ROOTLESS define.
+
+2004-10-28 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/rootlessAqua.h:
+ Removed unused vestigial file.
+
+2004-10-27 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c:
+ (I810Sync):
+ Removing vtSema shilding of accel sync - should have been
+ '&&' instead of '||' anyway.
+
+2004-10-25 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/miext/rootless/accel/rlAccel.c: (rlCreateGC):
+ Fix rootless Cygwin crash due to acceleration code illegally modifying
+ a const structure (Reported by Kensuke Matsuzaki).
+
+2004-10-24 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/xprint_site.def
+ * xc/programs/Xserver/Xprint/ps/Ps.h
+ * xc/programs/Xserver/Xprint/ps/PsPixmap.c
+ * xc/programs/Xserver/Xprint/ps/PsPolygon.c
+ * xc/programs/Xserver/mi/miinitext.c
+ Bugzilla #1664 (https://freedesktop.org/bugzilla/show_bug.cgi?id=1664)
+ attachment #1161 (https://bugs.freedesktop.org/attachment.cgi?id=1161):
+ RFE: Add support for the DOUBLE-BUFFER extension
+ to the Xprint server and DDX. Additionally a "pixmap-scrubber"
+ optimisation is added to the PostScript DDX to remove all content
+ from a vector pixmap when a |PolyFillRect()| call covers the whole
+ pixmap surface with a solid fill (this avoids that a backbuffer
+ vector pixmap gets constantly filled even when the content is
+ not visible anymore after |XdbeSwapBuffers()| has cleared the
+ hidden buffer with the background color).
+
+2004-10-24 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/drivers/wsfb/wsfb_driver.c:
+ - don't pretend to support 24bpp or 32bpp framebuffers if probed
+ depth is less than 24. Avoids a core dump after a common
+ configuration error.
+
+2004-10-21 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONDisplayVideo), (RADEONPutVideo):
+ - make the overlay work on crtc2 again
+ - make PutVideo() MergedFB aware
+
+2004-10-22 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/xdm/greeter/verify.c
+ Make BSDAUTH able to use non-default login classes.
+ (Bugzilla #1676, Pierre Lalet).
+
+2004-10-21 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ Make sure the overlay is off when switching modes, otherwise you
+ can get a chip lockup if you switch modes with a video playing
+
+2004-10-20 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageStreamsOn), (SavageStreamsOff):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (SavageInitVideo), (SavageStopVideo), (SavageDisplayVideoOld),
+ (SavageDisplayVideoNew), (SavageStopSurface):
+ when using the overlay for Xv, only enable it when displaying the
+ video otherwise the overlay breaks on mode changes.
+
+2004-10-20 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavageGetRefresh), (SavageValidMode), (SavageModeInit):
+ Take doublescan and interlace flags into account when choosing a
+ BIOS mode. Otherwise it choses modes with double refresh rates for
+ double scan modes or half refresh rates for interlaced modes.
+
+2004-10-20 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/via/via_lib.h:
+ Fixed a compile error on BSD in the via driver
+
+2004-10-20 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * lib/XvMC/Imakefile:
+ * lib/XvMC/hw/via/Imakefile:
+ * lib/XvMC/hw/via/viaLowLevel.c: (hwlLock), (hwlUnlock),
+ (viaMpegGetStatus), (viaMpegIsBusy), (timeDiff), (syncDMA),
+ (syncVideo), (syncAccel), (syncMpeg), (pciFlush), (agpFlush),
+ (flushXvMCLowLevel), (pciCommand), (agpCommand),
+ (viaMpegSetSurfaceStride), (viaVideoSetSWFLipLocked),
+ (viaVideoSWFlipLocked), (viaMpegSetFB), (viaMpegBeginPicture),
+ (viaMpegReset), (viaMpegWriteSlice), (viaVideoSubPictureOffLocked),
+ (viaVideoSubPictureLocked), (viaBlit), (syncXvMCLowLevel),
+ (initXvMCLowLevel), (setLowLevelLocking), (closeXvMCLowLevel):
+ * lib/XvMC/hw/via/viaLowLevel.h:
+ * lib/XvMC/hw/via/viaXvMC.c: (yOffs), (vOffs), (uOffs),
+ (defaultQMatrices), (releaseDecoder), (grabDecoder),
+ (setupAttribDesc), (releaseAttribDesc), (XvMCCreateContext),
+ (XvMCDestroyContext), (XvMCCreateSurface), (XvMCDestroySurface),
+ (XvMCPutSlice2), (XvMCPutSlice), (updateXVOverlay),
+ (XvMCPutSurface), (XvMCBeginSurface), (XvMCSyncSurface),
+ (XvMCLoadQMatrix), (XvMCRenderSurface), (XvMCCreateBlocks),
+ (XvMCDestroyBlocks), (XvMCCreateMacroBlocks),
+ (XvMCDestroyMacroBlocks), (XvMCCreateSubpicture),
+ (XvMCSetSubpicturePalette), (findOverlap), (XvMCClearSubpicture),
+ (XvMCCompositeSubpicture), (XvMCBlendSubpicture),
+ (XvMCBlendSubpicture2), (XvMCSyncSubpicture),
+ (XvMCFlushSubpicture), (XvMCDestroySubpicture),
+ (XvMCGetSubpictureStatus), (XvMCFlushSurface),
+ (XvMCGetSurfaceStatus), (XvMCQueryAttributes), (XvMCSetAttribute),
+ (XvMCGetAttribute), (XvMCHideSurface):
+ * lib/XvMC/hw/via/viaXvMCPriv.h:
+ * lib/XvMC/wrapper/Imakefile:
+ * lib/XvMC/wrapper/XvMCWrapper.c: (preInitW):
+ Imported via XvMC library release 0.13.0 from unichrome.sf.net.
+ This enables hardware mpeg2 decoding for the CLE266 chip using the
+ nonstandard VLD XvMC extension. Complete author information is
+ available at the unichrome site.
+ Updated the XvMC wrapper to look for version specific Xv and XvMC
+ shared libraries.
+
+2004-10-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Imakefile
+ * xc/programs/xdbedizzy/Imakefile
+ * xc/programs/xdbedizzy/xdbedizzy.c
+ * xc/programs/xdbedizzy/xdbedizzy.man
+ * xc/programs/xdbedizzy/xdbedizzy.sgml
+ Bugzilla #1673: Adding sample application "xdbedizzy" for the
+ DOUBLE-BUFFER extension ("DBE").
+ Original "dbedizzy" version written by Mark Kilgard, adapted to
+ use DBE for double buffering by Allen Leinwand, print support
+ by Roland Mainz.
+
+2004-10-19 Luc Verhaegen <libv@skynet.be>
+
+ * programs/Xserver/hw/xfree86/drivers/via/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/via/ddmpeg.h:
+ * programs/Xserver/hw/xfree86/drivers/via/ginfo.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via.man:
+ * programs/Xserver/hw/xfree86/drivers/via/via_accel.c:
+ (VIAInitialize2DEngine), (dispatchCBuffer), (dispatchCBufferAGP),
+ (VIAInitAccel), (VIAAccelSync), (VIASetupForScreenToScreenCopy),
+ (VIASubsequentScreenToScreenCopy), (VIASetupForSolidFill),
+ (VIASubsequentSolidFillRect), (VIASetupForMono8x8PatternFill),
+ (VIASubsequentMono8x8PatternFillRect),
+ (VIASubsequentColor8x8PatternFillRect),
+ (VIASetupForCPUToScreenColorExpandFill),
+ (VIASubsequentScanlineCPUToScreenColorExpandFill),
+ (VIASetupForScreenToScreenColorExpand),
+ (VIASubsequentScreenToScreenColorExpand), (VIASetupForImageWrite),
+ (VIASubsequentImageWriteRect), (VIASetupForSolidLine),
+ (VIASubsequentSolidTwoPointLine), (VIASubsequentSolidHorVertLine),
+ (VIASetupForDashedLine), (VIASubsequentDashedTwoPointLine),
+ (VIASetClippingRectangle), (ViaVQDisable):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bandwidth.c:
+ (ViaSetCLE266APrimaryFIFO), (ViaSetPrimaryExpireNumber),
+ (ViaSetPrimaryFetchCount), (ViaSetPrimaryFIFO),
+ (ViaSetSecondaryFetchCount), (ViaSetSecondaryFIFO),
+ (ViaDisablePrimaryFIFO):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bandwidth.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.c:
+ (VIACreateHeaderFile), (VIACreateTV2), (VIAGetTV2Mask),
+ (VIAGetTV2NTSC), (VIAGetTV2PAL), (VIACreateTV3), (VIAGetTV3Mask),
+ (VIAGetTV3NTSC), (VIAGetTV3PAL), (VIACreateVT1622A),
+ (ViaGetRomTVTableVersion), (ViaGetRomOutputModeTables),
+ (ViaGetRomModeTables), (ViaGetRomImage),
+ (ViaGetIncludedOutputModeTables), (ViaGetIncludedModeTables),
+ (ViaModeTablesInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_bios.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_capture.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_ch7019.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_common.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_compose.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_cursor.c:
+ (VIALoadCursorImage), (ViaCursorStore), (ViaCursorRestore):
+ * programs/Xserver/hw/xfree86/drivers/via/via_dga.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ (VIADRIIrqInit), (VIADRIIrqExit), (VIADRIRingBufferCleanup),
+ (VIADRIRingBufferInit), (VIADRIAgpInit), (VIADRIScreenInit),
+ (VIADRICloseScreen), (VIADRIFinishScreenInit), (VIADRIMapInit),
+ (viaDRIEnterVT), (viaDRILeaveVT):
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c: (VIASetup),
+ (ViaWaitIdle), (VIAGetRec), (VIAFreeRec), (VIAIdentify),
+ (VIAProbe), (LookupChipSet), (VIAProbeDDC), (VIAPreInit),
+ (VIAEnterVT), (VIALeaveVT), (VIASave), (VIARestoreRegs),
+ (VIAEnableMMIO), (VIADisableMMIO), (VIAMapMMIO), (VIAMapFB),
+ (VIAScreenInit), (VIAInternalScreenInit), (VIAWriteMode),
+ (VIACloseScreen), (VIAAdjustFrame), (VIASwitchMode), (VIADPMS),
+ (VIADeviceSelection), (VIADeviceDispatch):
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_fs454.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_gpioi2c.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_gpioi2c.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_hwdiff.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_i2c.c:
+ (VIAI2C1PutBits), (VIAI2C1GetBits), (ViaI2CBus1Init),
+ (VIAI2C2PutBits), (VIAI2C2GetBits), (ViaI2CBus2Init),
+ (ViaI2CBus3Init), (ViaGpioI2CInit), (VIAGPIOI2C_Initial),
+ (ViaGpioI2c_Release), (ViaGpioI2c_SCLWrite), (ViaGpioI2c_SCLRead),
+ (ViaGpioI2c_SDAWrite), (ViaGpioI2c_SDARead), (HWGPIOI2C_SetSCL),
+ (HWGPIOI2C_SetSDA), (HWGPIOI2C_GetSDA), (GPIOI2C_START),
+ (GPIOI2C_STOP), (GPIOI2C_ACKNOWLEDGE), (GPIOI2C_SENDACKNOWLEDGE),
+ (GPIOI2C_SENDNACKNOWLEDGE), (GPIOI2C_WriteBit),
+ (GPIOI2C_WriteData), (GPIOI2C_ReadBit), (GPIOI2C_ReadData),
+ (VIAGPIOI2C_Write), (VIAGPIOI2C_Read), (VIAGPIOI2C_ReadByte),
+ (ViaGpioI2c_Probe), (VIAI2CInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_i2c.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.c:
+ (ViaDoubleCheckCLE266Revision), (ViaCheckCardId):
+ * programs/Xserver/hw/xfree86/drivers/via/via_id.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_lib.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memcpy.c:
+ (libc_YUV42X), (__memcpy), (kernel_YUV42X), (kernel_memcpy),
+ (fastrdtsc), (time_function), (flagValid), (cpuValid),
+ (viaVidCopyInit):
+ * programs/Xserver/hw/xfree86/drivers/via/via_memcpy.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_memory.c:
+ (VIAFreeLinear), (offScreenLinear), (VIAAllocLinear),
+ (VIAInitLinear):
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.c:
+ (VIACheckTVExist), (VIAGetActiveDisplay), (VIASensorTV2),
+ (VIASensorTV3), (VIASensorDVI), (VIAPostDVI), (VIAGetDeviceDetect),
+ (ViaGetPanelSizeFromEDID), (VIAGetPanelSizeFromDDCv1),
+ (VIAGetPanelSizeFromDDCv2), (VIAGetPanelSize),
+ (ViaGetResolutionIndex), (ViaGetModeIndex), (ViaPanelGetIndex),
+ (ViaGetNearestRefresh), (ViaRefreshAllowed), (ViaTVGetIndex),
+ (VIAFindModeUseBIOSTable), (VIASetUseExternalClock),
+ (VIASetPrimaryClock), (VIASetSecondaryClock), (VIASetLCDMode),
+ (VIAPreSetTV2Mode), (VIAPreSetVT1623Mode), (VIAPostSetTV2Mode),
+ (VIAPreSetTV3Mode), (VIAPostSetTV3Mode), (ViaTVModePreset),
+ (ViaTVClose), (ViaTVModePostSet), (ViaSetPrimaryOffset),
+ (ViaSetBlankingEndOverflow), (ViaPrimaryRefreshPatch),
+ (VIASetModeUseBIOSTable), (ViaSetSecondaryOffset),
+ (VIASetModeForMHS), (ViaLCDPowerSequence), (VIAEnableLCD),
+ (VIADisableLCD), (VIASavePalette), (VIARestorePalette),
+ (VIALoadPalette):
+ * programs/Xserver/hw/xfree86/drivers/via/via_mode.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_overlay.c:
+ (viaOverlayGetV1Format), (viaOverlayGetV3Format),
+ (viaOverlayGetSrcStartAddress), (viaOverlayHQVCalcZoomHeight),
+ (viaOverlayGetFetch), (viaOverlayGetDisplayCount), (rangeEqualize),
+ (vPackFloat), (viaCalculateVideoColor):
+ * programs/Xserver/hw/xfree86/drivers/via/via_overlay.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_priv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_refresh.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regrec.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regrec.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_saa7108.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_shadow.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ (VIAVidHWDiffInit), (viaSetColorSpace), (ViaInitVideoStatusFlag),
+ (ViaSetVidCtl), (ViaVideoRegWrite), (VIAVidCreateSurface),
+ (VIAVidLockSurface), (VIAVidDestroySurface), (Upd_Video),
+ (VIAVidUpdateOverlay):
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_tuner.c:
+ (ViaAudioSelect):
+ * programs/Xserver/hw/xfree86/drivers/via/via_tv2.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_tv3.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_utility.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_utility.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vbe.c:
+ (ViaVBEGetActiveDevice), (ViaVBEGetDisplayDeviceInfo),
+ (ViaVBEGetDisplayDeviceAttached), (ViaVBEGetBIOSDate),
+ (ViaVBEGetBIOSVersion), (ViaVBEGetFlatPanelInfo),
+ (ViaVBEGetTVConfiguration), (ViaVBEGetTVEncoderType),
+ (ViaVBEGetVideoMemSize), (ViaVBESetActiveDevice),
+ (ViaVBEGetModeInfo), (ViaVBEQueryModeList),
+ (ViaVBEQuerySupportedRefreshRate), (ViaVBESetDeviceRefreshRate),
+ (ViaVBESetFlatPanelState):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.c:
+ (ViaVgahwIn), (ViaVgahwOut), (ViaVgahwRead), (ViaVgahwWrite),
+ (ViaVgahwChange), (ViaCrtcChange), (ViaSeqChange), (ViaVgahwPrint):
+ * programs/Xserver/hw/xfree86/drivers/via/via_vgahw.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.c:
+ (DecideOverlaySupport), (viaResetVideo), (viaSaveVideo),
+ (viaRestoreVideo), (viaExitVideo), (viaInitVideo),
+ (viaSetupImageVideoG), (viaStopSWOVerlay), (viaStopVideoG),
+ (xv_to_tuner), (viaSetPortAttributeG), (viaGetPortAttributeG),
+ (viaPutImageG), (viaQueryImageAttributesG), (viaPutVideo):
+ * programs/Xserver/hw/xfree86/drivers/via/via_video.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_vt1622a.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.c:
+ (initViaXvMC), (cleanupViaXvMC), (stride), (size_yuv420),
+ (size_xx44), (mpegDisable), (ViaInitXVMC), (ViaCleanupXVMC),
+ (ViaXvMCCreateContext), (ViaXvMCCreateSurface),
+ (ViaXvMCCreateSubpicture), (ViaXvMCDestroyContext),
+ (ViaXvMCDestroySurface), (ViaXvMCDestroySubpicture),
+ (viaXvMCSetDisplayLock), (viaXvMCInitXv),
+ (viaXvMCInterceptXvAttribute), (viaXvMCInterceptXvGetAttribute),
+ (viaXvMCDisplayAttributes), (viaXvMCInterceptPutImage),
+ (viaXvMCPutImageSize):
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvmc.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_xvpriv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/videodev.h:
+
+ Sync via driver with unichrome (r26).
+ New features include: Asm videoblit; XvMC VLD support for
+ CLE266; Xv support for KM400; Panel activation by pci subsystem
+ id.
+ Some bugs were fixed, S3utility xv backend and support for
+ saa71xx, ch7xxx and FS45x tv/lvds encoders were removed, many
+ things were severely cleaned up. MMIO is exported read-only to
+ DRI for security.
+ Complete changelog (with author information) is available at
+ unichrome.sf.net.
+
+2004-10-19 Felix Kuehling <fxkuehl@gmx.de>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c:
+ (SavageSetVESAMode):
+ Fix a regression in the CrtOnly option. This was fixed in DRI CVS
+ once but must have been lost during the port to Xorg CVS.
+
+2004-10-19 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * config/cf/linux.cf:
+ * config/imake/imakemdep.h:
+ Enabling modules and DRI for Linux HPPA.
+ * programs/Xserver/os/Imakefile:
+ * programs/Xserver/os/hpsocket.c:
+ Removing hpsocket.c as it isn't used anywhere any more
+ (Bugzilla #1584).
+
+2004-10-18 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * fonts/encodings/large/gb18030-0.enc:
+ Added file that was missing from last commit.
+
+2004-10-18 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * fonts/encodings/large/Imakefile:
+ * fonts/encodings/large/big5.eten-0.enc:
+ * fonts/encodings/large/big5hkscs-0.enc:
+ * fonts/encodings/large/gb2312.1980-0.enc:
+ * nls/Compose/Imakefile:
+ * nls/Compose/zh_CN.gb18030:
+ * nls/Compose/zh_HK.big5:
+ * nls/Compose/zh_HK.big5hkscs:
+ * nls/XI18N_OBJS/Imakefile:
+ * nls/XI18N_OBJS/zh_CN.gb18030:
+ * nls/XI18N_OBJS/zh_HK.UTF-8:
+ * nls/XI18N_OBJS/zh_HK.big5:
+ * nls/XLC_LOCALE/Imakefile:
+ * nls/XLC_LOCALE/zh_CN.UTF-8:
+ * nls/XLC_LOCALE/zh_CN.gb18030:
+ * nls/XLC_LOCALE/zh_CN.gbk:
+ * nls/XLC_LOCALE/zh_HK.UTF-8:
+ * nls/XLC_LOCALE/zh_HK.big5hkscs:
+ * nls/XLC_LOCALE/zh_TW.UTF-8:
+ * nls/compose.dir:
+ * nls/locale.alias:
+ * nls/locale.dir:
+ Correcting font encodings for GB18030, GBK and BIG5-HKSCS.
+ Adding nls support for those encodings (Bugzilla 1573, James Su).
+
+2004-10-18 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RADEONSetupRenderByteswap):
+ Fixing one of the infamous
+ 'control reaches end of non void function problems'.
+
+2004-10-18 Egbert Eich <eich-at-freedesktop-dot-xorg>
+
+ * config/cf/Imake.cf:
+ * config/cf/linux.cf:
+ * config/cf/xfree86.cf:
+ * config/cf/xorg.cf:
+ * config/imake/imakemdep.h:
+ powerpc/powerpc64 build fixes.
+
+2004-10-18 Egbert Eich <eich-at-freedesktop-dot-xorg>
+
+ * config/cf/xorg.cf:
+ Made handling of DevelDrivers for x86-64 more conformant
+ to other platforms.
+
+ * fonts/encodings/Imakefile:
+ Compress all font encodings (Stefan Dirsch).
+
+ * lib/SM/sm_manager.c: (_SmsProtocolSetupProc):
+ Fixed warnings.
+
+ * lib/X11/imRm.c:
+ Turn on forwarding XNSpotLocation event to XIM server in
+ OffTheSpot and Root mode (bugzilla #1580, James Su).
+
+ * nls/Compose/en_US.UTF-8:
+ Added another compose key combination for the Euro symbol
+ (Stefan Dirsch).
+
+ * nls/compose.dir:
+ Added support for UTF-8 in ja_JP, ko_KR and zh_TW locales
+ (Mike Fabian).
+
+ * nls/locale.alias:
+ Changed default encoding for ru from KOI8-R to ISO8859-5
+ (Mike Fabian).
+ This is the encoding that is also used by glibc. We may
+ break other libcs - lets see who complains.
+
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Added explanation for DESTDIR to install to a different directory
+ than /.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c: (ATIProbe):
+ Added some early bailouts to atiprobe if PCI structure pointer is
+ NULL to prevent sig11.
+
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx1_video.c:
+ (GX1InitVideo), (GX1ResetVideo), (GX1StopVideo),
+ (GX1SetPortAttribute), (GX1DisplayVideo), (GX1BlockHandler):
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_video.c:
+ (GX2InitVideo), (GX2ResetVideo), (GX2StopVideo),
+ (GX2SetPortAttribute), (GX2DisplayVideo), (GX2BlockHandler):
+ XV support doesn't depend on 2D acceleration any more. This patch
+ removes this limitation from the NSC driver. This is a patch that
+ I have committed to XFree86 a while ago but never ported over to
+ X.Org. Matthieu Herrb contributed some build fixes.
+
+ * programs/Xserver/os/WaitFor.c:
+ Fixing SetDPMSTimers() so that DPMS*Time == 0 disables the
+ appropriate timer. This takes advantage of the fact that
+ TimerSet() with a timeout argument 0 behaves like TimerCanel().
+
+ * programs/xconsole/xconsole.c: (OpenConsole), (get_pty):
+ Use /dev/xconsole (named pipe) or devpts for system logger
+ (Werner Fink).
+
+ * programs/xkbcomp/rules/Imakefile:
+ Create missing links for backward compatibility to XFree86
+ (Stefan Dirsch).
+
+ * programs/xkbcomp/symbols/inet:
+ Changed comment to mention xorg.
+
+ * programs/xkill/xkill.c: (get_window_id):
+ Changed cursor for the 'kill' action from XC_draped_box to
+ XC_Pirate. If you don't like it we can change it back
+ (original author unknown).
+
+ * programs/xman/vendor.h:
+ Added 'pic' to the man page rendering command pipeline
+ (Werner Fink).
+
+ * programs/xrx/helper/helper.c:
+ Added missing return value (Stefan Dirsch, Roland Mainz)
+
+
+2004-10-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_tex.c:
+ (convertPalette):
+ Bug #1108: abort if no palette format matches. (Already in upstream
+ Mesa)
+
+2004-10-17 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xset/Imakefile
+ * xc/programs/xset/xset.c
+ Bugzilla #1659: Fix Imakefile bug which caused the Xprint support
+ in "xset" not being build.
+
+2004-10-17 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ - Fix DFP detection in r128 driver (bug 1386, Klaus Kusche)
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ (MouseCommonOptions):
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.man:
+ - Fix EmulateWheelInertia defaults (bug 1115, Andrew Pimlott)
+
+2004-10-17 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/s3/s3_driver.c: (S3PreInit),
+ (S3ModeInit):
+ - Add interlaced support to S3 driver (bug 332, Leo Savernik)
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c:
+ (MouseCommonOptions), (MouseProc), (MouseDoPostEvent):
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.man:
+ * programs/Xserver/hw/xfree86/os-support/xf86OSmouse.h:
+ - EmulateWheelTimeout (bug 323, Mathias Fröhlich)
+ - single button double-click (bug 322, Rob Brown)
+
+2004-10-17 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ On my Inspiron 8600 both internal and external ports are
+ marked DAC_PRIMARY in BIOS. So be extra careful - only
+ swap when the first port is not DAC_PRIMARY
+
+2004-10-17 Alex Deucher <agd5f@yahoo.com>
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.man
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c
+ - Add Thomas' latest sis MergedFB enhancements to the radeon driver
+
+2004-10-17 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/os/access.c: (CheckAddr):
+ * programs/Xserver/os/connection.c: (AuthAudit),
+ (ClientAuthorized):
+ Remove some remaining AMOEBA specific code.
+
+2004-10-16 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSetGBD), (SavageSetGBD_Twister), (SavageSetGBD_3D),
+ (SavageSetGBD_PM), (SavageSetGBD_2000):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitStreams2000), (SavageStreamsOn):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (SavageClipVWindow), (SavageInitVideo), (SavageSetColorKey2000),
+ (SavageSetColor2000), (SavageSetupImageVideo),
+ (SavageDisplayVideoNew), (SavageDisplayVideo2000):
+ - fix savage2000, savage3D
+ - attempt to fix Xv on savage2000 (still not there yet)
+
+2004-10-15 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/attributes.c
+ Bugzilla #1647: Fix the problem that |XpSubmitJob()| returns
+ a random value (patch by Stefan Dirsch/SuSE).
+
+2004-10-15 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/PsColor.c
+ Bugzilla #1646: Fix the problem that |PsCreateColormap()| returns
+ a random value (patch by Stefan Dirsch/SuSE).
+
+2004-10-15 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Oid.c
+ Bugzilla #1637: Fix problems in oid code which may cause the
+ usage of an invalid string pointer (original patch by Egbert Eich).
+
+Thu Oct 14 20:43:03 2004 Søren Sandmann <sandmann@redhat.com>
+
+ * programs/xmodmap/pf.c (process_line): Fix a
+ write-to-constant-string issue.
+ * programs/xmodmap/xmodmap.c (main): Fix several buffer overruns.
+
+2004-10-14 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/os-support/misc/BUSmemcpy.S:
+ Bug #1628: Convert xf86{BusToMem,MemToBus} to PIC code, eliminating
+ a text relocation and enabling the server to be built as a
+ position-independent executable. (PaX Team)
+
+2004-10-14 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/pcl/PclInit.c
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ Bugzilla #1629: Fix crash on AMD64, regression caused by bug
+ 1496 ("Xorg Xprt does not support "*xp-listfonts-mode:
+ xp-list-internal-printer-fonts" to toggle the usage of
+ printer-builtin fonts").
+
+2004-10-04 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ * xc/programs/Xserver/hw/xfree86/drivers/i2c/fi1236.h
+ Squash annoying warning about fi1236_dump_status
+
+2004-10-13 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Imakefile
+ Bugzilla #1372: Fix build bustage in Broadway/XRX code when
+ Xaw8 is not available.
+
+2004-10-13 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/xdm/sessreg.c:
+ Bug #1627: Zero out struct utmp before writing it to prevent garbage
+ fields. (Egmont Koblinger)
+
+2004-10-13 Alexander Gottwald <ago@freedesktop.org>
+
+ * config/cf/Imakefile:
+ Bugzilla #1621, Bugzilla #1393: Add xorgversion.def to files to
+ install
+
+2004-10-13 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/X11/UIThrStubs.c:
+ Use attributes instead of pragmas for weak symbols on gcc 2.95 as well.
+ Using pragmas may result in the symbols being undefined with big -O.
+ (FreeBSD ports/69708, Masakazu HIGAKI <higamasa@dream.com>)
+
+2004-10-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xman/print.c
+ * xc/programs/xmore/print.c
+ * xc/programs/xphelloworld/xpawhelloworld/xpawhelloworld.c
+ Bugzilla #1601: Fix problems with wrong page counts in xedit&co.
+ when a global "*geometry" resource was overriding the internal
+ geometry management used by XawPrintShell(=usually adjust to
+ current page size, the resource was turning this into a static
+ value).
+
+2004-10-12 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ Set fbdev mode as the default mode on PPC (Olaf Hering).
+
+ * programs/xkbcomp/rules/xorg:
+ * programs/xkbcomp/rules/xorg.lst:
+ * programs/xkbcomp/rules/xorg.xml:
+ * programs/xkbcomp/symbols/inet:
+ Added support for IBM space saver keyboard (Stefan Dirsch).
+ Added support for Cherry CyMotion Master XPress (Marcus Schaefer).
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:
+ (I830BIOSLeaveVT):
+ Change order of SetDisplayDevice(), HWRestore(), UnbindGART()
+ and RestoreBIOSMemSize() to be exactly opposite to the Save
+ procedure in EnterVT() (Matthias Hopf, Alan Hourihane).
+
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c: (NVDACSave):
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c: (NVRestore),
+ (NVSave):
+ Fix text mode restauration by removing the assumption that
+ the register which determines which head is programmed is set.
+ to the active head by the BIOS (Mark Vojkovich).
+
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ When I wrote the resource code 5 years ago I made some assumptions
+ which turned out to be false:
+ I've assumed that the bus number of the PCI hostbridge would be
+ the PCI bus the bridge links to. This is not correct. Fixing this
+ assumption is not easy.
+ However I hope that the attached patch will make the system work
+ regardless as it 'ignores' host bridges from which the target bus
+ is not known. This should not matter at all as we really don't
+ care about host bridges (unless we have bridge specific code
+ which retrieves information about the bridge).
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810PreInit), (I810ScreenInit)
+ Fixed server crash on reset when a structure allocated in
+ PreInit() was freed on CloseScreen().
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810ScreenInit):
+ Fixed ring buffer lock ups that happened because the structure
+ that contained ringbuffer data was not zeroed after allocation.
+ * programs/Xserver/hw/xfree86/drivers/i810/common.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c:
+ (I810DRIScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810MapMem):
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c:
+ (I810AllocLow), (I810AllocHigh):
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830.h:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:
+ (I830MapMem), (SetRingRegs), (I830VESASetMode),
+ (I830BIOSSaveScreen):
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c:
+ (AllocFromPool), (AllocFromAGP), (I830AllocVidMem),
+ (I830Allocate2DMemory), (I830GetExcessMemoryAllocations),
+ (MakeTiles):
+ Fixed numerous warnings due to signed unsigned comparisons.
+ programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ (NVBacklightEnable):
+ Changed the order in which the sequencer registers and
+ the backlight control registers are written. The sequencer
+ control register need to be written first otherwise DPMS
+ screen blanking produces vertical bars on a mobile device.
+ lib/Xau/Imakefile:
+ Build libXau static library PIC so it can be linked into
+ toolkits that would like to wrap its functionality.
+
+2004-10-11 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONEnterVT):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_i2c.c:
+ (SavageI2CPutBits), (SavageI2CGetBits):
+ - fix resume on radeons (bug 1220)
+ - clean up some old cruft in the savage i2c code
+
+2004-10-11 Egbert Eich <eich-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Events.c: (xf86VTSwitch):
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (AbortDDX):
+ Improving DPMS handling on VT swich and server
+ termination/abort: previous version called the driver directly and
+ too late.
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONInitCrtc2Registers):
+ Unblank secondary screen explicitely. Don't rely on the value
+ read during register save as the BIOS have blanked the secondary
+ head.
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c:
+ (I810Sync):
+ Checking if server isn't switched away before calling sync.
+ Sanity check for possible bugs in aother areas of the code.
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810PreInit):
+ Fixing default amount of of allocated video memory from
+ AGP for i810: Use 16MB if less than 192MB are installed
+ else use 24MB (Matthias Hopf).
+
+2004-10-10 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (SavageSetupImageVideo), (SavageSetPortAttribute),
+ (SavageGetPortAttribute), (SavageDisplayVideoOld):
+ Turn off vertical interpolation on "old" engines by default.
+ It's bandwidth intensive and causes artifacts on one of my
+ savage4s. I added an Xv attribute, XV_VERTICAL_INTERPOLATION,
+ so users can turn it on and off on the fly.
+
+2004-10-10 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitStreamsOld):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (SavageDisplayVideoOld):
+ Fix Xv on savages with "old" streams engine. Streams FIFO reg does
+ not need to be set if you are doing vertical interpolation.
+ Setting the FIFO reg is only required when doing line doubling.
+
+2004-10-10 Alexander Gottwald <ago@freedesktop.org>
+
+ * fonts/bdf/100dpi/Imakefile:
+ * fonts/bdf/75dpi/Imakefile:
+ Bugzilla #1560: Fix build of lucida fonts which were broken since
+ 6.8.0
+
+2004-10-10 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/Xext/saver.c
+ Fix for XFree86 bugzilla #1224.
+ * lib/lbxutil/lbx_zlib/Imakefile
+ Don't mix in-tree libz headers and external libz
+ (Problem reported by Marc Espie on OpenBSD lists).
+ * config/cf/OpenBSDLib.tmpl
+ Fix shared libXaw revision numbers for OpenBSD 3.6.
+
+2004-10-09 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/Imake.tmpl:
+ * config/cf/OpenBSD.cf:
+ * config/cf/xf86.tmpl:
+ * config/cf/xorg.tmpl:
+ * config/imake/imake.c: (get_stackprotector):
+ Fix ProPolice support for OpenBSD (merge with the
+ HasGccStackProtector define that was used on OpenBSD).
+ * config/cf/OpenBSD.cf:
+ remove -ansi from DefaultCCOptions on OpenBSD.
+
+Fri Oct 8 18:53:11 2004 Soeren Sandmann <sandmann@redhat.com>
+
+ * nls/XLC_LOCALE/en_US.UTF-8: Move iso10646 last so the "fallback"
+ fonts will actually be used if they are better matches.
+
+2004-10-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/docbook/docbookconv.sh
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.html
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+ * xc/programs/Xserver/Xprint/Xprint.html
+ * xc/programs/Xserver/Xprint/Xprint.man
+ * xc/programs/Xserver/Xprint/Xprint.sgml
+ * xc/programs/xlsfonts/xlsfonts.man
+ * xc/programs/xlsfonts/xlsfonts.sgml
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.html
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.man
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.sgml
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.html
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.man
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.sgml
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.html
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.man
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.sgml
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.html
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.man
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.sgml
+ * xc/programs/xplsprinters/xplsprinters.html
+ * xc/programs/xplsprinters/xplsprinters.man
+ * xc/programs/xplsprinters/xplsprinters.sgml
+ * xc/programs/xprehashprinterlist/xprehashprinterlist.man
+ * xc/programs/xprehashprinterlist/xprehashprinterlist.sgml
+ Bugzilla #1557: Update DocBook SGML+XML manual pages and docmentation
+ and the in-tree copies of the generated files (*.man, *.html) to
+ get them properly working with newer versions of the tools within the
+ Xorg tree.
+
+2004-10-07 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ Remove redundant and incorrect line.
+
+2004-10-07 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/applewm.c:
+ (AppleWMDoReorderWindow), (ProcAppleWMDispatch),
+ (SProcAppleWMQueryVersion), (SProcAppleWMDispatch):
+ * programs/Xserver/hw/darwin/quartz/applewmExt.h:
+ * programs/Xserver/hw/darwin/quartz/cr/crFrame.m:
+ (CRDoReorderWindow):
+ * programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c:
+ (xprDoReorderWindow):
+ * programs/Xserver/miext/rootless/rootless.h:
+ * programs/Xserver/miext/rootless/rootlessWindow.c:
+ (RootlessReorderWindow):
+ Allow rootless implementations to override frame reordering. This is
+ used on Mac OS X when genie-restoring from the Dock to ensure that the
+ animation completes before drawing the frame.
+
+2004-10-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xlsfonts/Imakefile
+ * xc/programs/xlsfonts/xlsfonts.c
+ * xc/programs/xlsfonts/xlsfonts.man
+ * xc/programs/xlsfonts/xlsfonts.sgml
+ * xc/programs/xplsprinters/xplsprinters.html
+ * xc/programs/xplsprinters/xplsprinters.man
+ * xc/programs/xplsprinters/xplsprinters.sgml
+ Bugzilla #1551: Convert "xlsfonts" manual page to DocBook
+ format (and document the new functionality introduced
+ with bug #1518).
+
+2004-10-06 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSetGBD), (SavageInitAccel):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIAgpInit), (SAVAGEDRIFinishScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ Require tiled mode for 3D
+
+2004-10-06 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIFinishScreenInit):
+ Fix glDrawPixels on supersavage
+
+2004-10-06 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xlsfonts/Imakefile
+ * xc/programs/xlsfonts/dsimple.c
+ * xc/programs/xlsfonts/dsimple.h
+ * xc/programs/xlsfonts/xlsfonts.c
+ Bugzilla #1518: Add filter support to "xlsfonts" that it can
+ filter builtin-, glyph- and/or other kinds of printer fonts
+ (controlled by the xp-listfonts-modes attribute as described
+ in the CDE DtPrint and Xprint specifications).
+
+2004-10-05 Adam Jackson <ajax@freedesktop.org>
+
+ * extras/Mesa/src/mesa/drivers/dri/common/dri_util.c:
+ * lib/GL/glx/glxext.c:
+ Bug #1501: More complete fix for libglx bugs. (Egbert Eich, Matthias
+ Hopf)
+
+2004-10-05 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavageEntPriv):
+ move this function outside of #ifdef XFree86LOADER.
+
+2004-10-05 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Make xorgconfig ask again instead of giving up and throwing
+ away all your answers when you give a bad file name or bad
+ amount of video RAM. (Sun bug id 5070654, Xorg bugzilla #1813
+ - fix from Derek Wang of Sun)
+
+2004-10-04 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/theatre.h
+ Patch from Matthieu Herrb - fix compilation with
+ DoLoadableServer=NO
+
+2004-10-04 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/Imakefile
+ Apply patch from Matthieu Herrb - fix for my inexpert
+ attempt to hook up i2c driver subdirectory
+
+2004-10-04 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ Correct radeon man page, IGP is supported for 3D but R400 is not.
+
+2004-10-04 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/drivers/chips/chips.man:
+ * programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.man:
+ Manual pages fixes (XFree86 bugzilla #1487, Nicolas Joly).
+
+2004-10-04 Alexander Gottwald <ago@freedesktop.org>
+
+ * xc/config/cf/xorg.cf, xc/config/cf/cygwin.cf:
+ * xc/config/xorgversion.def:
+ Bugzilla #1393: Move xorg version numbers to separate config file
+
+2004-10-04 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ Do not probe for Rage Theatre if no multimedia table is present
+ and no parameters have been specified.
+
+2004-10-04 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ This is really embarassing - I found a part of code that had
+ <cr> at the end of the lines. I am certain I never saw it
+ before - talk about code rot !
+
+2004-10-03 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/psout.c
+ Bugzilla #661: Xprt producing spurious characters in PS
+ output when using the bitmap cache (Originally reported
+ against Solaris Xprt as Sun bug id #4369307, and
+ fixed in Solaris by Jay Hobson <jay.hobson@sun.com>).
+
+2004-10-03 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/ps/Ps.h
+ * xc/programs/Xserver/Xprint/ps/PsArea.c
+ * xc/programs/Xserver/Xprint/ps/PsColor.c
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ * xc/programs/Xserver/Xprint/ps/psout.c
+ * xc/programs/Xserver/Xprint/ps/psout.h
+ Bugzilla #1299: Add more visuals to the Postscript DDX (8bit
+ GrayScale/StaticGray, 1bit StaticGray and the basic
+ infratructure for "deep" visuals with more than 8bits per RGB
+ gun).
+
+2004-10-03 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c
+ Remove debugging statement that cause loading of DLL modules
+ to fail.
+
+2004-10-03 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/pcl/PclInit.c
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ Bugzilla #1496: Fixed Xprt font handling which did not support
+ "*xp-listfonts-modes: xp-list-internal-printer-fonts" or
+ "*xp-listfonts-modes: xp-list-glyph-fonts" to toggle
+ the usage of printer-builtin and glyph fonts in XListFonts*(),
+ XLoad*Font(), etc.
+ Additionally the Xprint DDX now explicitly list "xp-listfonts-modes"
+ in "document-attributes-supported" (for document-level) or
+ "xp-page-attributes-supported" (for page-level) when the DDX implements
+ this feature (as described in the CDE DtPrint and Xprint
+ specifications).
+
+2004-10-03 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * doc/man/Xt/XtManChild.man:
+ * doc/man/Xt/XtName.man:
+ Xt Manual pages fixes from Dmitry Bolkhovitanov
+ (Bugzilla #1498, $1499).
+
+2004-10-03 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/PsGC.c
+ * xc/programs/Xserver/Xprint/ps/PsPixmap.c
+ Bugzilla #1416: Fix Xprt PostScript DDX crashes when copying
+ offscreen pixmap content to the same pixmap (the crash can
+ be reproduced with % x11perf -copypixpix500 ... # or the
+ reduced testcase in bug #1416 (attachment #993)).
+
+2004-10-03 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/i2c/fi1236.c
+ Make sure formatting style is consistent within a single
+ function. MT2032 functions are best be in separate file
+ anyway.
+
+2004-10-03 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ Fix compilation with gcc 3.4.x (patch by Ronny V. Vindenes)
+
+2004-10-03 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/i2c/fi1236.c
+ Fix compilation with gcc 3.4.x
+ Cleanup xf86DrvMsg noise.
+
+2004-10-02 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.[c,h]
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/theatre.c
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h
+ Port the rest of GATOS Radeon-specific code.
+ Remove "checkpoint" noise from logs.
+ Test with AIW Radeon 7500
+
+2004-10-02 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.[c,h]
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/theatre.c
+ Detect and initialize Rage Theatre (RT100)
+
+2004-10-02 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.[c,h]
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/theatre_reg.h
+ New:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_vip.c
+ Add VIP bus access code, hook it into initialization system.
+
+2004-10-02 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
+ New:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/theatre*
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/generic_bus.h
+ Add Rage Theatre (RT100) module code and hook it into the
+ build system
+
+2004-10-02 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/config/cf/xorg.cf
+ Update version number and date, indicating CVS version
+ This needs to be changed regularly as releases are made
+
+2004-10-01 Vladimir Dergachev <volodya@mindspring.com>
+
+ Modified:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
+ New:
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.h
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_mm_i2c.c
+ Add code to access and initialize multimedia i2c bus.
+ Hook it up.
+
+2004-10-01 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/glxgears/Imakefile
+ * xc/programs/glxgears/glxgears.c
+ Bugzilla #382: Timing patch for glxgears to rotate smoothly.
+
+2004-10-01 Vladimir Dergachev <volodya@mindspring.com>
+
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h
+ Add more multimedia registers
+
+2004-10-01 Vladimir Dergachev <volodya@mindspring.com>
+
+ * xc/programs/Xserver/hw/xfree86/drivers/i2c/*_module.c
+ Change version strings to XORG.
+
+2004-10-01 Vladimir Dergachev <volodya@mindspring.com>
+
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h
+ Add TV-in specific options. Add TV-in specific fields to
+ radeon per-screen structure, add code to initialize them.
+ Preserve MM_TABLE (instead of whole VBIOS as was done in
+ GATOS drivers)
+
+2004-09-30 Vladimir Dergachev <volodya@mindspring.com>
+
+ * xc/programs/Xserver/hw/xfree86/drivers/i2c/*
+ * xc/programs/Xserver/hw/xfree86/drivers/Imakefile
+ Import GATOS I2C drivers and hook them into the build system
+
+2004-09-30 Nolan <nolan@vmware.com>
+
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmwarexaa.c:
+ (RGBPlusAlphaChannelToPremultipliedRGBA):
+ Bugfix for Alpha Texture acceleration from Constantine Sapuntzakis.
+
+2004-09-30 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/GL/glx/glxext.c:
+ Bug #1501: Fix a double-free in libglx. (Egbert Eich)
+
+2004-09-30 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (GetTileAperturePitch), (SavageSetGBD_Twister), (SavageSetGBD_M7),
+ (SavageSetGBD_PM), (SavageRestoreAccelState):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h:
+ Portability fixes from Matthieu Herrb (bug 1409)
+
+2004-09-30 Alex Deucher <agd5f@yahoo.com>
+
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSetGBD_M7), (SavageSetGBD_PM), (SavageRestoreAccelState),
+ (SavageInitAccel):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c:
+ (SavageShowCursor), (SavageHideCursor), (SavageLoadCursorImage),
+ (SavageSetCursorPosition), (SavageSetCursorColors):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavageEntPriv), (SavageProbe), (SavageDoDDC),
+ (SavageGetPanelInfo), (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitStreamsOld), (SavageInitStreamsNew), (SavageStreamsOn),
+ (SavageStreamsOff):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c:
+ (SavageSetVESAModeCrtc1), (SavageSetVESAModeCrtc2),
+ (SavageSetVESAMode), (SavageMatchBiosMode):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (SavageClipVWindow), (SavageInitVideo), (SavageSetColorKeyNew),
+ (SavageSetColorNew), (SavageSetBlend), (SavageDisplayVideoNew):
+ Add Dualhead support for mobile savage chips (MX, IX, supersavage)
+
+2004-09-29 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/xman/search.c: (DoSearch):
+ Avoid several buffer overflows if search string is too long.
+ Bugzilla #1481.
+
+2004-09-29 Alexander Gottwald <ago@freedesktop.org>
+
+ * xc/lib/Imakefile:
+ Bugzilla #920: fix undefined references in libdpstkXm
+ build psres before dpstk
+ * xc/lib/dpstk/Imakefile:
+ Bugzilla #920: fix undefined references in libdpstkXm
+ Link libdpstkXm with MOTIFLIB, DPSTKLIB and PSRESLIB
+
+2004-09-29 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/os/utils.c
+ Bugzilla #1489: Use |long| instead of |int| for BIGREQUESTS
+ commandline option.
+
+2004-09-28 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/Imakefile:
+ Remove more xf24_32bpp references.
+
+2004-09-26 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/OpenBSD.cf:
+ Hook the wsfb driver and resynchonize with OpenBSD's version.
+ * programs/Xserver/hw/xfree86/drivers/wsfb/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/wsfb/wsfb.man:
+ * programs/Xserver/hw/xfree86/drivers/wsfb/wsfb_driver.c:
+ Add wsfb, a Net- and OpenBSD specific driver for dumb bitmapped
+ wsdisplay screens.
+
+2004-09-26 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ Bug #1468: Add xorgVersion.h to the SDK (Bernhard Rosenkraenzer).
+
+2004-09-26 Thomas Hellström <unichrome-at-shipmail-dot-org>
+
+ * include/extensions/Imakefile:
+ * include/extensions/vldXvMC.h:
+ * lib/XvMC/Imakefile:
+ * lib/XvMC/wrapper/Imakefile:
+ * lib/XvMC/wrapper/XvMCWrapper.c:
+ Added the XvMC wrapper. First support for runtime loading of
+ hardware-specific XvMC libraries.
+
+2004-09-26 Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
+
+ * doc/specs/XProtocol/X11.keysyms
+ * include/keysymdef.h
+ Big keysym cleanup (Bug #246):
+ - added Unicode keysym range to the protocol spec
+ - added Unicode mappings for the legacy keysyms to the spec
+ - moved some new non-spec keysyms from XFree86 to Unicode keysym range
+ - editorial changes to keysym spec
+ * lib/X11/util/makekeys.c
+ * lib/X11/KeysymStr.c
+ * lib/X11/StrKeysym.c
+ - support for full 29-bit keysyms (was: 16-bit only)
+ * lib/X11/KeyBind.c
+ - removed support for non-spec keysyms from XFree86 (superseeded
+ by corresponding Unicode keysyms)
+
+2004-09-24 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/Xext/MITMisc.c:
+ * lib/Xext/XAppgroup.c:
+ * lib/Xext/XEVI.c:
+ * lib/Xext/XLbx.c:
+ * lib/Xext/XMultibuf.c:
+ * lib/Xext/XShape.c:
+ * lib/Xext/XShm.c:
+ * lib/Xext/XSync.c:
+ * lib/Xext/XTestExt1.c:
+ * lib/Xext/Xcup.c:
+ * lib/Xext/Xdbe.c:
+ * lib/Xext/extutil.c:
+ Bug #1434: Convert lib/Xext to ANSI function prototypes (Jeff
+ Muizelaar).
+
+2004-09-24 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/os/utils.c
+ Bugzilla #1453: Fix spaces in usage output for BIGREQUESTS
+ extension (option "-maxbigreqsize").
+
+2004-09-23 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/savage/Imakefile:
+ Bugs #1444, #1449: 'make install.sdk' fixes from Bernhard
+ Rosenkraenzer.
+
+2004-09-23 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ark/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/chips/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/glide/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/glint/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/mga/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/savage/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/sis/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/tseng/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/vesa/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/voodoo/Imakefile:
+ Remove xf24_32bpp references from driver Imakefiles.
+
+2004-09-23 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSetGBD_Twister), (SavageSetGBD_M7):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ (SAVAGEDRIFinishScreenInit):
+ Small cleanups and corrections
+
+2004-09-22 Torrey Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/XDarwin.pbproj/project.pbxproj:
+ Update XDarwin project file to Xcode 1.5 format.
+ * programs/Xserver/hw/darwin/quartz/quartzStartup.c:
+ (DarwinModeProcessArgument):
+ Remove unused QUARTZ_SAFETY_DELAY code.
+
+2004-09-22 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/darwin.c: (DarwinParseModifierList),
+ (ddxProcessArgument):
+ * programs/Xserver/hw/darwin/darwin.h:
+ * programs/Xserver/hw/darwin/darwinEvents.c:
+ (DarwinPressModifierMask), (DarwinEQEnqueue),
+ (DarwinEQSwitchScreen), (ProcessInputEvents):
+ * programs/Xserver/hw/darwin/darwinKeyboard.c:
+ (DarwinParseNXKeyMapping), (DarwinBuildModifierMaps),
+ (DarwinLoadKeyboardMapping), (DarwinKeyboardInit), (InitModMap),
+ (DarwinKeyboardReload):
+ * programs/Xserver/hw/darwin/darwinKeyboard.h:
+ * programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c:
+ (DarwinModeSystemKeymapSeed):
+ * programs/Xserver/hw/darwin/quartz/quartzKeyboard.c:
+ (DarwinModeSystemKeymapSeed):
+ Add option for XDarwin to track system keyboard layout changes as
+ they occur (John Harper and Torrey T. Lyons).
+
+2004-09-22 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/quartzAudio.c:
+ (QuartzCoreAudioBell), (QuartzAudioInit):
+ Warning fixes.
+
+2004-09-22 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/dix/globals.c:
+ Allow overriding DPMS defaults (timeouts & default for on/off) from
+ #defines/-D options.
+ * programs/Xserver/hw/xfree86/common/xf86DPMS.c
+ Use defaultDPMSEnabled global for the default state of DPMS if not
+ set in any config files.
+ * programs/Xserver/hw/xfree86/os-support/sunos/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/sunos/solaris-sparcv8plus.S
+ Add support for required assembly inline functions for Sun compilers
+ on Solaris/sparc.
+ * programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl:
+ Add support for Solaris/sparc libraries.
+
+2004-09-22 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/input/elographics/xf86Elo.c:
+ Bug #506: Fix pointer behaviour when using multiple Elographics
+ touchscreens, from Miroslav Halas.
+
+2004-09-22 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/XvMC/hw/i810/I810XvMC.c:
+ * programs/Xserver/hw/xfree86/common/xf86Helper.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c:
+ * programs/Xserver/hw/xfree86/input/citron/citron.c:
+ Bug #1252, #1253, #1255, #1256: Various typo fixes from Dave Jones.
+
+2004-09-21 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/GL/apple/indirect.c: (glAquaDestroyContext),
+ (glAquaLoseCurrent), (surface_notify), (attach),
+ (glAquaMakeCurrent), (glAquaForceCurrent), (makeFormat),
+ (init_visuals), (glAquaInitVisuals):
+ * programs/Xserver/hw/darwin/quartz/xpr/dri.c: (DRIExtensionInit),
+ (DRIUpdateSurface), (DRICreateSurface), (DRIDestroySurface),
+ (DRIDrawablePrivDelete), (DRIWindowExposures), (DRICopyWindow),
+ (DRIClipNotify), (DRISurfaceNotify):
+ * programs/Xserver/hw/darwin/quartz/xpr/dri.h:
+ * programs/Xserver/hw/darwin/quartz/xpr/dristruct.h:
+ Add offscreen GLX direct rendering with XDarwin's xpr backend (John
+ Harper).
+
+2004-09-21 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atibank.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atibus.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atichip.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/aticlock.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/aticursor.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atidac.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atidga.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atidri.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atidripriv.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atidsp.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atifillin.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atii2c.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiident.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiload.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atilock.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimode.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atioption.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiprint.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiproto.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiutil.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/ativalid.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/ativga.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atividmem.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atixv.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h:
+ Convert the ATI drivers to ANSI function prototypes.
+
+2004-09-21 Egbert Eich <eich-at-freedesktop-org>
+
+ * BUILD:
+ * extras/Xpm/lib/Attrib.c:
+ * extras/Xpm/lib/CrDatFrI.c:
+ * extras/Xpm/lib/WrFFrI.c:
+ * extras/Xpm/lib/XpmI.h:
+ * extras/Xpm/lib/create.c:
+ * extras/Xpm/lib/data.c:
+ * extras/Xpm/lib/hashtab.c:
+ * extras/Xpm/lib/parse.c:
+ * extras/Xpm/lib/scan.c:
+ * lib/Xpm/Imakefile:
+ Merged over libXpm security fix provided by Chris Evans,
+ Matthieu Herrb and Alan Coopersmith from release 6.8.1.
+
+ * lib/Xaw/AsciiSink.c: (XawAsciiSinkInitialize):
+ * lib/Xaw/Label.c: (XawLabelInitialize), (XawLabelSetValues):
+ * lib/Xaw/List.c: (XawListInitialize):
+ * lib/Xaw/MultiSink.c: (XawMultiSinkInitialize):
+ * lib/Xaw/SmeBSB.c: (XawSmeBSBInitialize):
+ * lib/Xaw/Tip.c: (XawTipInitialize):
+ * lib/Xaw/XawIm.c: (CreateIC), (SetICValues):
+ Fail during initialization with error if font/fontset is not
+ set for widget. This prevents a sig11 later when the non-existent
+ font/fontset structs are referenced.
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (AbortDDX):
+ Check if xf86Info.kbdProc pointer is really set before calling
+ it on abort as this pointer won't be set if the new modular
+ keyboard driver is used (Matthias Hopf).
+
+ * programs/Xserver/hw/xfree86/etc/bindist/Cygwin/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Darwin-ix86/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Darwin-ix86/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Darwin-ppc/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Darwin-ppc/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Interactive/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-amd64/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-amd64/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/LynxOS/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-aout-ix86/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-aout-ix86/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/Solaris/update-upd:
+ * programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list:
+ * programs/Xserver/hw/xfree86/etc/bindist/UnixWare/update-upd:
+ Added new libs to the bindist control files.
+
+ * programs/xedit/lisp/lisp.c:
+ Removed inclusion of unnecessary kernel header on Linux.
+ This may fail in an -ansi environment.
+
+
+2004-09-20 Alexander Gottwald <ago@freedesktop.org>
+
+ * programs/Xserver/Xext/xf86bigfont.c:
+ Bugzilla #1402: The last patch was broken on linux. Take definition
+ of badSysCall out of the OS specific block.
+
+2004-09-19 Alexander Gottwald <ago@freedesktop.org>
+
+ * programs/Xserver/Xext/xf86bigfont.c:
+ Bugzilla #1402: fix BigFont extension if SHM is compiled in but
+ not working. Does not access SHM and privates if the SHM syscall
+ failed during extension initialization.
+
+2004-09-19 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/i128/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/rendition/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/v4l/Imakefile:
+ More cfb cleanup, delete mfb/cfb/xf24_32bpp references from
+ Imakefiles of drivers that don't use them.
+
+2004-09-18 Felix Kuehling <fxkuehl@gmx.de>
+
+ * xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ Fixed segmentation fault: vbeFree after SavageWriteMode in
+ SavageCloseScreen.
+
+2004-09-18 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/dix/main.c
+ Bugzilla #1404: Fixing random crashes (like in DAMAGE code etc.)
+ in Xnest due uninitalised GetWindowPixmap.
+ Original patch by Alexander Gottwald <ago@freedesktop.org>
+
+2004-09-18 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/bsdLib.tmpl:
+ define dependencies for libXevie for *BSD systems.
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ fix spelling of my first name and remove duplicate.
+ * programs/xrx/xnest-plugin/XnestDis.c:
+ build fix.
+
+2004-09-17 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * xc/programs/Xserver/dix/Imakefile:
+ Fix bug that caused restacks to be optimized away in rootless mode.
+
+2004-09-17 Torrey T. Lyons <torrey@freedesktop.org>
+ * xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c:
+ * xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c:
+ * xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h:
+ Update Apple's list and hash utility routines to latest versions
+ (John Harper).
+
+2004-09-17 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/cr/crScreen.m:
+ (CRSetupScreen):
+ * programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c:
+ (xprSetupScreen):
+ * programs/Xserver/miext/rootless/accel/Imakefile:
+ * programs/Xserver/miext/rootless/accel/rlAccel.c: (rlCreateGC),
+ (RootlessAccelInit):
+ * programs/Xserver/miext/rootless/accel/rlAccel.h:
+ * programs/Xserver/miext/rootless/rootless.h:
+ * programs/Xserver/miext/rootless/rootlessGC.c: (RootlessCreateGC):
+ Bugzilla #1032: Make rootless acceleration functions compatible with
+ Damage.
+
+2004-09-17 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/programs/xrx/Imakefile
+ * xc/programs/xrx/plugin/Imakefile
+ * xc/programs/xrx/plugin/Main.c
+ * xc/programs/xrx/plugin/PProcess.c
+ * xc/programs/xrx/xnest-plugin/Imakefile
+ * xc/programs/xrx/xnest-plugin/NewNDest.c
+ * xc/programs/xrx/xnest-plugin/SetWin.c
+ * xc/programs/xrx/xnest-plugin/XnestDis.c
+ Bugzilla #1372: Initial part of repairing XRX/Broadway support.
+ This patch fixes both the libxrx.so plugin and the Xnest-based
+ libxrxnest.so plugin and making them compatible to newer versions
+ of Mozilla and removing the backwards compatibility hacks for old
+ Netscape3.x versions with statically linked Motif.
+
+2004-09-17 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/scripts/Imakefile
+ * xc/programs/scripts/xauth_switch_to_sun-des-1.cpp
+ Bugzilla #1407: Adding simple helper script which switches the current
+ user authentification from MIT-MAGIC-COOKIE-1 to SUN-DES-1 if this
+ authentification is available.
+
+2004-09-16 Eric Anholt <anholt@FreeBSD.org>
+
+ * extras/Mesa/src/mesa/tnl/t_vtx_x86_gcc.S:
+ Bugzilla #1079: Add missing check for CYGWIN for adding underscores to
+ symbol names in assembler. Merged upstream, and should be brought in in
+ the next import. (Alexander Gottwald)
+
+2004-09-16 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (R200SubsequentCPUToScreenTexture):
+ Bugzilla #1170: Fix an overcounting of DMA in BEGIN_RING that wasn't
+ harmful.
+ Bugzilla #1169: Add counting for BEGIN_RING/OUT_RING/ADVANCE_RING to
+ avoid these sorts of problems in the future.
+
+2004-09-16 Adam Jackson <ajax@freedesktop.org>
+
+ * config/cf/xorg.cf:
+ * programs/Xserver/hw/xfree86/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ * programs/Xserver/hw/xfree86/drivers/i128/i128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i740/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nsc/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx1_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/s3/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/s3/s3.h:
+ * programs/Xserver/hw/xfree86/drivers/s3/s3_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v.h:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi.h:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.h:
+ * programs/Xserver/hw/xfree86/drivers/via/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.h:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/Imakefile:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfb24_32.h:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfb24_32module.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbbstore.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbcpyarea.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbgc.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbgcmisc.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbpixmap.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbscrinit.c:
+ * programs/Xserver/hw/xfree86/xf24_32bpp/cfbwindow.c:
+ Bug #1192: Remove cfb support from drivers where its use is an option.
+ Delete xf24_32bpp, as s3virge was the last user. Fix up some comments
+ to refer to fb rather than cfb.
+
+2004-09-16 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageSetGBD), (SavageSetGBD_PM):
+ Proper GBD setup for savage2000
+
+2004-09-16 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ Update comment
+
+2004-09-16 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage.man:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (GetTileAperturePitch), (SavageInitialize2DEngine), (SavageSetGBD),
+ (SavageSetGBD_Twister), (SavageSetGBD_M7), (SavageSetGBD_PM),
+ (SavageSetGBD_2000), (SavageInitAccel),
+ (SavageSubsequentColor8x8PatternFillRect):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c:
+ (SavageHWCursorInit), (SavageShowCursor), (SavageHideCursor):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavageSetup), (WaitQueue4), (WaitIdleEmpty3D), (WaitIdleEmpty4),
+ (WaitIdleEmpty2K), (WaitIdle3D), (WaitIdle4), (WaitIdle2K),
+ (SavageProbe), (SavagePreInit):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_i2c.c:
+ (SavageI2CPutBits), (SavageI2CGetBits):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitSecondaryStream), (SavageInitStreamsOld),
+ (SavageInitStreamsNew), (OverlayTwisterInit),
+ (PatchEnableSPofPanel), (SavageStreamsOn), (SavageStreamsOff):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (SavageInitVideo), (SavageSetupImageVideo),
+ (SavageCopyPlanarDataBCI), (SavageDisplayVideoOld),
+ (SavagePutImage), (SavageQueryImageAttributes):
+ Merge Savage DDX from the DRI tree and fix conflicts
+
+2004-09-15 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/linux.cf
+ Bugzilla #1381: Enable SecureRPC code (used for goodies such as
+ the SUN-DES-1 user2user authentification scheme) on Linux if
+ glibc version is >= 6.3.2.
+
+2004-09-15 Egbert Eich <eich-at-freedesktop-org>
+ * programs/Xserver/hw/xfree86/os-support/bus/460gxPCI.c:
+ (xorgProbe460GX), (xf86PreScan460GX):
+ * programs/Xserver/hw/xfree86/os-support/bus/460gxPCI.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bus/e8870PCI.c:
+ (xorgProbeE8870), (xf86PreScanE8870):
+ * programs/Xserver/hw/xfree86/os-support/bus/e8870PCI.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/ia64Pci.c:
+ * programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c:
+ (xf86PreScanZX1):
+ * programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.h:
+ * programs/Xserver/hw/xfree86/os-support/linux/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_ia64.c:
+ (OS_PROBE_PCI_CHIPSET):
+ * programs/Xserver/hw/xfree86/os-support/shared/ia64Pci.c:
+ (ia64ScanPCIWrapper):
+ * programs/Xserver/hw/xfree86/os-support/shared/ia64Pci.h:
+ Adding support for OS dependent probing of IA64 chipsets.
+ Not all IA64 chipsets can be probed without OS support as
+ probing them is only possible using ACPI. One example of this
+ are the HP ZX1/2 chipsets: previously the code assumed that
+ these chips were present when no other of the known chipsets
+ could be probed. This assumption brought SGI Altrix
+ machines with 64 CPUs to a grinding halt.
+
+
+2004-09-14 Egbert Eich <eich-at-freedesktop-org>
+
+ * lib/X11/imInsClbk.c: (_XimUnRegisterIMInstantiateCallback):
+ Unregistering events in XSelectInput() when unregistering IM
+ filter callbacks may be a bad idea as others may be interested
+ in this event. Removed the call to XSelectInput() altogether
+ as we are in root window anyway (Lubos Lunak).
+ * programs/Xserver/dix/dispatch.c: (Dispatch):
+ Fix size of a variable that gets assigned the value of
+ SmartScheduleTime (long) to long. This should help to prevent
+ smart scheduler lockup on 64 bit systems due to overruns
+ (Andreas Schwab).
+
+2004-09-14 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/xfree86/loader/dixsym.c
+ * xc/programs/Xserver/hw/xfree86/loader/extsym.c
+ Bugzilla #1361: Fix module loader bustage due duplicate symbols
+ caused by the first patch in Bugzilla #1361
+
+2004-09-14 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/hw/xfree86/loader/dixsym.c
+ * xc/programs/Xserver/include/globals.h
+ * xc/programs/Xserver/mi/miinitext.c
+ * xc/programs/Xserver/os/utils.c
+ Bugzilla #1361: Allow turning on/off most of the Xserver extensions
+ (=all except server-specific extensions (e.g. DMX, XpExtension,
+ etc.) via +extension/-extension
+
+2004-09-07 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * BUILD:
+ * programs/Xserver/hw/xfree86/doc/BUILD:
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/index.pre:
+ Fix dates for release.
+
+2004-09-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ Update docs for Mac OS changes (Torrey T. Lyons).
+
+2004-09-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * BUILD:
+ * README:
+ * RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/BUILD:
+ * programs/Xserver/hw/xfree86/doc/DESIGN:
+ * programs/Xserver/hw/xfree86/doc/Install:
+ * programs/Xserver/hw/xfree86/doc/LICENSE:
+ * programs/Xserver/hw/xfree86/doc/OS2.Notes:
+ * programs/Xserver/hw/xfree86/doc/README:
+ * programs/Xserver/hw/xfree86/doc/README.DECtga:
+ * programs/Xserver/hw/xfree86/doc/README.Darwin:
+ * programs/Xserver/hw/xfree86/doc/README.I128:
+ * programs/Xserver/hw/xfree86/doc/README.LynxOS:
+ * programs/Xserver/hw/xfree86/doc/README.NetBSD:
+ * programs/Xserver/hw/xfree86/doc/README.OpenBSD:
+ * programs/Xserver/hw/xfree86/doc/README.SCO:
+ * programs/Xserver/hw/xfree86/doc/README.SiS:
+ * programs/Xserver/hw/xfree86/doc/README.Solaris:
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Config:
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Enhancing:
+ * programs/Xserver/hw/xfree86/doc/README.apm:
+ * programs/Xserver/hw/xfree86/doc/README.ati:
+ * programs/Xserver/hw/xfree86/doc/README.chips:
+ * programs/Xserver/hw/xfree86/doc/README.cyrix:
+ * programs/Xserver/hw/xfree86/doc/README.dps:
+ * programs/Xserver/hw/xfree86/doc/README.fonts:
+ * programs/Xserver/hw/xfree86/doc/README.i740:
+ * programs/Xserver/hw/xfree86/doc/README.i810:
+ * programs/Xserver/hw/xfree86/doc/README.mouse:
+ * programs/Xserver/hw/xfree86/doc/README.newport:
+ * programs/Xserver/hw/xfree86/doc/README.r128:
+ * programs/Xserver/hw/xfree86/doc/README.rendition:
+ * programs/Xserver/hw/xfree86/doc/README.s3virge:
+ * programs/Xserver/hw/xfree86/doc/RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/Versions:
+ * programs/xkbcomp/README.config:
+ * programs/xkbcomp/README.enhancing:
+ Update formatted docs.
+
+2004-09-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ Updated release notes for bug #999.
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ Update Radeon man page to note that RenderAccel is now enabled by
+ default on certain chips.
+
+2004-09-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ * programs/Xserver/hw/xfree86/doc/sgml/Install.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/README.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/XKB-Config.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent:
+ Second round of documentation updates.
+
+2004-09-03 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/README.sgml:
+ Mostly fix version numbers and use symbolic release date.
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:
+ Fix lots of version numbers.
+ Change description of Composite extension a bit.
+ Add reference to Xaw8 as the version of Xaw which includes
+ XawPrintShell.
+ Document Render additions to xclock.
+ Document to XPrint additions to xedit.
+ Note disappearance of X-TrueType.
+
+ * programs/Xserver/hw/xfree86/doc/sgml/SCO.sgml:
+ Add 'R' before &relvers;
+
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent:
+ Add reldate entity
+
+ * programs/Xserver/hw/xfree86/doc/sgml/dps.sgml:
+ Add 'R' before &relvers;
+
+ * programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml:
+ Fix version numbers.
+ Note disapparance of X-TrueType
+
+
+2004-09-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * LABEL:
+ * Makefile:
+ * config/cf/X11.tmpl:
+ * config/cf/cygwin.cf:
+ * config/cf/lnxdoc.rules:
+ * config/cf/lnxdoc.tmpl:
+ * config/cf/xorg.cf:
+ * config/util/makedef.cmd:
+ * doc/man/general/Standards.man:
+ * doc/man/general/X.man:
+ * doc/man/general/XOrgFoundation.man:
+ * doc/specs/BDF/bdf.ms:
+ * doc/specs/CTEXT/ctext.tbl.ms:
+ * doc/specs/FSProtocol/protocol.ms:
+ * doc/specs/ICCCM/icccm.ms:
+ * doc/specs/ICCCM/indexmacros.t:
+ * doc/specs/ICE/ICElib.ms:
+ * doc/specs/ICE/ice.ms:
+ * doc/specs/SM/SMlib.ms:
+ * doc/specs/SM/xsmp.ms:
+ * doc/specs/X11/CH01:
+ * doc/specs/X11/abstract.t:
+ * doc/specs/X11/indexmacros.t:
+ * doc/specs/XDMCP/xdmcp.ms:
+ * doc/specs/XIM/xim.ms:
+ * doc/specs/XLFD/xlfd.tbl.ms:
+ * doc/specs/XProtocol/X11.protocol:
+ * doc/specs/XProtocol/indexmacros.t:
+ * doc/specs/Xaw/CH1:
+ * doc/specs/Xaw/TPage_Credits:
+ * doc/specs/Xaw/widg.idxmac.t:
+ * doc/specs/Xext/DPMS.ms:
+ * doc/specs/Xext/DPMSLib.ms:
+ * doc/specs/Xext/bigreq.ms:
+ * doc/specs/Xext/evi.ms:
+ * doc/specs/Xext/record.ms:
+ * doc/specs/Xext/recordlib.ms:
+ * doc/specs/Xext/security.tex:
+ * doc/specs/Xext/shape.ms:
+ * doc/specs/Xext/shapelib.ms:
+ * doc/specs/Xext/sync.tex:
+ * doc/specs/Xext/synclib.tex:
+ * doc/specs/Xext/tog-cup.ms:
+ * doc/specs/Xext/xc-misc.ms:
+ * doc/specs/Xi/library.ms:
+ * doc/specs/Xi/porting.ms:
+ * doc/specs/Xi/protocol.ms:
+ * doc/specs/Xmu/Xmu.ms:
+ * doc/specs/Xt/strings.mit:
+ * doc/specs/i18n/Framework.ms:
+ * doc/specs/i18n/LocaleDB.ms:
+ * doc/specs/i18n/Trans.ms:
+ * programs/Xserver/hw/xfree86/doc/sgml/Imakefile:
+ * programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/README:
+ * programs/Xserver/hw/xfree86/doc/sgml/README.build-docs:
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent:
+ * programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml:
+ * programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml:
+ First set of documentation updates.
+
+ * programs/Xserver/miext/damage/damage.c: (getDrawableDamageRef):
+ Include more correct fix for rootless interaction with damage (Bug
+ #1168, Keith Packard).
+
+2004-09-02 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/cygwin.cf:
+ * config/cf/xorg.cf:
+ Update release number and date for RC4.
+
+2004-09-02 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/glxgears/glxgears.c: (usage):
+ * programs/xedit/Imakefile:
+ * programs/xedit/Xedit-noxprint.ad:
+ * programs/xedit/Xedit-xprint.ad:
+ * programs/xedit/Xedit.ad:
+ * programs/xedit/commands.c: (DoSave), (ReallyDoLoad),
+ (printshellDestroyXtProc), (printOKXtProc), (printCancelXtProc),
+ (PrintFile), (DoPrint):
+ * programs/xedit/hook.c: (LineEditAction):
+ * programs/xedit/ispell.c: (IspellConvertHtmlAmp), (IspellSend),
+ (ReplaceIspell):
+ * programs/xedit/lisp/Imakefile:
+ * programs/xedit/lisp/lisp.c:
+ * programs/xedit/util.c: (MakeCommandButton):
+ * programs/xedit/xedit.c: (main), (makeButtonsAndBoxes):
+ * programs/xedit/xedit.h:
+ * programs/xman/Imakefile:
+ * programs/xman/ScrollByL.c: (Layout), (PaintText),
+ (ScrollVerticalText), (Initialize), (SetValuesHook), (LoadFile),
+ (PrintText):
+ * programs/xman/ScrollByL.h:
+ * programs/xman/ScrollByLP.h:
+ * programs/xman/Xman-noxprint.ad:
+ * programs/xman/Xman-xprint.ad:
+ * programs/xman/Xman.ad:
+ * programs/xman/buttons.c: (MakeTopBox), (CreateManpageWidget),
+ (CreateOptionMenu):
+ * programs/xman/defs.h:
+ * programs/xman/handler.c: (OptionCallback), (DirectoryHandler),
+ (Quit), (Search), (printshellDestroyXtProc), (printOKXtProc),
+ (printCancelXtProc), (PrintThisManpage):
+ * programs/xman/main.c: (main), (AdjustDefResources):
+ * programs/xman/man.h:
+ * programs/xman/misc.c: (PrintError), (OpenFile):
+ * programs/xman/search.c: (DoSearch):
+ * programs/xman/version.h:
+ * programs/xset/Imakefile:
+ Restore xman and xedit changes that were previously reverted, and
+ make Xprint support optional (Bug #1273, Roland Mainz).
+
+2004-09-02 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/X11.tmpl:
+ * programs/glxgears/Imakefile:
+ * programs/glxgears/glxgears.c: (event_loop), (main):
+ * programs/xdpyinfo/Imakefile:
+ * programs/xdpyinfo/xdpyinfo.c: (print_screen_info):
+ * programs/xlogo/Imakefile:
+ * programs/xlogo/xlogo.c: (Syntax), (main):
+ * programs/xset/Imakefile:
+ * programs/xset/xset.c: (main), (usage):
+ Clean up defines for Xprint support and fix BuildServersOnly build
+ for libXaw.
+
+2004-09-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/miext/damage/Imakefile:
+ * programs/Xserver/miext/damage/damage.c: (getDrawableDamageRef):
+ Workaround for servers using rootless layer with damage (Bug
+ #1168, Torrey T. Lyons).
+
+2004-09-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * extras/Mesa/src/mesa/drivers/dri/i915/i830_vtbl.c:
+ (i830_render_start):
+ * extras/Mesa/src/mesa/drivers/dri/i915/i915_fragprog.c:
+ (i915ValidateFragmentProgram):
+ * extras/Mesa/src/mesa/drivers/dri/i915/i915_texprog.c:
+ (i915ValidateTextureProgram):
+ Fix colors on i8x0 DRI (Bug #1216, Keith Whitwell).
+
+2004-09-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/GL/apple/aglGlx.c: (glAquaDestroyContext),
+ (glAquaLoseCurrent), (attach), (glAquaMakeCurrent),
+ (glAquaCopyContext), (glAquaCreateContext), (glAquaRealizeWindow),
+ (glAquaUnrealizeWindow), (init_visuals), (glAquaInitVisualConfigs),
+ (glAquaInitVisuals), (glAquaResizeBuffers):
+ Fix AGL display problems (Bug #1210, Torrey T. Lyons).
+
+2004-09-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/cygwin.cf:
+ * config/cf/darwin.cf:
+ Enable XtransFailSoft on cygwin and Darwin (Bug #1029, Alexander
+ Gottwald, Torrey T. Lyons).
+
+2004-09-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/OpenBSDLib.tmpl:
+ * config/cf/WinLib.tmpl:
+ * config/cf/X11.tmpl:
+ * config/cf/bsdLib.tmpl:
+ * config/cf/bsdiLib.tmpl:
+ * config/cf/cygwin.rules:
+ * config/cf/cygwin.tmpl:
+ * config/cf/darwinLib.tmpl:
+ * config/cf/gnuLib.tmpl:
+ * config/cf/hpLib.tmpl:
+ * config/cf/ibmLib.tmpl:
+ * config/cf/lnxLib.tmpl:
+ * config/cf/os2Lib.tmpl:
+ * config/cf/osfLib.tmpl:
+ * config/cf/sco5.cf:
+ * config/cf/sunLib.tmpl:
+ * config/cf/sv4Lib.tmpl:
+ * lib/Imakefile:
+ * lib/Xaw/AllWidgets.c:
+ * lib/Xaw/Imakefile:
+ * lib/Xaw/sharedlib.c:
+ * lib/Xaw7/Imakefile:
+ * lib/Xaw7/Xaw-def.cpp:
+ * programs/Imakefile:
+ * programs/Xserver/hw/xfree86/xf86cfg/Imakefile:
+ * programs/glxgears/Imakefile:
+ * programs/xdpyinfo/Imakefile:
+ * programs/xlogo/Imakefile:
+ * programs/xlogo/XLogo.ad:
+ * programs/xlogo/xlogo.c: (die), (Syntax), (main), (quit), (print):
+ * programs/xphelloworld/Imakefile:
+ * programs/xset/Imakefile:
+ Bump major version number of libXaw (Bug #1273).
+
+2004-09-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * extras/Mesa/src/mesa/main/imports.h:
+ Fix libGL build on ARM (Bug #1155).
+
+2004-09-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/xkbcomp/keycodes/xfree86:
+ Fix slash key on ABNT2 keyboard (Bug #1257, Alexander Gottwald).
+
+2004-08-31 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/X11/Imakefile:
+ Fix multiple definitions of XdmcpWrap for CYGWIN (Bug #1203,
+ Alexander Gottwald).
+
+2004-08-31 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/Imakefile:
+ Fixed link ordering for building without Xinerama (Bug #1221).
+
+2004-08-31 Egbert Eich <eich-at-freedesktop-org>
+
+ * lib/X11/GetWAttrs.c: (_XGetWindowAttributes),
+ (XGetWindowAttributes):
+ * lib/X11/PutBEvent.c: (_XPutBackEvent), (XPutBackEvent):
+ * lib/X11/Xlibint.h:
+ * lib/X11/imDefLkup.c: (_XimGetWindowEventmask):
+ * lib/X11/imLcFlt.c:
+ Fixed some lockups in XIM code when the application is running
+ with multi thread support. These lockups occur deep down in
+ XFilterEvents() which itself locks when another Xlib function
+ gets called that also locks. This fixes two instances by
+ separating those Xlib functions into an internal (non-locking)
+ call and a locking wrapper that is used as an external function.
+ There may be several other such instances therefore another
+ more general patch is eventually required (Bugzilla #1182).
+
+2004-08-31 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Added a note about cross compiling.
+ * programs/Xserver/hw/xfree86/doc/sgml/README:
+ Added instructions on how to build and updated formatted docs
+ in the tree.
+
+2004-08-30 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c: (PostKbdEvent):
+ Fix keyboard driver regression (Bug #1238, Kristian Høgsberg).
+
+Mon Aug 30 22:58:59 2004 Soeren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml: Update the
+ release notes.
+
+2004-08-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * config/cf/X11.rules:
+ Make handling of XtransFailSoft Imake variable more consistent.
+ It needs to receive a boolean value now (Alexander Gottwald).
+
+2004-08-30 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/ibm.cf:
+ * config/cf/ibmLib.tmpl:
+ AIX Imake config file updates (Bug #1234, Dan McNichol).
+
+2004-08-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * config/cf/X11.rules:
+ Fix: move flag for HARD_FAIL in Xtransutil.c to the correct
+ setting of the Imake variable.
+ * programs/Xserver/Xprint/ps/Imakefile:
+ Fix Imake condiditon for LynxOS (Thomas Mueller).
+
+2004-08-30 Michel Daenzer <michel@daenzer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RADEONSetupRenderByteswap):
+ Hotfix for Eric Anholt's fix for bug #1156 : Clear the
+ RADEON_NONSURF_AP0_SWP_16BPP bit for 4 bpp data, otherwise it breaks
+ at depth 16.
+
+2004-08-29 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c:
+ (I810AllocateGARTMemory):
+ Fix ARGB cursor problem on i810 (Bug #1195, Alan Hourihane).
+
+2004-08-29 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/OpenBSD.cf:
+ Fix typo that caused both X.Org and XFree86 servers to be built on
+ OpenBSD/AMD64 (Bug #1231, Matthieu Herrb).
+
+2004-08-29 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/X11.tmpl:
+ Fix make install when BuildServersOnly is YES (Bug #1213).
+
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c:
+ Fix build failures when UseDeprecatedKeyboardDriver is YES and
+ DoLoadableServer is NO (Bug #1229, Kristian Høgsberg).
+
+ * programs/Xserver/hw/xfree86/loader/loader.c: (LoaderInit):
+ Fix failure when using DLL loader and LD_BIND_NOW is set (Bug
+ #1212, Adam Jackson).
+
+2004-08-28 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xaa/xaaWideLine.c:
+ Don't define _XOPEN_SOURCE before including math.h on Solaris -
+ it's not needed on older releases, and breaks builds on Solaris 10.
+ (Same as bugzilla #189).
+
+2004-08-28 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ Update release number and date for RC3.
+
+2004-08-28 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ Merge Mesa 6.1
+
+ * extras/Mesa/src/mesa/main/imports.h:
+ Fix build on HPPA/MIPS (Bug #1155).
+
+2004-08-28 Egbert Eich <eich-at-freedesktop-org>
+
+ * config/cf/X11.rules:
+ * config/cf/X11.tmpl:
+ * lib/FS/Imakefile:
+ * lib/ICE/Imakefile:
+ * lib/X11/Imakefile:
+ * lib/xtrans/Imakefile:
+ * lib/xtrans/Xtransutil.c: (trans_mkdir):
+ * programs/Xserver/os/Imakefile:
+ Set the define XtransFailSoft to restore the old behavior to
+ fail softly when socket directory cannot chowned/chmod to correct
+ user/group. This should be added on a per OS basis which hasn't
+ been done.
+
+2004-08-27 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86fbman.c:
+ (localQueryLargestOffscreenLinear):
+ Fix for XV memory allocation: Also use tiled area for allocation
+ even if it hasn't been used before.
+
+2004-08-27 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/miext/cw/cw.c: (cwFillRegionTiled),
+ (cwPaintWindowBackground), (cwPaintWindowBorder):
+ Bug #1101: Fix PaintWindow in the pixmap case when the window's origin
+ is not at the backing pixmap's origin. Resulted in incorrect rendering
+ in at least aisleriot, fluxbox, and KDE apps, and probably many more.
+ While here, move the ParentRelative loop above the drawable grab -- may
+ improve correctness with ParentRelative backgrounds' origins as well.
+ Note that the border code doesn't handle ParentRelative yet.
+
+2004-08-27 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/Xext/dmx.c: (ProcDMXForceWindowCreation):
+ Add missing reply for DMX (Rik Faith).
+
+2004-08-27 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/Xprint/ps/Imakefile:
+ * programs/Xserver/Xprint/ps/ttf2pt1wrap.c:
+ Fixed typos.
+
+2004-08-27 Egbert Eich <eich-at-freedesktop-org>
+
+ * config/cf/lynx.cf:
+ * lib/font/util/Imakefile:
+ * programs/Xserver/Xprint/ps/Imakefile:
+ * programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml:
+ * programs/Xserver/hw/xfree86/etc/MTRR-Lynx.shar:
+ * programs/xdriinfo/Imakefile:
+ * programs/xprehashprinterlist/Imakefile:
+ Added support for LynxOS 4.0 (Thomas Mueller).
+ * programs/Xserver/hw/xfree86/common/compiler.h:
+ Fix arm netwinder build (Donnie Berkholz).
+
+2004-08-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/GL/glx/Imakefile:
+ Move line break/continuation to not be in the middle of a word
+ (Bugzilla #1207)
+
+2004-08-27 Egbert Eich <eich-at-freedesktop-org>
+
+ * config/cf/X11.rules:
+ * config/cf/X11.tmpl:
+ Fixed UseInstalled handling when cross compiling when building
+ with different ProjectRoot. Set X11ProjectRoot to the ProjectRoot
+ on the build host (where the binaries that run on the build host
+ live) (Alexander Gottwald).
+
+2004-08-27 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/ddc/interpret_edid.c:
+ (get_monitor_ranges):
+ - Make DDC code more VESA compliant: when MaxClock is set
+ to 0xFF it means 'no value specified'. Therefore setting it
+ to 0 (Thomas Winischhofer).
+
+2004-08-26 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RADEONSetupRenderByteswap), (RADEONRestoreByteswap),
+ (R100SetupTexture), (R200SetupTexture):
+ Bug #1156: Fix the build on PPC by splitting the byte-order-setting code
+ into a separate routine. While here, fix the byte swapping in the 32bpp
+ case. (Michel Daenzer)
+
+2004-08-26 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONSetupForSolidLine):
+ Bug #1157: Fix Radeon line acceleration in the DMA case
+ (Michel Daenzer).
+
+2004-08-26 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/GL/dri/drm/Imakefile:
+ Add drm.h to SDK; required by xf86drm.h (Bug #1160, Bryan Stine).
+
+2004-08-26 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c:
+ (RADEONXineramaExtensionInit):
+ Fix Radeon compilation without Xinerama (Bug #1179, Simon
+ Schubert).
+
+2004-08-26 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/vfb/InitOutput.c: (vfbScreenInit):
+ Fix xtest failures in Xvfb from XMatchVisualInfo test.
+
+2004-08-26 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/miext/cw/cw.c:
+ * programs/Xserver/miext/cw/cw_ops.c:
+ Bug #1138: Wrap funcs in CW's GC ops as well. While this is unnecessary
+ according to the rules as I understand them (bug #1045), not everybody
+ follows the rules. GC funcs were being called on the same GC from
+ within GC ops, and the cwValidateGC caused a loop in the funcs chain
+ that resulted in a crash, notably in cwPolylines.
+
+2004-08-26 Egbert Eich <eich-at-freedesktop-org>
+
+ * lib/X11/xlibi18n/Xi18nLib.conf:
+ Added missing make variable.
+
+2004-08-26 Egbert Eich <eich-at-freedesktop-org>
+
+ * config/cf/lynx.cf:
+ * fonts/bdf/100dpi/Imakefile:
+ * fonts/bdf/75dpi/Imakefile:
+ * fonts/bdf/75dpi/Imakefile.inc:
+ * fonts/util/ucs2any.c:
+ * lib/GL/glx/Imakefile:
+ * programs/Xserver/hw/xfree86/doc/Imakefile:
+ * programs/Xserver/hw/xfree86/etc/MTRR-Lynx.shar:
+ * programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def:
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c:
+ * programs/Xserver/hw/xfree86/os-support/lynxos/Imakefile:
+ * programs/fonttosfnt/Imakefile:
+ * programs/xtrap/xtrapchar.c:
+ * programs/xtrap/xtrapin.c:
+ * programs/xtrap/xtrapout.c:
+ Fixed support for LynxOS 3.1 (LynxOS 4 will follow) (Thomas Mueller).
+
+2004-08-26 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/util/lndir.c: (dodir):
+ Fix lndir to handle symlinks to directories correctly (Bug #1083,
+ H.J. Lu).
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_video.c:
+ (I830PutImage), (I830DisplaySurface):
+ Fix i810 compilation without Xinerama (Bug #1180, Simon Schubert).
+
+2004-08-24 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/Xext/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONGetLVDSInfo):
+ Fix hangs during startup with Radeon driver (Bug #1007, Sjoerd
+ Simons).
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810PreInit), (I810CloseScreen):
+ Fix i810 driver startup on Sony VAIO laptop (Bug #1084, Dave
+ Airlie).
+
+ * config/cf/X11.tmpl:
+ Fix several library build problem (Bug #1147).
+
+ * programs/Xserver/xkb/Imakefile:
+ * programs/xrx/Imakefile:
+ Fix build problems (Bugs #1148 and #1149).
+
+2004-08-24 Keith Packard <keithp@keithp.com>
+
+ reviewed by: Stuart Kreitman <Stuart.Kreitman@Sun.COM>
+
+ * lib/Xdmcp/Wraphelp.c: (_XdmcpAuthSetup), (_XdmcpAuthDoIt):
+ Replace 'uint32_t' with 'CARD32' and 'uint8_t' with 'CARD8'.
+ Add #include <X11/Xmd.h>
+
+2004-08-20 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/XDarwin.pbproj/project.pbxproj:
+ Update XDarwin application version for release.
+
+2004-08-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/sis/310vtbl.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/init.c:
+ (InitCommonPointer):
+ * programs/Xserver/hw/xfree86/drivers/sis/init.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/init301.c:
+ (GetLCDStructPtr661), (GetLCDStructPtr661_2):
+ * programs/Xserver/hw/xfree86/drivers/sis/init301.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/initdef.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_vb.c:
+ (SISLCDPreInit):
+ * programs/Xserver/hw/xfree86/drivers/sis/vstruct.h:
+ Support for Sis 1280x800 panels (Bug #1139, Thomas Winischhofer).
+
+2004-08-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/xterm/MANIFEST:
+ * programs/xterm/configure:
+ * programs/xterm/configure.in:
+ * programs/xterm/main.c: (Exit):
+ * programs/xterm/version.h:
+ * programs/xterm/xterm.log.html:
+ Merge xterm #196 patch which fixed utmp cleanup infinite loop (Bug
+ #1137, Thomas E. Dickey).
+
+2004-08-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (InitOutput):
+ * programs/Xserver/hw/xfree86/input/Imakefile:
+ * programs/Xserver/hw/xfree86/input/confdrv.sh:
+ Fix keyboard driver failing to initialize if DoLoadableServer is
+ NO (Bug #1133, Kristian Høgsberg).
+
+2004-08-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ * programs/Xserver/hw/xfree86/input/keyboard/Imakefile:
+ Fix white space problem with BSD make (Bug #1132, Matthieu Herrb).
+
+2004-08-19 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * doc/man/general/security.man:
+ Update documentation of authentication methods to cover the
+ ServerInterpreted access type added in X11R6.7 and the
+ authentication types available via its framework.
+
+2004-08-19 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/X11.tmpl:
+ * config/cf/sun.cf:
+ * config/cf/svr4.cf:
+ * config/cf/xorg.cf:
+ * programs/Xserver/hw/xfree86/doc/sgml/Solaris.sgml:
+ Fix the build on Solaris/sparc to use Xorg server instead of the
+ deprecated Xsun (Bug #1134, Alan Coopersmith).
+
+2004-08-19 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/GL/mesa/main/Imakefile:
+ * lib/GL/mesa/sparc/Imakefile:
+ * programs/Xserver/GL/glx/Imakefile:
+ * programs/Xserver/GL/mesa/main/Imakefile:
+ * programs/Xserver/GL/mesa/swrast/Imakefile:
+ * programs/Xserver/GL/mesa/tnl/Imakefile:
+ Fix build problems on Solaris/sparc (Bug #1104, Alan Coopersmith).
+
+2004-08-19 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/X11/Xutil.h:
+ Fix header file to #ifdef the XKB keysyms when they are used.
+ This fixes the X test suite build failure.
+
+2004-08-19 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/loader/dixsym.c:
+ Add missing no.*Extension symbols (Bug #1131, Aaron Plattner).
+
+2004-08-18 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/darwinLib.tmpl:
+ Fix libXevie build on Darwin (Bug #1124, Torrey T. Lyons).
+
+ * lib/GL/mesa/drivers/osmesa/Imakefile:
+ Fix libOSMesa build on Darwin (Bug #1125, Torrey T. Lyons).
+
+ * lib/GL/apple/dri_dispatch.defs:
+ * lib/GL/apple/dri_dispatch.h:
+ Fix libGL build on Mac OS X 10.3.0-3 (Bug #1127, Torrey T. Lyons).
+
+2004-08-18 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/miext/cw/cw.c: (cwCreateBackingGC),
+ (cwDestroyBackingGC), (cwValidateGC), (cwDestroyGC), (cwCreateGC),
+ (miInitializeCompositeWrapper):
+ * programs/Xserver/miext/cw/cw_ops.c:
+ Fix CopyArea for non-redir dst, redir src (Bug #1105, Eric
+ Anholt).
+
+2004-08-18 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/SM/sm_manager.c:
+ * programs/Xserver/Xprint/ps/PsPixmap.c: (PsCreatePixmap):
+ * programs/Xserver/render/renderedge.c: (RenderSampleFloorY):
+ Fix AIX build problems (Bugs #1020, 1102, 1103, Dan McNichol).
+
+ * programs/Xserver/hw/xfree86/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/newport/Imakefile:
+ Remove old config files (Bug #1123, Jim Gettys).
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (xf86PrintBanner):
+ Remove old log message (Bug #1123, Jim Gettys).
+
+2004-08-17 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ Update release and date for RC2.
+
+2004-08-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig):
+ Reenable Radeon Render acceleration now that interactions with 3D
+ clients should be resolved.
+
+2004-08-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_cmdbuf.c:
+ (r200EmitVbufPrim), (r200AllocEltsOpenEnded), (r200EmitVertexAOS),
+ (r200EmitAOS):
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_context.h:
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_ioctl.c:
+ (r200FlushCmdBufLocked), (r200Clear):
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_ioctl.h:
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_lock.h:
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_state_init.c:
+ (r200InitState):
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_swtcl.c:
+ (flush_last_swtcl_prim):
+ * extras/Mesa/src/mesa/drivers/dri/r200/r200_tcl.c:
+ (r200AllocElts), (EMIT_PRIM):
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_context.h:
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_ioctl.c:
+ (radeonEmitVbufPrim), (radeonAllocEltsOpenEnded),
+ (radeonEmitVertexAOS), (radeonEmitAOS), (radeonFlushCmdBufLocked),
+ (radeonClear):
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_ioctl.h:
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_lock.h:
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_state_init.c:
+ (radeonInitState):
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_swtcl.c:
+ (flush_last_swtcl_prim):
+ * extras/Mesa/src/mesa/drivers/dri/radeon/radeon_tcl.c:
+ (radeonAllocElts), (EMIT_PRIM):
+ Check in new Radeon/R200 drivers from Mesa CVS which close several
+ races in the code, which could cause rendering errors on r100 and hangs
+ and rendering errors on r200, when there are multiple clients.
+
+2004-08-17 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/cygwin.tmpl:
+ Add SharedXevieReqs for cygwin (Bug #1108, Alexander Gottwald).
+
+2004-08-17 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/GL/glx/Imakefile:
+ Fix DRI module loading (Bug #1057, Ronny Vindenes).
+
+ * programs/Xserver/hw/vfb/InitOutput.c: (vfbScreenInit):
+ Fix Xvfb at 8bpp (Bug #1091).
+
+ * programs/glxgears/Imakefile:
+ Fix link order when building with Xprint in glxgears (Bug #1060,
+ Alexander Gottwald).
+
+2004-08-17 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/GL/glx/Imakefile:
+ Fix bug where DRI drivers look in wrong dir (Bug #1057, Mike
+ Harris, Ronny Vindenes).
+
+ * programs/xphelloworld/Imakefile:
+ Disable building xpawhelloworld until Xaw/Xprint library is
+ available.
+
+2004-08-16 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ Update release and date for first RC.
+
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c:
+ Fix kbd/keyboard driver for DoLoadableServer NO.
+
+ * programs/Xserver/hw/xfree86/xf86Date.h:
+ Revert change since it is better to set date in the config files.
+
+2004-08-16 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ (xf86BuiltinInputDriver):
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ * programs/Xserver/hw/xfree86/input/keyboard/Imakefile:
+ * programs/Xserver/hw/xfree86/input/keyboard/kbd.c: (xf86KbdPlug),
+ (xf86KeyboardPlug):
+ Add kbd <-> keyboard aliasing when UseDeprecatedKeyboardDriver
+ is NO (Bug #1072, Kristian Høgsberg).
+
+2004-08-16 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * lib/Xevie/Imakefile:
+ Fix build problem with xevie.pc
+
+2004-08-16 Stuart Kreitman <stukreit@freedesktop.org>
+ * xc/lib/Imakefile
+ * xc/lib/Xext/Imakefile
+ * xc/lib/Xext/Attic/Xevie.c moved to lib/Xevie
+ * xc/lib/Xevie/Imakefile
+ * xc/lib/Xevie/Xevie.c
+ * xc/lib/Xevie/Xevie.man
+ * xc/lib/Xevie/xevie.pc.in
+ * xc/lib/Xevie/xevieplaceholder.h
+ Bug #957 Moved Xevie client side to libXevie.so
+
+2004-08-16 Kristian Høgsberg <krh@redhat.com>
+
+ As discussed and agreed on on the release-wranglers meeting of
+ August 16, I'm committing the patch from bug #1060 to back out
+ unconditional Xprint functionality.
+
+ * lib/Xaw/Imakefile:
+ Back out Xprint changes.
+
+ * programs/xman:
+ * programs/xlogo:
+ * programs/xedit:
+ Revert xman to CVS of June 5, revert xlogo to CVS of May 8, revert
+ xedit to CVS of April 25, to back out unconditional Xprint support.
+
+ * config/cf/X11.tmpl:
+ Fix up Xprint config logic to be like the rest of the extensions:
+ BuildXprint is a one-stop option for disabling everything Xprint
+ related. XprtServer controls building Xprt, BuildXprintLib
+ controls building Xprint libs and BuildXprintClients controls
+ building clients related to Xprint. BuiltXprint defaults to YES
+ and the other options respects relevant settings, i.e. BuildServer
+ and BuildServersOnly.
+
+ * lib/Imakefile:
+ Build Xaw regardless of BuildXprintLib setting.
+
+ * programs/Imakefile:
+ Only build xphelloworld, xplsprinters and xprehashprinterlist when
+ BuildXprintClients it YES. Disable building xmore, it has always
+ supported XawPrintShell.
+
+ * programs/xdpyinfo:
+ * programs/xset:
+ * programs/glxgears:
+ Make Xprint support depend on BuildXprintLib.
+
+2004-08-16 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/s3/s3_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ Bug #1087: Make sure all the *Weak symbols are documented in the
+ import list, so the loader knows not to complain about unresolved
+ symbols when an optional module isn't loaded. This typically
+ manifests as warnings about fbdevHW symbols when the user isn't
+ using the framebuffer console.
+
+2004-08-15 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (xf86PrintBanner):
+ * programs/Xserver/hw/xfree86/xorgVersion.h:
+ Fix banner to print out proper version information.
+
+2004-08-15 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/compwindow.c:
+ (compWindowUpdateAutomatic):
+ Clip destination instead of source. Should be the same,
+ but it looks nicer to me.
+
+ * programs/Xserver/miext/cw/cw.c: (cwCreateGCPrivate),
+ (cwDestroyGCPrivate), (cwCheapValidateGC):
+ Clean up transition between cheap and expensive GC wrappers
+ by using the prologue and epilogue macros. Before, the GC
+ would be left unvalidated sometimes which would cause all
+ kinds of entertaining bugs against a DDX which cares (XAA).
+
+2004-08-15 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/compint.h:
+ * programs/Xserver/composite/compwindow.c: (compPositionWindow):
+ Remove debugging code which did a full tree walk
+ on every window operation
+
+ * programs/Xserver/miext/cw/cw.c: (cwDestroyGCPrivate),
+ (cwSetWindowPixmap):
+ Eliminate needless (and, it turns out, dangerous) call
+ to ChangeGC on DestroyGCPrivate.
+
+ in cwSetWindowPixmap, check if the pixmap is the screen
+ pixmap and disable the wrapper by setting the private to NULL.
+
+2004-08-15 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ Remove #error used for testing.
+
+2004-08-14 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/compalloc.c: (compNewPixmap),
+ (compAllocPixmap), (compReallocPixmap):
+ Copy bits from parent window when allocating pixmaps so that
+ Background == None works.
+
+ * programs/Xserver/miext/cw/cw_render.c: (cwValidatePicture):
+ Copy filter to backing picture during validation.
+
+ * programs/Xserver/render/filter.c: (SetPictureFilter):
+ * programs/Xserver/render/picture.c: (SetPictureTransform),
+ (CopyPicture):
+ Mark picture serialNumber when setting Filter or Transform so
+ Validate occurs.
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (InitOutput):
+ Initialize xf86Screens[i]->pScreen to NULL so that RADEON
+ driver doesn't crash during server reset using old pScreen.
+
+2004-08-15 Kristian Høgsberg <krh@redhat.com>
+
+ * config/cf/DGUX.cf, config/cf/QNX4.cf, config/cf/bsdi.cf,
+ config/cf/isc.cf, config/cf/lynx.cf, config/cf/mach.cf,
+ config/cf/nto.cf, config/cf/sco5.cf, config/cf/sgi.cf,
+ config/cf/sun.cf, config/cf/x386.cf
+ Enable compilation of old keyboard driver for these platforms by
+ default (#1070).
+
+2004-08-14 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ Fix unresolved symbol warnings in r128 driver (Adam Jackson)
+
+2004-08-14 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/compwindow.c: (compRepaintBorder),
+ (compSetPixmapVisitWindow):
+ Redraw window borders when switching window pixmaps around
+
+ * programs/Xserver/miext/cw/cw.c: (cwGetBackingDrawable),
+ (cwGetWindowPixmap), (cwSetWindowPixmap),
+ (miInitializeCompositeWrapper):
+ * programs/Xserver/miext/cw/cw.h:
+ * programs/Xserver/miext/cw/cw_render.c: (cwCreatePicturePrivate),
+ (cwGetBackingPicture):
+ Make cw "own" the window pixmaps by wrapping
+ GetWindowPixmap/SetWindowPixmap.
+
+2004-08-14 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/FreeBSD.cf:
+ * config/cf/NetBSD.cf:
+ Bug #909: Remove incorrect HasGhostScript YES from BSD config files.
+
+2004-08-15 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ More kbd fun: write out "kbd" from Xorg -configure (#1078).
+
+2004-08-14 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/miext/cw/cw.c: (cwCopyWindow):
+ Fix offsets again. Really, it works this time. Promise.
+
+2004-08-14 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/miext/cw/cw.c: (cwCopyWindow):
+ Fix offsets, do whole region at once by using GC clipping
+
+2004-08-14 Eric Anholt <anholt@FreeBSD.org>
+
+ reviewed by: <keihtp@keithp.com>
+
+ * programs/Xserver/hw/xfree86/xaa/xaaPict.c: (XAADoComposite),
+ (XAACompositeSrcCopy), (XAAComposite):
+ Bug #1077: Fix source copy performance problem exposed by Composite.
+
+2004-08-14 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/miext/cw/cw.c: (cwValidateGC):
+ * programs/Xserver/miext/cw/cw.h:
+ * programs/Xserver/miext/cw/cw_render.c: (cwCreatePicturePrivate),
+ (cwDestroyPicturePrivate), (cwGetBackingPicture),
+ (cwDestroyPicture), (cwChangePicture), (cwValidatePicture):
+ Fix clip list computation and setting to ignore clip changes
+ to "real" GC/Picture and track serial numbers correctly when
+ copying pCompositeClip down.
+
+2004-08-14 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/miext/cw/cw.c: (cwCopyWindow),
+ (miInitializeCompositeWrapper), (cwCloseScreen):
+ * programs/Xserver/miext/cw/cw.h:
+ Wrap CopyWindow in cw, which fixes scrolling in many apps.
+
+2004-08-14 Keith Packard <keithp@keithp.com>
+
+ * lib/X11/OpenDis.c: (XOpenDisplay):
+ Use XLIB_SKIP_ARGB_VISUALS environment variable to disable
+ all depth 32 visuals. Necessary to keep Flash from crashing.
+
+ * programs/Xserver/miext/cw/cw.c: (cwValidateGC):
+ * programs/Xserver/miext/cw/cw_render.c: (cwValidatePicture):
+ Must call ValidateGC/ValidatePicture on "real" GC/Picture to
+ ensure pCompositeClip is set correctly.
+
+ Need to take the composite clip from the "real" GC/Picture and
+ turn it into the clientClip for the backing version.
+
+ * programs/Xserver/miext/damage/damage.c: (damageDamageRegion):
+ Adjust pixmap screen origin to account for drawable->x/y
+ Change debugging output a bit (disabled by default)
+
+2004-08-13 Nolan Leake <xorg-nolan@sigbus.net>
+
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.c
+ Save the register state before we write to any of them. This
+ makes the VMware driver coexist with VESA fbcon.
+
+2004-08-13 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/Imakefile:
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Don't enable speedo & type1 modules if they're not being built
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ * programs/Xserver/hw/xfree86/xf86config/cards.c:
+ Clean up a couple of hardcoded paths & vendor names to use defines
+ set by Imakefile
+
+ * config/cf/X11.tmpl:
+ Bugzilla #1055: "#define BuildXprint NO" is broken (6.7.99.2)
+ If XprtServer is undefined, but BuildXprint is defined, then
+ BuildXprint should set XprtServer as well.
+
+ * config/cf/xorg.cf:
+ Remove extra setting of XprtServer - just let it use the setting
+ in X11.tmpl
+
+2004-08-13 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/os/log.c: (VAuditF):
+ Fix Xprt bug by disabling code that merges multiple audit messages
+ (Bug #964, Roland Mainz).
+
+Fri Aug 13 19:53:10 2004 Soeren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_storm.c
+ (MGAStormSync): Fix for lockups on some versions of Matrox
+ Mystique. #687, Patch from Mike Harris.
+
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c
+ (xf86RandRSetMode): Call xf86EnableDisableFBAccess though the
+ function pointer instead of directly. #1041, Patch from Aaron Plattner.
+
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c: Swap the
+ phsyical size of the screen when rotiation. #1050, Patch from
+ Aaron Plattner.
+
+2004-08-13 Kristian Høgsberg <krh@redhat.com>
+
+ * config/cf/Imake.rules:
+ Add .PHONY target when using GNU make. This will speed up make in
+ general, but more importantly fix #1042.
+
+2004-08-13 Alexander Gottwald <ago@freedesktop.org>
+
+ * lib/X11/lcSjis.c:
+ Set most significant bit to be a one. (Bug #1024, Kensuke Matsuzaki)
+ * lib/X11/lcEuc.c:
+ Fix conversion from sjis and euc. (Bug #1024, Toshio Takabe)
+
+2004-08-13 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/xterm/*:
+ Merge in version 195 from upstream xterm
+ (http://dickey.his.com/xterm). Fixes #855.
+
+ * programs/Xserver/Xprint/etc/init.d/Imakefile (install):
+ Fix my typo in Solaris part of Xprint /etc/init.d install.
+
+2004-08-13 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/compalloc.c: (compFreePixmap):
+ Empty damage object when freeing pixmap.
+
+ * programs/Xserver/composite/compinit.c: (compCloseScreen),
+ * programs/Xserver/composite/compint.h:
+ (compInstallColormap), (compAddAlternateVisuals), (compScreenInit):
+ Wrap InstallColormap so that the DDX doesn't see colormaps from
+ our ARGB visual (avoids lovely green tint to screen).
+ Also, set visual->nplanes of ARGB visual to all used
+ (including alpha) planes so DIX can set pixel values correctly.
+
+ * programs/Xserver/composite/compwindow.c:
+ (compWindowUpdateAutomatic):
+ Translate automatic update regions correctly to account for borders
+
+ * programs/Xserver/dix/colormap.c:
+ When nplanes == 32 (ARGB visuals), mask in all ones for alpha values
+ to allocated pixel values.
+
+ * programs/Xserver/fb/fbpict.h:
+ Remove redundant fbAddTraps declaration
+
+ * programs/Xserver/fb/fbwindow.c: (fbCopyWindow):
+ Fix fbCopyWindow to work on non-screen pixmaps (not needed yet)
+
+ * programs/Xserver/render/mipict.c: (miClipPictureReg),
+ (miClipPictureSrc), (miCompositeSourceValidate),
+ (miComputeCompositeRegion):
+ Replace broken clipping code with that from modular tree.
+
+ * programs/Xserver/render/mirect.c: (miColorRects):
+ Respect subWindowMode.
+
+2004-08-13 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/render/picture.c: (CopyPicture):
+ Fix copy'n'paste-os of x/y in CopyPicture for AlphaXOrigin and
+ ClipXOrigin.
+
+2004-08-12 Eric Anholt <anholt@FreeBSD.org>
+
+ * extras/Mesa/XOrg-Xlist:
+ Removed files left over from older versions of Mesa, both on the vendor
+ branch and older ones from head. Several directories have been pruned
+ from the current import (but not docs, which includes COPYING), which
+ are listed in the new file "XOrg-Xlist". This can be used in the form
+ of "rm -rf `cat .../XOrg-Xlist`" when preparing a Mesa checkout for
+ importing.
+
+2004-08-12 Keith Packard <keithp@keithp.com>
+
+ * programs/xcursorgen/redglass/gumby*
+ * programs/xcursorgen/whiteglass/gumby*
+ * programs/xcursorgen/handhelds/gumby*
+ Replace the cursors used for the 'gumby' name by
+ ones which don't infringe on copyright and trademarks.
+
+2004-08-12 Eric Anholt <anholt@FreeBSD.org>
+
+ * extras/Mesa/include/GL/glxext.h:
+ * programs/Xserver/GL/glx/singlesize.c: (__glGet_size):
+ Fix after Mesa 20040812 merge: revert glxext.h to vendor branch, and fix
+ bug #1022.
+
+2004-08-12 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/quartz/cr/Imakefile:
+ * programs/Xserver/hw/darwin/quartz/cr/crScreen.m:
+ (CRSetupScreen):
+ * programs/Xserver/hw/darwin/quartz/xpr/Imakefile:
+ * programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c:
+ (xprSetupScreen):
+ Fix crash in rootless XDarwin due to rootless being initialized
+ before damage extension.
+
+2004-08-12 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/Imakefile:
+ Add Imake instrumentation for the ProPolice fix; #define
+ ProPoliceSupport YES in host.def to enable the workaround.
+
+2004-08-12 Kristian Høgsberg <krh@redhat.com>
+
+ * config/cf/xorg.cf:
+ Update PPC64 defines to use XorgServer instead of XF86Server.
+
+ * config/cf/X11.tmpl:
+ Fix double-backslash typo.
+
+2004-08-12 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/miext/cw/cw.c: (cwDestroyGCPrivate),
+ (cwValidateGC):
+ * programs/Xserver/miext/cw/cw.h:
+ * programs/Xserver/miext/cw/cw_ops.c:
+ * programs/Xserver/miext/cw/cw_render.c: (cwCreateBackingPicture),
+ (cwGetBackingPicture), (cwDestroyPicture), (cwValidatePicture),
+ (cwInitializeRender), (cwFiniRender):
+ Fix various cw issues, including a couple reported by deronj:
+ - Fix wrapping of GC ops/funcs according to policy described in bug
+ #1045.
+ - Remove ValidateGC/ValidatePictures on the redirected
+ drawables/pictures -- it's not needed, and DDXs shouldn't be seeing
+ redirected drawables in render or GC ops/funcs when cw is running.
+ - Mark all GC/Picture state as dirty when moving from redirected to
+ non-redirected, since it hadn't been passed down in Change* or
+ Validate* while redirected.
+ - Remove CreatePicture wrapper that didn't do anything.
+ - Comment on why AddTraps wrapper isn't needed.
+
+2004-08-12 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/composite/compint.h:
+ * programs/Xserver/composite/compwindow.c: (compCheckRedirect):
+ Fix some issues reported by deronj:
+ - Hopefully fix a crash in compCheckRedirect on unrealizing windows.
+ - Remove an extern that doesn't point at anything.
+
+2004-08-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/composite/Imakefile:
+ * programs/Xserver/composite/cw.c:
+ * programs/Xserver/composite/cw.h:
+ * programs/Xserver/composite/cw_ops.c:
+ * programs/Xserver/composite/cw_render.c:
+ * programs/Xserver/miext/cw/Imakefile:
+ Move cw to miext/cw after repo-copy. It's not really tied to the
+ composite extension, and may need to be separate any way to handle some
+ wrapping ordering vs linking ordering issues.
+
+2004-08-12 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineRestore):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONEnterServer):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RadeonInit3DEngine), (R100SetupTexture),
+ (R100SetupForCPUToScreenAlphaTexture),
+ (R100SetupForCPUToScreenTexture), (R200SetupTexture),
+ (R200SetupForCPUToScreenAlphaTexture),
+ (R200SetupForCPUToScreenTexture):
+ Fix context switching on Radeons and build problem when XF86DRI is
+ not defined (Bug #922, Eric Anholt).
+
+2004-08-12 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/miext/damage/damage.c (damageCopyPlane)
+ (damageCopyArea):
+ Add call to SourceValidate() when pDst == pSrc, so misprite.c get
+ a chance to remove the sprite before the area is copied. The
+ drivers handle pDst != pSrc (#1030).
+
+2004-08-11 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_chipset.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_chipset.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ * programs/Xserver/hw/xfree86/drivers/imstt/imstt_driver.c:
+ Factor out R{128,ADEON}Chipsets into their own headers so they can be
+ sanely included in both the ati core and the r128/radeon submodules;
+ r128 and radeon can now be directly loaded under dlloader. Teach
+ imstt about the dlloader-frendly way to talk to fbdevhw. (Partial
+ for bugs #393 and #400.)
+
+2004-08-11 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/compwindow.c:
+ (compWindowUpdateAutomatic):
+ Paint to parent window instead of parent window's pixmap
+ (helps for servers that don't have a pixmap for the root)
+
+ * programs/Xserver/composite/cw_render.c: (cwGetBackingPicture):
+ Fix offsets for render drawing.
+
+2004-08-11 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/darwin.c: (DarwinPrintBanner):
+ Fix leftover XF86_VERSION_SNAP macro.
+
+2004-08-11 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * xftfreetype.c: (_XftReleaseFile):
+ Called strlen with (f->file) without checking for NULL (which
+ happens when directly using FT_Face objects) (Bug #1047, Keith
+ Packard).
+
+2004-08-11 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c:
+ Bug #979: Don't include <sys/sysmacros.h> on linux, it occasionally
+ emits makedev() as a function call that elfloader can't resolve.
+ Originally Gentoo Bug #41962, reported by Ryan Breen, fix feedback
+ from Ryan Lortie.
+
+2004-08-11 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c:
+ Teach the loader about the extra symbols needed for Propolice-
+ protected modules to work under elfloader. From Matthieu Herrb
+ (OpenBSD) by way of Travis Tilley (Gentoo).
+
+2004-08-11 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/X11.tmpl:
+ Fix Xnest and Xdmx builds when BuildServersOnly is YES (Bug #1026,
+ Alexander Gottwald, Kevin Martin).
+
+2004-08-11 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/fb/fbwindow.c: (fbCopyWindow):
+ Add COMPOSITE change to fbCopyWindow (not needed yet)
+
+ * programs/Xserver/hw/xnest/Cursor.c: (xnestSetCursor),
+ (xnestMoveCursor):
+ * programs/Xserver/hw/xnest/Events.c: (ProcessInputEvents),
+ (xnestCollectEvents):
+ * programs/Xserver/hw/xnest/GCOps.c: (xnestPushPixels):
+ * programs/Xserver/hw/xnest/Screen.c: (xnestOpenScreen):
+ * programs/Xserver/hw/xnest/XNCursor.h:
+ Xnest was half-using midispcur and doing a bad job of it.
+ Replace all of that code with mipointer which does a lot of the
+ work.
+
+ * programs/Xserver/miext/damage/damage.c: (getDrawableDamageRef),
+ (damageCreateGC), (damageRemoveDamage), (damageInsertDamage),
+ (damageDestroyPixmap), (damageSetWindowPixmap), (DamageSetup),
+ (DamageRegister), (DamageUnregister):
+ * programs/Xserver/miext/damage/damagestr.h:
+ Support DDXen which don't provide GetWindowPixmap, or which
+ return NULL for the root pixmap.
+
+2004-08-11 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/os/Imakefile:
+ * programs/Xserver/os/utils.c: (CheckUserParameters):
+ Fix bogus contact address in Xserver/os/util.c (Bug #738).
+
+2004-08-11 Eric Anholt <anholt@FreeBSD.org>
+
+ reviewed by: <keithp@keithp.com>
+
+ * programs/Xserver/render/picture.c: (CopyPicture):
+ In CopyPicture, add missing call to ChangePicture to notify about
+ the changes that CopyPicture has done.
+
+2004-08-11 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/Imake.cf:
+ * config/cf/linux.cf:
+ * config/cf/xorg.cf:
+ * config/imake/imakemdep.h:
+ * include/Xmd.h:
+ * lib/Xt/Xtos.h:
+ * programs/Xserver/fb/fb.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.h:
+ * programs/Xserver/os/xalloc.c:
+ Apply PPC64 build patch (Bug #303, Mike A. Harris, Alan
+ Coopersmith).
+
+2004-08-11 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/xf86config/Imakefile:
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ Patch xorgconfig to generate config files with correct keyboard
+ driver; use "kbd" by default, "keyboard" if
+ UseDeprecatedKeyboarDriver is YES (#1040).
+
+ * programs/Xserver/Xprint/etc/profile.d/Imakefile:
+ * programs/Xserver/Xprint/etc/Xsession.d/Imakefile:
+ * programs/Xserver/Xprint/etc/init.d/Imakefile:
+ Don't install files outside ProjectRoot when
+ NothingOutsideProjectRoot is YES (#972).
+
+2004-08-11 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c:
+ Fix vesa.c's shadow symbol list.
+
+2004-08-11 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.html
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+ Syncing FAQ
+
+2004-08-11 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint.cpp
+ Bugzilla #492: /etc/init.d/xprint did not source xorg.conf
+ for font paths additionally to xfree86 config files
+
+2004-08-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/x11perf/Imakefile:
+ * programs/x11perf/do_traps.c: (InitFixedTraps):
+ - Fix the build with old libXrender headers installed by including
+ TOP_INCLUDES first in the INCLUDES line.
+ - Drive-by fix of unused variables warnings in do_traps.c.
+
+2004-08-10 Adam Jackson <ajax@freedesktop.org>
+
+ * lib/X11/PolyReg.c:
+ Bug #372: Prevent a crash in XPolygonRegion when called with a bogus
+ point count. Reported by Andreas Luik.
+
+2004-08-10 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atimodule.c:
+ Bug #978: Silence more unresolved symbol warnings from the ati driver.
+ Patch from Stefan Dirsch.
+
+2004-08-10 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONAccelInit):
+ Fix Radeon build problem with #define DoLoadableServer NO (Bug
+ #1031)
+
+2004-08-10 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/xorg.cf:
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (xf86PrintBanner):
+ Update version to 6.7.99.1 and fix problem with snapshot string
+ generation.
+
+2004-08-10 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/atimodule.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ Bug #978: Silence unresolved symbol warnings from the ati driver.
+ Reported by Michel Daenzer.
+
+2004-08-10 Kristian Høgsberg <krh@redhat.com>
+
+ * lib/Xcomposite/xcomposite.pc.in (Version):
+ * lib/Xcomposite/xdamage.pc.in (Version):
+ * lib/Xcomposite/xfixes.pc.in (Version):
+ Replace @PACKAGE_VERSION@ with @VERSION@ so the substs works, fix
+ copy-and-paste error.
+
+2004-08-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/Imakefile:
+ Fix install problem on platforms not using xorg.cf/xfree86.cf
+ (Bug #339, Harold L. Hunt II, Alexander Gottwald).
+
+ * lib/X11/lcUTF8.c: (create_tofontcs_conv):
+ Fix crash when using X core font in zh_CN.UTF-8 locale (Bug #368,
+ Yu Shao, David Dawes).
+
+ * programs/Xserver/GL/glx/glxcmds.c: (DoMakeCurrent):
+ Fix glXMakeCurrent(Dpy, None, NULL) crash (Bug #719, Adam
+ Jackson).
+
+ * config/cf/lnxLib.tmpl:
+ * programs/Xserver/include/servermd.h:
+ HP-PA build fix (Bug #828, Guy Martin, Paul Anderson).
+
+ * include/Imakefile:
+ * include/extensions/Imakefile:
+ Fix SDK build for GATOS and Wacom driver (Bug #829, Bryan Stine).
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ (MGAReadBios):
+ Fix attempt to read video ROM before enabling it (Bug #843, Ivan
+ Kokshaysky, Mike A. Harris).
+
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ (FindPCIVideoInfo):
+ Fix detection of primary adapter (Bug #843, Ivan Kokshaysky, Mike
+ A. Harris).
+
+ * programs/xset/xset.man:
+ Clarify xset man page description of how to use the keyboard
+ repeat rate settings (Bug #846, Mike A. Harris).
+
+ * programs/xkbcomp/symbols/czsk:
+ * programs/xkbcomp/symbols/jp:
+ * programs/xkbcomp/symbols/pc/pc:
+ * programs/xkbcomp/symbols/us:
+ * programs/xkbcomp/symbols/us_group2:
+ * programs/xkbcomp/symbols/us_group3:
+ Fix problem where print-screen key would get remapped to sys-req
+ in certain keymaps, which broke GNOME printscreen functionality
+ (Bug #847, Owen Taylor).
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineRestore):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONEnterServer):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RADEONInit3DEngineForRender), (RadeonInit3DEngine),
+ (R100SetupTexture), (R100SetupForCPUToScreenAlphaTexture),
+ (R200SetupTexture):
+ Fix several render problems:
+ - MMIO mode support
+ - Hang on IGP chips
+ - VT switching hang
+ - 3D render corruption
+ (Bug #922, Hui Yu).
+
+2004-08-09 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/loader/extsym.c (extLookupTab):
+ * programs/Xserver/hw/xfree86/loader/dixsym.c (dixLookupTab):
+ Move the new render symbols to dixsym.c instead so they are
+ grouped with the other render symbols.
+
+ * programs/Xserver/fb/fbpixmap.c (fbCreatePixmapBpp):
+ Initialize screen_x and screen_y to 0. This fixes a problem with
+ the new Damage based sprite, where intersection test against the
+ root pixmap would fail because the two fields were not
+ initialized (damage.c, 166-170).
+
+2004-08-08 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * config/cf/X11.tmpl:
+ * programs/Xserver/Imakefile:
+ Fix building without Xfixes extension
+
+ * include/extensions/Imakefile:
+ * lib/Xext/Imakefile:
+ * programs/Xserver/dix/events.c:
+ Fix building without Xevie
+
+ * programs/Xserver/hw/dmx/dmxdpms.c: (_dmxDPMSInit):
+ * programs/Xserver/hw/xfree86/loader/dixsym.c:
+ * programs/Xserver/hw/xfree86/loader/xf86sym.c:
+ Fix building without DPMS
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ (configExtensions):
+ Fix "Extensions" section config file support to accept general
+ boolean options
+
+2004-08-08 Kristian Høgsberg <krh@redhat.com>
+
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ * config/cf/xorgsite.def:
+ * config/cf/xorg.cf:
+ * programs/Xserver/hw/xfree86/common/xf86Init.c (InitInput):
+ Disable legacy keyboard driver "keyboard", unless
+ USE_DEPRECATED_KEYBOARD_DRIVER is defined. Print warning if the
+ old driver is used.
+
+ * programs/Xserver/hw/xfree86/loader/extsym.c (extLookupTab):
+ Add new render symbols to list of exported extension symbols so
+ DoLoadableServer works again.
+
+ * programs/Xserver/hw/xfree86/drivers/i810/Imakefile:
+ Remove non-existent i830_3d_reg.h from i810 install.sdk target.
+
+2004-08-07 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * lib/Xdmcp/DAofA8.c: (XdmcpDisposeARRAYofARRAY8):
+ Check to see if array->data is NULL before we dereference it,
+ instead of after. (Prevents segfault when array->data is
+ initialized to NULL, but array->length is not set to 0.)
+
+ * programs/xdm/xdmcp.c: (request_respond):
+ Always initialize both data & length in ARRAYs.
+
+2004-08-06 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/OpenBSDLib.tmpl:
+ update shared libries revisions on OpenBSD to track libc ABI changes.
+
+2004-08-06 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/mi/mieq.c:
+ Fix minor timestamp lossage in mieq.
+
+ * programs/Xserver/mi/Imakefile:
+ * programs/Xserver/mi/misprite.c: (miSpriteReportDamage),
+ (miSpriteCopyWindow):
+ * programs/Xserver/mi/mispritest.h:
+ Replace miSprite implementation with Damage-based one.
+ Otherwise damage and misprite conflict causing looping.
+
+ * programs/Xserver/miext/damage/damage.c: (damageDamageRegion),
+ (DamageSubtract):
+ Change pScreen usage around a bit to eliminate warnings
+
+
+2004-08-06 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/hw/vfb/InitOutput.c: (vfbScreenInit),
+ (InitOutput):
+ Eliminate mfb support. Fix visuals to match "normal" PC hardware
+ (making lightpipe work).
+
+2004-08-06 Keith Packard <keithp@keithp.com>
+
+ * config/cf/linux.cf:
+ Fix Debian section to respect NothingOutsideProjectRoot directive
+
+2004-08-06 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/cw.c: (cwCheapValidateGC),
+ (miInitializeCompositeWrapper):
+ Clean up cw initialization, make sure wrappers re-wrap on exit.
+
+2004-08-06 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/composite/compinit.c: (compAddAlternateVisuals):
+ * programs/Xserver/dix/colormap.c:
+ * programs/Xserver/include/scrnintstr.h:
+ Remove alpha-related fields from visual structure to retain
+ binary compatibilty. Applications using ARGB visuals will need
+ to use Render or other mechanisms to compute pixel values
+ instead of AllocColor
+
+2004-08-06 Keith Packard <keithp@keithp.com>
+
+ * lib/Xrender/AddTrap.c: (XRenderAddTraps):
+ * lib/Xrender/Imakefile:
+ * lib/Xrender/Xrender.h:
+ * lib/Xrender/configure.ac:
+ Update to version 0.9 of Xrender (includes XRenderAddTraps)
+
+2004-08-06 Keith Packard <keithp@keithp.com>
+
+ * include/extensions/render.h:
+ * include/extensions/renderproto.h:
+ * programs/Xserver/fb/Imakefile:
+ * programs/Xserver/fb/fbedge.c: (fbRasterizeEdges):
+ * programs/Xserver/fb/fbedgeimp.h:
+ * programs/Xserver/fb/fbpict.c: (fbPictureInit):
+ * programs/Xserver/fb/fbpict.h:
+ * programs/Xserver/fb/fbtrap.c: (fbAddTraps),
+ (fbRasterizeTrapezoid), (_GreaterY), (_Clockwise),
+ (fbAddTriangles):
+ * programs/Xserver/render/Imakefile:
+ * programs/Xserver/render/mipict.c: (miIsSolidAlpha),
+ (miPictureInit):
+ * programs/Xserver/render/mipict.h:
+ * programs/Xserver/render/mitrap.c: (miTrapezoids):
+ * programs/Xserver/render/mitri.c: (miTriangles), (miTriStrip),
+ (miTriFan):
+ * programs/Xserver/render/picture.c: (AddTraps):
+ * programs/Xserver/render/picture.h:
+ * programs/Xserver/render/picturestr.h:
+ * programs/Xserver/render/render.c: (RenderNumberRequests),
+ (ProcRenderAddTraps), (SProcRenderAddTraps),
+ (PanoramiXRenderAddTraps), (PanoramiXRenderInit):
+ * programs/Xserver/render/renderedge.c: (RenderSampleCeilY),
+ (RenderSampleFloorY), (RenderEdgeStep), (_RenderEdgeMultiInit),
+ (RenderEdgeInit), (RenderLineFixedEdgeInit):
+ * programs/Xserver/render/renderedge.h:
+ * programs/x11perf/do_tests.c:
+ * programs/x11perf/do_traps.c: (InitFixedTraps), (DoFixedTraps),
+ (EndFixedTraps), (InitFixedTrapezoids), (DoFixedTrapezoids),
+ (EndFixedTrapezoids):
+ * programs/x11perf/x11perf.h:
+ Add RenderAddTraps. Rewrite trapezoid rendering code.
+
+2004-08-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig):
+ Disable Render acceleration in Radeon driver temporarily until
+ it no longer conflicts with the 3D code.
+
+2004-08-05 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/composite/cw.c: (miInitializeCompositeWrapper),
+ (cwCloseScreen):
+ * programs/Xserver/composite/cw.h:
+ * programs/Xserver/composite/cw_render.c: (cwFiniRender):
+ Fix missing ';' in cw.c and unwrap the render wrapper properly.
+
+2004-08-05 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/composite/cw.c: (miInitializeCompositeWrapper):
+ * programs/Xserver/composite/cw.h:
+ * programs/Xserver/composite/cw_render.c: (cwCreateBackingPicture),
+ (cwDestroyBackingPicture), (cwCreatePicture), (cwValidatePicture),
+ (cwGlyphs), (cwCompositeRects), (cwTrapezoids), (cwTriangles),
+ (cwTriStrip), (cwTriFan), (cwInitializeRender):
+ * programs/Xserver/render/picture.c: (CopyPicture):
+ * programs/Xserver/render/picturestr.h:
+ - Add a new Render function, CopyPicture, which will update a picture
+ with the flagged bits from a source picture. Approved in principle
+ by keithp.
+ - Use CopyPicture and SetTransform to update most of the backing
+ picture's state in the composite wrapper. Filters are still missing.
+ - Don't allocate a picture private, now that we calculate clipping
+ properly and don't need the serialNumber or stateChanges.
+ - Use the format of the source pixmap rather than generating the format
+ from the window's visual.
+ - Wrap the rest of the Render primitives that were stubbed out before.
+
+Thu Aug 5 15:34:04 2004 Soeren Sandmann <sandmann@daimi.au.dk>
+
+ * programs/Xserver/fb/Imakefile: Compile fbfill.c and fbpict.c
+ with the mmx CFLAGS. DOH.
+
+2004-08-04 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/composite/cw.c: (cwValidateGC),
+ (cwFillRegionSolid), (cwFillRegionTiled),
+ (cwPaintWindowBackground), (cwPaintWindowBorder):
+ - Always validate the backing GC in cwValidateGC, not just when the clip
+ list changes.
+ - Use FillTiled instead of FillSolid for painting tiled
+ border/background pixmaps, and don't needlessly change the scratch
+ GC's defaults.
+ - Use the preferred dixChangeGC instead of DoChangeGC.
+ - Simplify a silly loop and clean up a couple of comments.
+
+2004-08-04 Michel Daenzer <michel@daenzer.net>
+
+ reviewed by: Hui Yu <hyu@ati.com>, Kevin E. Martin
+ <kem@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c:
+ (RADEONSetCursorColors), (RADEONLoadCursorImage),
+ (RADEONLoadCursorARGB):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONPutImage):
+ Use info->ModeReg.surface_cntl to restore byte swapping for the
+ framebuffer aperture on big endian machines, remove superfluous local
+ variables and register reads.
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (R100SetupTexture), (R200SetupTexture):
+ Adapt framebuffer aperture byte swapping to texture format before
+ copying data to offscreen area and restore it afterwards on big endian
+ machines, fixes Render acceleration there.
+
+2004-08-04 Egbert Eich <eich-at-freedesktop-org>
+
+ * lib/font/FreeType/ft.h:
+ * lib/font/FreeType/ftfuncs.c: (FT_Do_SBit_Metrics),
+ (FreeTypeRasteriseGlyph):
+ Optimization of CJK rendering when using versions of freetype
+ prior to 2.1.8 (Chisato Yamauchi).
+ * lib/font/FreeType/fttools.c:
+ * lib/font/FreeType/module/myftstdlib.h:
+ A small backward compatibility fix to make the freetype module
+ build with freetype version < 2.1.7.
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c:
+ (fbdevHWLoadPalette), (fbdevHWAdjustFrame), (fbdevHWDPMSSet),
+ (fbdevHWSaveScreen):
+ Fixed/added some debugging code.
+
+2004-08-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitAccel):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RadeonGetTextureFormat), (RadeonGetColorFormat),
+ (RadeonGetBlendCntl), (R100SetupTexture),
+ (R100SetupForCPUToScreenAlphaTexture),
+ (R100SetupForCPUToScreenTexture), (R200SetupTexture),
+ (R200SetupForCPUToScreenAlphaTexture),
+ (R200SetupForCPUToScreenTexture):
+ * programs/Xserver/hw/xfree86/xaa/xaa.h:
+ * programs/Xserver/hw/xfree86/xaa/xaaInitAccel.c: (XAAInitAccel):
+ * programs/Xserver/hw/xfree86/xaa/xaaPict.c: (XAADoComposite):
+ - Add two new XAA hooks, SetupForCPUToScreenTexture2 and
+ SetupForCPUToScreenAlphaTexture2. These add a dstFormat argument
+ after the previous format argument, which the driver needs to use to
+ properly set up the destination format. Two new arrays are added for
+ the list of destination formats supported that correspond to the
+ previous format arrays for sources.
+ - Make Render acceleration only occur when the new hook for that
+ acceleration type is supplied and the dst format list is set, along
+ with the src format list being set. Without knowing the destination
+ format, the Render acceleration couldn't properly support all the
+ destinations it might encounter.
+ - Bump XAA module minor version.
+ - Update the Radeon Render acceleration to use the new hooks when the
+ XAA module is sufficiently new. Fix a bug in the src/dst alpha
+ booleans for ops, and use them to set blend_cntl to support
+ destinations without alpha. Add missing PICT_a1r5g5b5 texture format,
+ and add list terminator. (!)
+
+2004-08-03 Matthieu Herrb <matthieu.herrb@laas.fr>
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_merged_fb.c
+ Add missing argument to xf86DrvMsg().
+
+2004-08-03 Matthieu Herrb <matthieu.herrb@laas.fr>
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h
+ Fix Constification problems.
+
+2004-08-03 Matthieu Herrb <matthieu.herrb@laas.fr>
+ * programs/Xserver/hw/xfree86/ddc/xf86DDC.h
+ * programs/Xserver/hw/xfree86/vgahw/vgaHW.c
+ * programs/Xserver/hw/xfree86/vgahw/vgaHW.h
+ * programs/Xserver/miext/shadow/shadow.h
+ * programs/Xserver/miext/shadow/shpacked.c
+ * programs/Xserver/miext/shadow/shplanar.c
+ * programs/Xserver/miext/shadow/shrotate.c
+ Fix glitches in pointer to functions declarations.
+
+2004-08-03 Egbert Eich <eich-at-freedesktop-org>
+
+ * lib/font/FreeType/ftfuncs.c: (FreeTypeOpenInstance),
+ (FT_Do_SBit_Metrics), (FreeTypeRasteriseGlyph):
+ Bugzilla #925: Simpler version of backward compatibility
+ fix (Chisato Yamauchi).
+ Fix to support older versions of gcc (Matthieu Herrb).
+
+2004-08-03 Matthieu Herrb <matthieu.herrb@laas.fr>
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_storm.c:
+ * programs/Xserver/hw/xfree86/xaa/xaaPCache.c:
+ * programs/Xserver/hw/xfree86/xaa/xaalocal.h:
+ Fix declaration of XAACachePlanarMonoStippleProc.
+ Rename XAACachePlanarMonoStippleWeak to
+ XAAGetCachePlanarMonoStipple() for consistency with other parts of
+ xaa and fix forward declaration in xaalocal.h.
+ Fixes last comments on Bug #962.
+
+2004-08-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/X11.tmpl:
+ * programs/Xserver/Imakefile:
+ Fix build with BuildComposite by linking the composite library into the
+ servers before damage/xfixes, and enable BuildComposite by default now.
+ Note that the Composite extension is still disabled at run-time by
+ default.
+
+2004-08-02 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/composite/compinit.c:
+ * programs/Xserver/composite/cw.c: (cwGetBackingDrawable),
+ (cwCreateGCPrivate), (cwCheapValidateGC), (cwGetImage),
+ (cwGetSpans), (cwFillRegionSolid), (cwFillRegionTiled),
+ (cwPaintWindowBackground), (cwPaintWindowBorder),
+ (miInitializeCompositeWrapper), (cwCloseScreen):
+ * programs/Xserver/composite/cw.h:
+ * programs/Xserver/composite/cw_ops.c: (cwFillSpans), (cwSetSpans),
+ (cwPutImage), (cwCopyArea), (cwCopyPlane), (cwPolyPoint),
+ (cwPolylines), (cwPolySegment), (cwPolyRectangle), (cwPolyArc),
+ (cwFillPolygon), (cwPolyFillRect), (cwPolyFillArc), (cwPolyText8),
+ (cwPolyText16), (cwImageText8), (cwImageText16), (cwImageGlyphBlt),
+ (cwPolyGlyphBlt), (cwPushPixels):
+ * programs/Xserver/composite/cw_render.c: (cwGetBackingPicture),
+ (cwCreatePicture), (cwInitializeRender):
+ Major improvements to Composite wrapper. Several issues remain, but it
+ now appears stable in limited testing.
+ - Allocate the picture private, avoiding segfault.
+ - Wrap PaintWindow to draw the background/border to the backing pixmap
+ (based on Deron Johnson's comptran.c).
+ - Set the x_off/y_off returns to translate coordinates properly.
+ - Don't bother allocating temporary areas for the modified coordinates.
+ Layers above are responsible for handling lower layers changing the
+ arguments, so cw doesn't have to worry about it. mibstore.c has to do
+ the allocation because it calls down twice (front buffer and backing
+ store). (Suggested by keithp)
+ - Handle the mode argument to PolyPoint, Polylines, and FillPolygon.
+ - Remove some dead elements in the cw privates.
+ - Kill a prototype warning in compinit.c by adding the cw.h header.
+
+2004-08-02 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/mi/miinitext.c:
+ The Damage extension has to wrap after (be called before) the Composite
+ extension so that the redirecting of drawables by the wrapper doesn't
+ confuse Damage.
+
+2004-08-02 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/apm/apm_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/apm/apm_funcs.c:
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_storm.c:
+ * programs/Xserver/hw/xfree86/drivers/s3/s3_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c:
+ * programs/Xserver/hw/xfree86/ramdac/IBM.c:
+ * programs/Xserver/hw/xfree86/ramdac/IBM.h:
+ * programs/Xserver/hw/xfree86/ramdac/TI.c:
+ * programs/Xserver/hw/xfree86/ramdac/TI.h:
+ * programs/Xserver/hw/xfree86/vgahw/vgaHW.c:
+ * programs/Xserver/hw/xfree86/vgahw/vgaHW.h:
+ * programs/Xserver/hw/xfree86/xaa/xaaPCache.c:
+ * programs/Xserver/hw/xfree86/xaa/xaaStipple.c:
+ * programs/Xserver/hw/xfree86/xaa/xaaTEGlyph.c:
+ * programs/Xserver/hw/xfree86/xaa/xaalocal.h:
+ * programs/Xserver/miext/shadow/shadow.h:
+ * programs/Xserver/miext/shadow/shpacked.c:
+ * programs/Xserver/miext/shadow/shplanar.c:
+ * programs/Xserver/miext/shadow/shrotate.c:
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c:
+ * programs/Xserver/hw/xfree86/xf1bpp/mfbmap.h:
+ Bug #962: Remove LoaderSymbol calls introduced by the dlloader
+ work so DoLoadableServer NO builds work again.
+
+Mon Aug 2 21:49:33 2004 Soeren Sandmann <sandmann@redhat.com>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
+ (mapVidMem): Remove double cast.
+
+2004-08-02 Egbert Eich <eich-at-freedesktop-org>
+
+ * config/cf/linux.cf:
+ Removed distro specific stuff.
+ * lib/font/FreeType/ftfuncs.c: (FreeTypeOpenInstance):
+ Fixed FreeType module to build with FreeType versions older
+ than 2.1.7.
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ (configureDDCMonitorSection):
+ Fixed typo.
+ * programs/Xserver/hw/xfree86/common/xf86DPMS.c: (DPMSClose):
+ Added vtSema to protect call of driver DPMS function.
+ * programs/Xserver/hw/xfree86/common/xf86Helper.c:
+ (xf86SetDefaultVisual):
+ removed unneeded variable
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (InitOutput):
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c:
+ (xf86RandRGetInfo), (xf86RandRSetConfig):
+ * programs/Xserver/hw/xfree86/common/xf86str.h:
+ Modified RandR driver hook to reduce the number of function calls
+ to one. Function is sufficiently generic to be extended in the
+ future.
+
+2004-08-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONDisplayPowerManagementSet):
+ Fix Radeon crash on server exit or generation
+
+2004-08-01 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:
+ Remove the last user of fbdevHWFillInScreenInfo.
+
+2004-07-31 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/bsdLib.tmpl:
+ * config/cf/darwinLib.tmpl:
+ Added SharedXfixesReqs, SharedXdamageReqs and SharedXcompositeReqs
+
+2004-07-31 Stuart Kreitman <stuart dot kreitman at sun dot com>
+
+ * lib/Xext/Imakefile:
+ * lib/Xext/Xevie.c:
+
+2004-07-31 Alexander Gottwald <ago@freedesktop.org>
+
+ * config/cf/cygwin.tmpl:
+ Added SharedXfixesReqs, SharedXdamageReqs and SharedXcompositeReqs
+
+2004-07-31 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Config.c:
+ (configExtensions), (xf86HandleConfigFile):
+ * programs/Xserver/hw/xfree86/parser/Extensions.c:
+ (xf86parseExtensionsSection), (xf86printExtensionsSection),
+ (xf86freeExtensions):
+ * programs/Xserver/hw/xfree86/parser/Imakefile:
+ * programs/Xserver/hw/xfree86/parser/configProcs.h:
+ * programs/Xserver/hw/xfree86/parser/read.c: (xf86readConfigFile),
+ (xf86freeConfig):
+ * programs/Xserver/hw/xfree86/parser/write.c: (doWriteConfigFile):
+ * programs/Xserver/hw/xfree86/parser/xf86Parser.h:
+ * programs/Xserver/include/globals.h:
+ * programs/Xserver/mi/miinitext.c: (EnableDisableExtension),
+ (EnableDisableExtensionError):
+ * programs/Xserver/os/utils.c: (ProcessCommandLine):
+ Add "Extensions" section support to configuration parser
+
+2004-07-31 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/composite/Imakefile:
+ * programs/Xserver/composite/compalloc.c: (compReportDamage),
+ (compDestroyDamage), (compRedirectWindow), (compFreeClientWindow),
+ (compUnredirectWindow), (compRedirectSubwindows),
+ (compFreeClientSubwindows), (compUnredirectSubwindows),
+ (compRedirectOneSubwindow), (compUnredirectOneSubwindow),
+ (compAllocPixmap), (compFreePixmap), (compReallocPixmap):
+ * programs/Xserver/composite/compext.c: (CompositeClientCallback),
+ (CompositeResetProc), (FreeCompositeClientWindow),
+ (FreeCompositeClientSubwindows), (ProcCompositeQueryVersion),
+ (ProcCompositeRedirectWindow), (ProcCompositeRedirectSubwindows),
+ (ProcCompositeUnredirectWindow),
+ (ProcCompositeUnredirectSubwindows),
+ (ProcCompositeCreateRegionFromBorderClip),
+ (ProcCompositeNameWindowPixmap), (CompositeNumberRequests),
+ (ProcCompositeDispatch), (SProcCompositeQueryVersion),
+ (SProcCompositeRedirectWindow), (SProcCompositeRedirectSubwindows),
+ (SProcCompositeUnredirectWindow),
+ (SProcCompositeUnredirectSubwindows),
+ (SProcCompositeCreateRegionFromBorderClip),
+ (SProcCompositeNameWindowPixmap), (SProcCompositeDispatch),
+ (CompositeExtensionInit):
+ * programs/Xserver/composite/compinit.c: (compCloseScreen),
+ (compScreenUpdate), (compBlockHandler), (compFindVisuallessDepth),
+ (compAddAlternateVisuals), (compScreenInit):
+ * programs/Xserver/composite/compint.h:
+ * programs/Xserver/composite/compwindow.c: (compCheckWindow),
+ (compCheckTree), (compSetPixmapVisitWindow), (compSetPixmap),
+ (compCheckRedirect), (compPositionWindow), (compRealizeWindow),
+ (compUnrealizeWindow), (compPaintWindowBackground),
+ (compClipNotify), (compIsAlternateVisual), (compImplicitRedirect),
+ (compMoveWindow), (compResizeWindow), (compChangeBorderWidth),
+ (compReparentWindow), (compCopyWindow), (compCreateWindow),
+ (compDestroyWindow), (compSetRedirectBorderClip),
+ (compGetRedirectBorderClip), (compGetWindowVisual),
+ (compWindowFormat), (compWindowUpdateAutomatic),
+ (compWindowUpdate):
+ * programs/Xserver/composite/cw.c: (cwGetBackingDrawable),
+ (cwCreateGCPrivate), (cwDestroyGCPrivate), (cwValidateGC),
+ (cwChangeGC), (cwCopyGC), (cwDestroyGC), (cwChangeClip),
+ (cwCopyClip), (cwDestroyClip), (cwCheapValidateGC),
+ (cwCheapChangeGC), (cwCheapCopyGC), (cwCheapDestroyGC),
+ (cwCheapChangeClip), (cwCheapCopyClip), (cwCheapDestroyClip),
+ (cwCreateGC), (cwGetImage), (cwGetSpans),
+ (miInitializeCompositeWrapper), (cwCloseScreen):
+ * programs/Xserver/composite/cw.h:
+ * programs/Xserver/composite/cw_ops.c: (cwFillSpans), (cwSetSpans),
+ (cwPutImage), (cwCopyArea), (cwCopyPlane), (cwPolyPoint),
+ (cwPolylines), (cwPolySegment), (cwPolyRectangle), (cwPolyArc),
+ (cwFillPolygon), (cwPolyFillRect), (cwPolyFillArc), (cwPolyText8),
+ (cwPolyText16), (cwImageText8), (cwImageText16), (cwImageGlyphBlt),
+ (cwPolyGlyphBlt), (cwPushPixels):
+ * programs/Xserver/composite/cw_render.c: (cwFindVisualById),
+ (cwCreateBackingPicture), (cwDestroyBackingPicture),
+ (cwGetBackingPicture), (cwCreatePicture), (cwDestroyPicture),
+ (cwChangePicture), (cwValidatePicture), (cwComposite), (cwGlyphs),
+ (cwCompositeRects), (cwTrapezoids), (cwTriangles), (cwTriStrip),
+ (cwTriFan), (cwInitializeRender):
+ * programs/Xserver/dix/colormap.c:
+ * programs/Xserver/dix/window.c: (SetWindowToDefaults):
+ * programs/Xserver/include/pixmapstr.h:
+ * programs/Xserver/include/scrnintstr.h:
+ * programs/Xserver/include/windowstr.h:
+ * programs/Xserver/mi/mi.h:
+ * programs/Xserver/mi/miinitext.c:
+ * programs/Xserver/mi/mivaltree.c:
+ (miRegisterRedirectBorderClipProc), (miComputeClips):
+ Integrate COMPOSITEWRAP branch including composite wrapper. This code
+ still has several issues:
+ - CopyWindow and PaintWindow wrappers missing (will be done soon)
+ - Some segfaults seen in the Render wrappers.
+ - Xprt server build breaks with Composite.
+ - DDXs must be recompiled for Composite due to VisualRec size change.
+ - Composite bugs pointed out by Deron Johnson in email.
+
+ Also, reorder XFixes initialization according to comments by Keith which
+ are also in xserver CVS.
+
+2004-07-31 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/xfixes/region.c: (ProcXFixesExpandRegion),
+ (SProcXFixesExpandRegion):
+ * programs/Xserver/xfixes/xfixes.c: (XFixesNumberRequests):
+ * programs/Xserver/xfixes/xfixes.h:
+ * programs/Xserver/xfixes/xfixesint.h:
+ Update xfixes server code to major version 3 from xserver CVS, and
+ perform minor diff-reduction versus xserver CVS.
+
+2004-07-31 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/composite/Imakefile:
+ * programs/Xserver/composite/compalloc.c: (compReportDamage),
+ (compDestroyDamage), (compRedirectWindow), (compFreeClientWindow),
+ (compUnredirectWindow), (compRedirectSubwindows),
+ (compFreeClientSubwindows), (compUnredirectSubwindows),
+ (compRedirectOneSubwindow), (compUnredirectOneSubwindow),
+ (compAllocPixmap), (compFreePixmap), (compReallocPixmap):
+ * programs/Xserver/composite/compext.c: (CompositeClientCallback),
+ (CompositeResetProc), (FreeCompositeClientWindow),
+ (FreeCompositeClientSubwindows), (ProcCompositeQueryVersion),
+ (ProcCompositeRedirectWindow), (ProcCompositeRedirectSubwindows),
+ (ProcCompositeUnredirectWindow),
+ (ProcCompositeUnredirectSubwindows),
+ (ProcCompositeCreateRegionFromBorderClip),
+ (ProcCompositeNameWindowPixmap), (CompositeNumberRequests),
+ (ProcCompositeDispatch), (SProcCompositeQueryVersion),
+ (SProcCompositeRedirectWindow), (SProcCompositeRedirectSubwindows),
+ (SProcCompositeUnredirectWindow),
+ (SProcCompositeUnredirectSubwindows),
+ (SProcCompositeCreateRegionFromBorderClip),
+ (SProcCompositeNameWindowPixmap), (SProcCompositeDispatch),
+ (CompositeExtensionInit):
+ * programs/Xserver/composite/compinit.c: (compCloseScreen),
+ (compScreenUpdate), (compBlockHandler), (compFindVisuallessDepth),
+ (compAddAlternateVisuals), (compScreenInit):
+ * programs/Xserver/composite/compint.h:
+ * programs/Xserver/composite/compwindow.c: (compCheckWindow),
+ (compCheckTree), (compSetPixmapVisitWindow), (compSetPixmap),
+ (compCheckRedirect), (compPositionWindow), (compRealizeWindow),
+ (compUnrealizeWindow), (compPaintWindowBackground),
+ (compClipNotify), (compIsAlternateVisual), (compImplicitRedirect),
+ (compMoveWindow), (compResizeWindow), (compChangeBorderWidth),
+ (compReparentWindow), (compCopyWindow), (compCreateWindow),
+ (compDestroyWindow), (compSetRedirectBorderClip),
+ (compGetRedirectBorderClip), (compGetWindowVisual),
+ (compWindowFormat), (compWindowUpdateAutomatic),
+ (compWindowUpdate):
+ * programs/Xserver/composite/cw.c: (DrawableIsRedirWindow),
+ (cwGetBackingDrawable), (cwCreateGCPrivate), (cwDestroyGCPrivate),
+ (cwValidateGC), (cwChangeGC), (cwCopyGC), (cwDestroyGC),
+ (cwChangeClip), (cwCopyClip), (cwDestroyClip), (cwCheapValidateGC),
+ (cwCheapChangeGC), (cwCheapCopyGC), (cwCheapDestroyGC),
+ (cwCheapChangeClip), (cwCheapCopyClip), (cwCheapDestroyClip),
+ (cwCreateGC), (cwGetImage), (cwGetSpans),
+ (miInitializeCompositeWrapper), (cwCloseScreen):
+ * programs/Xserver/composite/cw.h:
+ * programs/Xserver/composite/cw_ops.c: (cwFillSpans), (cwSetSpans),
+ (cwPutImage), (cwCopyArea), (cwCopyPlane), (cwPolyPoint),
+ (cwPolylines), (cwPolySegment), (cwPolyRectangle), (cwPolyArc),
+ (cwFillPolygon), (cwPolyFillRect), (cwPolyFillArc), (cwPolyText8),
+ (cwPolyText16), (cwImageText8), (cwImageText16), (cwImageGlyphBlt),
+ (cwPolyGlyphBlt), (cwPushPixels):
+ * programs/Xserver/composite/cw_render.c: (cwComposite),
+ (cwGlyphs):
+ * programs/Xserver/dix/colormap.c:
+ * programs/Xserver/dix/window.c: (SetWindowToDefaults):
+ * programs/Xserver/include/pixmapstr.h:
+ * programs/Xserver/include/scrnintstr.h:
+ * programs/Xserver/include/windowstr.h:
+ * programs/Xserver/mi/mi.h:
+ * programs/Xserver/mi/miinitext.c:
+ * programs/Xserver/mi/mivaltree.c:
+ (miRegisterRedirectBorderClipProc), (miComputeClips):
+ * programs/Xserver/render/picture.c: (PictureFindVisual),
+ (PictureInitIndexedFormats), (PictureInit), (SetPictureClipRegion):
+ * programs/Xserver/xfixes/region.c: (ProcXFixesExpandRegion),
+ (SProcXFixesExpandRegion):
+ * programs/Xserver/xfixes/xfixes.c: (XFixesNumberRequests):
+ * programs/Xserver/xfixes/xfixes.h:
+ * programs/Xserver/xfixes/xfixesint.h:
+
+2004-07-30 Eric Anholt <anholt@FreeBSD.org>
+
+ * include/extensions/Imakefile:
+ Install the new headers if the library is being built as well.
+
+2004-07-30 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/X11.tmpl:
+ * include/extensions/Imakefile:
+ * include/extensions/composite.h:
+ * include/extensions/compositeproto.h:
+ * include/extensions/xfixesproto.h:
+ * include/extensions/xfixeswire.h:
+ * lib/Imakefile:
+ * lib/Xcomposite:
+ * lib/Xdamage:
+ * lib/Xfixes:
+ Bring in Xfixes, Xdamage, and Xcomposite userland from xserver CVS:
+ - Update Xfixes headers to protocol major version 3.
+ - Add composite headers.
+ - Add libXfixes, libXdamage, and libXcomposite.
+ - Add imake glue for new libraries, but leave Composite off by default
+ until issues are resolved.
+
+2004-07-31 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/dmx/dmx.h:
+ * programs/Xserver/hw/dmx/dmxinit.c: (InitOutput),
+ (ddxProcessArgument):
+ * programs/Xserver/hw/dmx/dmxwindow.c: (dmxDestroyWindow):
+ * programs/Xserver/include/globals.h:
+ * programs/Xserver/mi/miinitext.c: (EnableDisableExtension):
+ * programs/Xserver/os/utils.c: (UseMsg), (ProcessCommandLine):
+ Add new extension enable/disable feature
+ Allow XTEST, XINERAMA, RENDER, XKB, XEVIE to be enabled/disabled
+ Update DMX to use new render disabling code
+
+2004-07-30 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/dix/cursor.c:
+ * programs/Xserver/dix/dispatch.c:
+ * programs/Xserver/dix/window.c:
+ - Add some XFIXES bits apparently missed in the DAMAGE-XFIXES merge
+ - Add missing XCSECURITY ifdef.
+ - Sync some whitespace to xserver CVS and surrounding style.
+
+2004-07-30 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/miext/damage/damage.c: (damageDamageRegion),
+ (damageRemoveDamage), (damageInsertDamage), (DamageCreate),
+ (DamageRegister), (DamageUnregister):
+ Integrate latest damage bits, including the addition of Composite code.
+ Includes REGION_INIT -> REGION_NULL necessary to avoid segfaults with
+ inlined region macros.
+
+2004-07-30 Stuart Kreitman <stuart dot kreitman at sun dot com>
+
+ * config/cf/X11.tmpl:
+ * programs/Xserver/Xext/Imakefile:
+ * programs/Xserver/Xext/xevie.c: (XevieExtensionInit), (XevieEnd),
+ (XevieClientStateCallback), (XevieServerGrabStateCallback):
+ * programs/Xserver/dix/events.c:
+ * programs/Xserver/mi/miinitext.c:
+
+ Bugzilla #947: Merge from XEVIE branch, turning on XEVIE, updating the xevie impl.
+
+2004-07-31 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/hw/xfree86/ddc/xf86DDC.c:
+ * programs/Xserver/hw/xfree86/ddc/xf86DDC.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_ddc.c:
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dac3026.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dacG.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c:
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h:
+ * programs/Xserver/hw/xfree86/vgahw/vgaHW.c:
+ * programs/Xserver/hw/xfree86/vgahw/vgaHW.h:
+ Change several LoaderSymbol calls introduced by the bug #400 patch to
+ *Weak() resolver functions.
+
+2004-07-30 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/Xt/Composite.c:
+ * lib/Xt/Composite.h:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_video.c:
+ (SMI_BuildEncodings), (SetAttrSAA7111):
+ Rename some COMPOSITE macros and enums to avoid conflicting with the
+ COMPOSITE extension's new macro. These appear to only be used
+ internally.
+
+2004-07-31 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/GL/glx/single2.c:
+ Fix compiler warning
+
+2004-07-31 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo.h:
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_2070.c:
+ (Neo2070AccelInit):
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_2097.c:
+ (Neo2097AccelInit):
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c:
+ (Neo2200AccelInit):
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ (NEOPreInit), (NEOScreenInit), (neoModeInit):
+ Adding experimental pseudocolor overlay stuff to NeoMagic
+ driver.
+
+2004-07-30 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/Imakefile:
+ * programs/Xserver/hw/darwin/quartz_1.3 removed all files:
+ Remove unused, unsupported, and broken code for Mac OS X 10.0.
+
+2004-07-30 HUI YU <hyu@ati.com>
+
+ reviewed by: <Kevin Martin>
+
+ * programs/Xserver/hw/xfree86/common/xf86PciInfo.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/atichip.c: (ATIChipID):
+ * programs/Xserver/hw/xfree86/drivers/ati/atichip.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineReset), (RADEONEngineRestore):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_bios.c:
+ (RADEONGetBIOSInfo), (RADEONGetConnectorInfoFromBIOS),
+ (RADEONGetClockInfoFromBIOS), (RADEONGetLVDSInfoFromBIOS),
+ (RADEONGetHardCodedEDIDFromBIOS), (RADEONGetTMDSInfoFromBIOS):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONEntPriv), (RADEONDisplayDDCConnected),
+ (RADEONCrtIsPhysicallyConnected), (RADEONGetPanelInfoFromReg),
+ (RADEONGetLVDSInfo), (RADEONGetTMDSInfo), (RADEONGetPanelInfo),
+ (RADEONGetClockInfo), (RADEONQueryConnectedMonitors),
+ (RADEONSetFBLocation), (RADEONGetVRamType), (RADEONPreInitConfig),
+ (RADEONValidateMergeModes), (RADEONPreInit),
+ (RADEONRestoreCommonRegisters), (RADEONRestoreCrtcRegisters),
+ (RADEONRestoreCrtc2Registers), (RADEONRestoreFPRegisters),
+ (RADEONRestorePLLRegisters), (RADEONSaveCrtcRegisters),
+ (RADEONInitDispBandwidth), (RADEONInitCrtcRegisters),
+ (RADEONInitCrtc2Registers), (RADEONInitFPRegisters),
+ (RADEONFreeScreen), (RADEONDacPowerSet),
+ (RADEONDisplayPowerManagementSet):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_macros.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ (RADEONProbe):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONDisplayVideo):
+ Add support for new Radeon chips:
+ R420/M18, R423, RV370/M22, RV380/M24, RS300.
+ Add special handlings for DELL triple-head server (RV100).
+ Misc. bug fixes for flat panel, host aperture, etc (Bug #946)
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/Imakefile:
+ Fix build on s390/s390x platforms.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Cursor.c:
+ (xf86SwitchMode):
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (InitOutput):
+ * programs/Xserver/hw/xfree86/common/xf86RandR.c:
+ (xf86RandRGetInfo), (xf86RandRSetMode), (xf86RandRSetConfig),
+ (xf86RandRInit):
+ * programs/Xserver/hw/xfree86/common/xf86str.h:
+ Add support for on-the-fly screen rotation when supported by
+ hardware (Aron Plattner).
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/fb/Imakefile:
+ * programs/Xserver/fb/fbpseudocolor.c: (xxUpdateWindowImmediately),
+ (xxGetBaseColormap), (xxCreateScreenResources), (xxCloseScreen),
+ (xxMyVisual), (xxInitColormapDummy), (xxInitColormapPrivate),
+ (xxCreateColormap), (xxCmapInstalled), (xxInstalledCmapDelete),
+ (xxDestroyColormap), (xxComputeCmapShift), (xxStoreColors),
+ (xxInstallColormap), (xxUninstallColormap),
+ (xxListInstalledColormaps), (xxCreateWindow), (xxWalkChildren),
+ (xxPickMyWindows), (xxCopyWindow), (xxWindowExposures),
+ (xxPaintWindow), (xxCopyPseudocolorRegion),
+ (xxUpdateCmapPseudocolorRegion), (xxGetWindowRegion),
+ (xxUpdateRegion), (xxUpdateFb), (xxBlockHandler),
+ (xxWakeupHandler), (xxSetup), (xxCreateGC), (xxValidateGC),
+ (xxDestroyGC), (xxChangeGC), (xxCopyGC), (xxChangeClip),
+ (xxCopyClip), (xxDestroyClip), (xxFillSpans), (xxSetSpans),
+ (xxPutImage), (xxCopyArea), (xxCopyPlane), (xxPolyPoint),
+ (xxPolylines), (xxPolySegment), (xxPolyRectangle), (xxPolyArc),
+ (xxFillPolygon), (xxPolyFillRect), (xxPolyFillArc), (xxPolyText8),
+ (xxPolyText16), (xxImageText8), (xxImageText16), (xxImageGlyphBlt),
+ (xxPolyGlyphBlt), (xxPushPixels), (xxComposite), (xxGlyphs),
+ (xxPrintVisuals):
+ * programs/Xserver/fb/fbpseudocolor.h:
+ * programs/Xserver/hw/xfree86/xaa/Imakefile:
+ * programs/Xserver/hw/xfree86/xaa/xaaWrapper.c:
+ (xaaWrapperCreateScreenResources), (xaaWrapperCloseScreen),
+ (xaaWrapperCreateWindow), (xaaWrapperCopyWindow),
+ (xaaWrapperWindowExposures), (xaaWrapperPaintWindow),
+ (xaaWrapperCreateColormap), (xaaWrapperDestroyColormap),
+ (xaaWrapperStoreColors), (xaaWrapperInstallColormap),
+ (xaaWrapperUninstallColormap), (xaaWrapperListInstalledColormaps),
+ (xaaSetupWrapper), (xaaWrapperPreCreateGC), (xaaWrapperCreateGC),
+ (xaaWrapperValidateGC), (xaaWrapperDestroyGC),
+ (xaaWrapperChangeGC), (xaaWrapperCopyGC), (xaaWrapperChangeClip),
+ (xaaWrapperCopyClip), (xaaWrapperDestroyClip),
+ (xaaWrapperFillSpans), (xaaWrapperSetSpans), (xaaWrapperPutImage),
+ (xaaWrapperCopyArea), (xaaWrapperCopyPlane), (xaaWrapperPolyPoint),
+ (xaaWrapperPolylines), (xaaWrapperPolySegment),
+ (xaaWrapperPolyRectangle), (xaaWrapperPolyArc),
+ (xaaWrapperFillPolygon), (xaaWrapperPolyFillRect),
+ (xaaWrapperPolyFillArc), (xaaWrapperPolyText8),
+ (xaaWrapperPolyText16), (xaaWrapperImageText8),
+ (xaaWrapperImageText16), (xaaWrapperImageGlyphBlt),
+ (xaaWrapperPolyGlyphBlt), (xaaWrapperPushPixels),
+ (xaaWrapperComposite), (xaaWrapperGlyphs), (XAASync):
+ * programs/Xserver/hw/xfree86/xaa/xaaWrapper.h:
+ An experimental pseudocolor emulation layer.
+ Not fully completed, currently only works for 16bpp.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Helper.c:
+ (xf86SetDefaultVisual):
+ removing some unnecessary restricitons on the allowed visuals.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_BltHiQV.h:
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c:
+ (AccelInit), (Sync), (SetupForCPUToScreenColorExpandFill),
+ (ReadPixmap):
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_cursor.c:
+ (CHIPSLoadCursorImage):
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ (chipsPreInitHiQV), (CHIPSScreenInit), (chipsModeInitHiQV),
+ (chipsMapMem):
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h:
+ Improved BE support in C&T driver (Rob Taylor, Jean-Laurent Gazelle).
+ (Code adapted Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810ScreenInit):
+ Do I810EmitFlush() during screen init to make sure 2D engine is
+ in a sane state (Peter Kunzmann).
+
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/savage/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c:
+ (SavageHWCursorInit), (SavageLoadCursorImage),
+ (SavageSetCursorColors):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavagePreInit), (SavageLeaveVT), (SavageWriteMode),
+ (SavageScreenInit), (SavageInternalScreenInit), (SavageModeInit),
+ (SavageCloseScreen), (SavageSaveScreen), (SavageAdjustFrame),
+ (SavageSwitchMode), (SavageLoadPalette), (SavageUpdateKey),
+ (SavageLoadPaletteSavage4):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.c:
+ (SavageInitSecondaryStreamOld), (SavageInitSecondaryStreamNew),
+ (SavageInitSecondaryStream), (SavageInitStreamsOld),
+ (SavageInitStreamsNew), (OverlayParamInit),
+ (InitStreamsForExpansion), (SavageStreamsOn), (SavageStreamsOff):
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_streams.h:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_video.c:
+ (savageOUTREG), (SavageClipVWindow), (SavageInitVideo),
+ (SavageStopVideo), (SavageSetBlend), (SavageDisplayVideoOld),
+ (SavageDisplayVideoNew), (SavagePutImage), (SavageStopSurface),
+ (SavageInitOffscreenImages):
+ Add pseudocolor overlay mode. Leave streams engine running at
+ all times to prevent artefacts during video playback.
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (SavageScreenInit)
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c:
+ (SavageSetTextMode), (SavageSetVESAMode), (SavageGetDevice),
+ (SavageGetBIOSModes):
+ Fixed VBE mode list code to work together with reading DDC
+ data using VBE functions.
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ (ShadowWait), (WaitQueue3D), (WaitQueue4), (WaitQueue2K),
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ (SavageInitAccel), (SavageHelpPatternROP), (SavageHelpSolidROP),
+ (SavageSubsequentScreenToScreenCopy), (SavageSetupForSolidFill),
+ (SavageSetupForScreenToScreenColorExpand),
+ (SavageSetupForCPUToScreenColorExpandFill),
+ (SavageSubsequentScanlineCPUToScreenColorExpandFill),
+ (SavageSetupForMono8x8PatternFill),
+ (SavageSubsequentMono8x8PatternFillRect):
+ Fixed data types to muffle compiler.
+
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_image.c:
+ (SavageSubsequentImageWriteRect):
+ Fixed requested size of FIFO for image writes. Fixes temporary
+ lockups.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/dix/privates.c:
+ * programs/Xserver/hw/xfree86/common/xf86cmap.c:
+ (xf86HandleColormaps), (CMapInitDefMap):
+ * programs/Xserver/include/screenint.h:
+ * programs/Xserver/lbx/lbxcmap.c: (LbxDefCmapPrivInit):
+ Adding a colormap index to the InitColormapPrivate() func
+ call. Without it it was completely useless.
+ * programs/Xserver/hw/xfree86/common/xf86cmap.c:
+ (CMapInstallColormap):
+ test if colormap with index really exists in the list of
+ installed maps before using it.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * lib/xtrans/Xtransutil.c: (trans_mkdir):
+ fail hard if socket directories cannot be chowned to root or
+ chmod'ed to the requested mode if 'sticky' bit is requested for
+ this directory instead of just print a warning that will remain
+ unnoticed most of the times.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86DPMS.c: (DPMSClose):
+ * programs/Xserver/hw/xfree86/common/xf86Events.c: (xf86VTSwitch):
+ * programs/Xserver/hw/xfree86/common/xf86Init.c: (AbortDDX):
+ Set DPMS to ON when VT switching away or shutting down the server.
+ Failing to do this may leave the text console blank.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/os-support/linux/int10/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c:
+ (xf86ExtendedInitInt10), (MapCurrentInt10):
+ Improved error messages.
+ * programs/Xserver/hw/xfree86/os-support/linux/int10/x86emu/Imakefile:
+ build fixes for AMD64.
+ * programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c:
+ (xf86shmget), (xf86shmat), (xf86shmdt), (xf86shmctl):
+ Made shm* functions in the libc_wrapper more standard conformant
+ by setting errno correctly.
+ * programs/Xserver/hw/xfree86/vbe/vbe.c: (VBEExtendedInit):
+ Use xf86ExendedInitInt10() in VBEExtendedInit() to be able to
+ pass flags.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/GL/dri/dri.c:
+ * programs/Xserver/GL/dri/xf86dri.c:
+ Fix static build.
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:
+ (TweakMemorySize):
+ add i845 to the list of chips that allow memory size tweaking.
+
+2004-07-30 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/fb/fb.h:
+ * programs/Xserver/fb/fballpriv.c:
+ * programs/Xserver/fb/fboverlay.c:
+ * programs/Xserver/fb/fboverlay.h:
+ * programs/Xserver/hw/xfree86/drivers/apm/apm_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/apm/apm_funcs.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/atifillin.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atifillin.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_ddc.c:
+ * programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:
+ * programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dac3026.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dacG.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_storm.c:
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx1_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/nv/riva_xaa.c:
+ * programs/Xserver/hw/xfree86/drivers/s3/s3_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/savage/savage_image.c:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis300_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis310_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/tga/tga_line.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/blade_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/image_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/trident/xp_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/vesa/vesa.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_driver.c:
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c:
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h:
+ * programs/Xserver/hw/xfree86/xaa/xaaFallback.c:
+ * programs/Xserver/hw/xfree86/xaa/xaaInit.c:
+ * programs/Xserver/hw/xfree86/xaa/xaaROP.c:
+ * programs/Xserver/hw/xfree86/xaa/xaalocal.h:
+ * programs/Xserver/hw/xfree86/xaa/xaarop.h:
+ * programs/Xserver/hw/xfree86/xaa/xaawrap.h:
+ * programs/Xserver/hw/xfree86/xf1bpp/mfbmap.h:
+ * programs/Xserver/hw/xfree86/xf4bpp/mfbbres.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/mfbbresd.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/mfbfillarc.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/mfbhrzvert.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/mfbimggblt.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/mfbline.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/mfbzerarc.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcArea.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcGC.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcIO.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcPixFS.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcPntWin.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcPolyPnt.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcWinFS.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/ppcWindow.c:
+ * programs/Xserver/hw/xfree86/xf4bpp/vgaGC.c:
+ * programs/Xserver/hw/xfree86/xf8_16bpp/cfb8_16.h:
+ * programs/Xserver/hw/xfree86/xf8_16bpp/cfbscrinit.c:
+ * programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h:
+ * programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c:
+ * programs/Xserver/hw/xfree86/xf8_32wid/cfb8_32wid.h:
+ * programs/Xserver/hw/xfree86/xf8_32wid/cfbscrinit.c:
+ * programs/Xserver/mfb/maskbits.c:
+ * programs/Xserver/mfb/maskbits.h:
+ * programs/Xserver/mfb/mfb.h:
+ * programs/Xserver/mfb/mfbscrinit.c:
+ Bug #400 (partial): Driver fixes for the dlloader. When using
+ dlloader, all framebuffer formats except cfb and the overlay modes
+ should work, and r128 and radeon need to be loaded from the ati
+ driver (both issues to be fixed soon). Tested on i740, s3virge,
+ mach64, tdfx, vesa, and vga drivers. elfloader users shouldn't be
+ affected.
+
+2004-07-30 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/miext/rootless/rootless.h:
+ * programs/Xserver/miext/rootless/rootlessCommon.c:
+ * programs/Xserver/miext/rootless/rootlessCommon.h:
+ * programs/Xserver/miext/rootless/rootlessWindow.c:
+ * programs/Xserver/hw/darwin/quartz/Preferences.h:
+ * programs/Xserver/hw/darwin/quartz/Preferences.m:
+ * programs/Xserver/hw/darwin/quartz/XServer.h:
+ * programs/Xserver/hw/darwin/quartz/XServer.m:
+ * programs/Xserver/hw/darwin/quartz/pseudoramiX.c:
+ * programs/Xserver/hw/darwin/quartz/pseudoramiX.h:
+ * programs/Xserver/hw/darwin/quartz/quartz.c:
+ * programs/Xserver/hw/darwin/quartz/quartz.h:
+ * programs/Xserver/hw/darwin/quartz/quartzCocoa.m:
+ * programs/Xserver/hw/darwin/quartz/quartzCommon.h:
+ * programs/Xserver/hw/darwin/quartz/cr/crScreen.m:
+ * programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c:
+ * programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c:
+ Merge many XDarwin improvements:
+ - Fix launch of X clients by double clicking in the Finder when
+ there is a space in the path (Torrey T. Lyons).
+ - Interpret scroll wheel mouse events correctly when shift is
+ held down (Benjamin Burke).
+ - Add option to always use Mac command key equivalents
+ (John Harper and Torrey T. Lyons).
+ - Add support for dynamic screen configuration changes in rootless
+ mode (John Harper and Torrey T. Lyons).
+ - Add documentation on generic rootless layer (Torrey T. Lyons).
+
+2004-07-30 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * xc/config/cf/darwin.cf:
+ * xc/programs/Xserver/Imakefile:
+ * xc/programs/Xserver/hw/darwin/darwin.c:
+ * xc/programs/Xserver/hw/darwin/Imakefile:
+ * xc/programs/Xserver/hw/darwin/darwinXinput.c:
+ Add initial Xinput support for XDarwin (Greg Parker).
+
+2004-07-30 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/hw/darwin/iokit/xfIOKit.c:
+ Make XDarwin not default to StaticColor on ix86 (Shantonu Sen).
+
+2004-07-30 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:
+ (TweakMemorySize), (I830BIOSPreInit):
+ Removed bugs on TweakMemorySize() which prevented it from
+ working at all.
+ * Initialized last element of BIOS version number string
+ to 0 to avoid random problems.
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.c:
+ (handlePciBIOS):
+ Write back original value to BIOS Base register for the
+ case where function failed.
+
+2004-07-30 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:
+ (TweakMemorySize), (I830BIOSPreInit):
+ Removed bugs on TweakMemorySize() which prevented it from working
+ at all.
+ * Initialized last element of BIOS version number string to 0
+ to avoid random problems.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * lib/xtrans/Xtransutil.c: (ConvertAddress):
+ Fixed typo in a comment.
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c:
+ Deleted bogus comment.
+ * programs/Xserver/hw/xfree86/os-support/shared/sigio.c:
+ (xf86BlockSIGIO), (xf86UnblockSIGIO):
+ Added debugging support.
+
+2004-07-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ (chipsPreInitHiQV):
+ Fixed log messages.
+
+2004-07-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ * xc/programs/Xserver/Xprint/etc/init.d/Imakefile
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint.cpp
+ Bugzilla #940: Filter /etc/init.d/xprint throught CPP/|MakeScriptFromCpp()|' to
+ allow platform-specific customisation.
+
+2004-07-30 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/hw/dmx/config/Imakefile:
+ Fix BuildServersOnly build
+
+2004-07-30 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/GL/dri/dri.c:
+ * programs/Xserver/GL/dri/xf86dri.c:
+ * programs/Xserver/GL/glx/single2.c: (DoGetString):
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ Fix "DoLoadableServer NO" build
+
+2004-07-29 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ Bugzilla #937: /etc/init.d/xprint should clear some environment
+ variables.
+
+2004-07-29 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * xc/lib/GL/apple/Imakefile:
+ * lib/GL/apple/dri_dispatch.c:
+ * lib/GL/apple/dri_dispatch.defs:
+ * lib/GL/apple/dri_dispatch.h:
+ Fix building libGL with AppleDRI support on Mac OS X 10.2.3 and
+ newer. Improve the CGL dispatch table for indirect contexts.
+
+2004-07-29 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/dix/dixutils.c: (AlterSaveSetForClient):
+ Cleaned up code since client's saveSet is no longer defined
+ as a pointer* (forgot one change in previous check-in)
+
+2004-07-29 Kevin E. Martin <kem-at-freedesktop-dot-org>
+
+ * programs/Xserver/Imakefile:
+ Use LibraryTargetName when not building a loadable server
+
+ * programs/Xserver/Xext/shape.c:
+ * programs/Xserver/include/window.h:
+ Move extern function declarations to window.h
+
+ * programs/Xserver/dix/dixutils.c: (AlterSaveSetForClient):
+ * programs/Xserver/dix/window.c:
+ Cleaned up code since client's saveSet is no longer defined
+ as a pointer*
+
+ * programs/Xserver/include/dix.h:
+ Added externs back in
+
+ * programs/Xserver/miext/damage/damage.c:
+ Change #if to #ifdef to fix compiler warning
+
+ * programs/Xserver/render/picturestr.h:
+ Add function declarations that were inadvertently removed
+ by previous check in
+
+ * config/cf/dmx.cf:
+ Disable extensions that are not (yet) supported by DMX
+
+2004-07-28 Stuart Kreitman <stuart dot kreitman at sun dot com>
+
+ * include/extensions/Imakefile:
+ * programs/Xserver/Imakefile:
+ * programs/Xserver/Xext/Imakefile:
+ * programs/Xserver/Xext/shape.c:
+ * programs/Xserver/dix/dispatch.c: (Dispatch):
+ * programs/Xserver/dix/dixutils.c: (ISOLatin1ToLower),
+ (CompareISOLatin1Lowered), (AlterSaveSetForClient):
+ * programs/Xserver/dix/events.c:
+ * programs/Xserver/dix/window.c:
+ * programs/Xserver/include/Imakefile:
+ * programs/Xserver/include/cursorstr.h:
+ * programs/Xserver/include/dix.h:
+ * programs/Xserver/include/dixstruct.h:
+ * programs/Xserver/include/regionstr.h:
+ * programs/Xserver/include/window.h:
+ * programs/Xserver/mi/Imakefile:
+ * programs/Xserver/mi/miinitext.c:
+ * programs/Xserver/render/filter.c: (PictureGetFilterId),
+ (PictureAddFilter), (PictureSetDefaultFilters), (SetPictureFilter):
+ * programs/Xserver/render/picture.c: (PictureCreateDefaultFormats),
+ (PictureFindVisual), (PictureInitIndexedFormats),
+ (PictureMatchVisual), (PictureInit), (SetPictureClipRegion):
+
+ * programs/Xserver/xfixes, programs/Xserver/damageext
+ * programs/Xserver/miext/damage
+
+ Bugzilla #859: Merge from DAMAGE-XFIXES branch
+
+2004-07-28 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/lib/Xaw/Print.h
+ * xc/programs/xman/man.h
+ * xc/programs/xmore/printdialog.c
+ * xc/programs/xmore/printdialog.h
+ Bugzilla #938: Update XawPrintShell per feedback and review comments.
+
+2004-07-27 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/sunLib.tmpl:
+ Fix shared reqs for Xlibi18n, Xaw6 & Xmu for Solaris
+
+ * programs/Xserver/hw/xfree86/common/xf86Io.c:
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h:
+ Improved support for Compose and Kana Lock LED's on Sun keyboards
+
+ * programs/Xserver/hw/xfree86/os-support/sunos/sun_kbdEv.c:
+ Add event definitions for additional keys on Sun Japanese keyboards
+
+ * programs/Xserver/hw/xfree86/xf86config/xorgconfig.c:
+ VUID mouse protocol support for Solaris
+ Make default mouse message clearer on machines that use a default
+ other than /dev/mouse.
+
+2004-07-27 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/FreeBSD.cf
+ * xc/config/cf/Imake.tmpl
+ * xc/config/cf/NetBSD.cf
+ * xc/config/cf/linux.cf
+ Bugzilla #909: Disable build of PDF documents where GhostScript may
+ not work at build time.
+
+2004-07-27 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONSetOverlayGamma), (RADEONSetTransform), (RADEONResetVideo),
+ (RADEONAllocAdaptor), (RADEONSetupImageVideo),
+ (RADEONSetPortAttribute), (RADEONGetPortAttribute),
+ (RADEONDisplaySurface), (RADEONInitOffscreenImages):
+ - Add gamma correction support to the radeon video overlay
+
+2004-07-27 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * programs/Xserver/Xprint/ddxInit.c:
+ Fix Xprint build on Darwin.
+
+2004-07-27 Torrey T. Lyons <torrey@freedesktop.org>
+
+ * lib/GL/apple/Imakefile:
+ * lib/GL/apple/dri_dispatch.c:
+ * lib/GL/apple/dri_dispatch.defs:
+ * lib/GL/apple/dri_dispatch.h:
+ * lib/GL/apple/dri_driver.c:
+ * lib/GL/apple/dri_glx.c:
+ * lib/GL/apple/dri_glx.h:
+ * lib/GL/glx/Imakefile:
+ * lib/GL/glx/glxext.c:
+ * programs/Xserver/GL/apple/Imakefile:
+ * programs/Xserver/GL/apple/aglGlx.c:
+ * programs/Xserver/GL/apple/indirect.c:
+ * programs/Xserver/GL/glx/single2.c:
+ Fix XDarwin's broken build of libGL and server side GLX.
+
+2004-07-27 Rik Faith <faith(at)freedesktop.org>
+
+ * programs/Xserver/hw/dmx/dmxextension.c: (dmxDetachScreen):
+ * programs/Xserver/hw/dmx/input/dmxconsole.c:
+ (dmxConsoleDrawWindows), (dmxConsoleDraw), (dmxConsoleClearCursor),
+ (dmxConsoleCollectEvents), (dmxCloseConsole), (dmxConsoleInit):
+ When using DMX console input, make detached screens display as
+ grey (vs. white for attached and black for dead-space).
+
+2004-07-27 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/glxinfo/glxinfo.c
+ Bugzilla #934: Fix glxinfo that it can be build against
+ Sun's version of GL.
+
+2004-07-27 Alexander Gottwald <ago@freedesktop.org>
+
+ * config/cf/cygwin.cf:
+ added --enable-runtime-pseudo-reloc to ExtraLoadFlags
+ use make -C dir to step into subdirectories
+ define BourneShell as /bin/bash -e to have make stopping after a subdir
+ failed
+
+2004-07-27 Alexander Gottwald <ago@freedesktop.org>
+
+ * config/cf/cygwin.cf:
+ Merge latest changes from CYGWIN branch
+ * config/cf/cygwin.rules (MakeFonts):
+ Use find | xargs combination instead of simple shell globbing to prevent
+ commandline argument overflow
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/xdm/config/Imakefile:
+ Define an initial VT for {Net,Open}BSD on amd64.
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c:
+ (wsconsReadInput):
+ Fix a bug that caused an entire batch of events to be
+ thrown out when one of an unknown type is encountered.
+ (Ty Sarna, NetBSD).
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * lib/xkbui/Imakefile:
+ Define SoRev from SOXKBUIREV, not SOXKBFILEREV.
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * lib/X11/ConnDis.c: (_X11TransConnectDisplay):
+ * programs/xhost/xhost.c: (change_host), (get_hostname):
+ - remove remaining AMOEBA references.
+ * programs/Xserver/os/genalloca.c:
+ - remove unused file.
+
+2004-07-26 Alex Deucher <agd5f@yahoo.com>
+
+ reviewed by: <Ryan Underwood>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_maven.h:
+ - add mga_maven.h; needed for mga maven support (Ryan Underwood)
+
+2004-07-26 Alex Deucher <agd5f@yahoo.com>
+
+ reviewed by: <Ryan Underwood>
+
+ * programs/Xserver/hw/xfree86/drivers/mga/mga.h:
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dac3026.c:
+ (MGA3026_i2cInit):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dacG.c:
+ (MGAG_ddc1Read), (MGAG_I2CGetBits), (MGAG_I2CPutBits),
+ (MGAG_DDC_P1_I2CPutBits), (MGAG_DDC_P2_I2CPutBits),
+ (MGAG_MAVEN_I2CPutBits), (MGAG_DDC_P1_I2CGetBits),
+ (MGAG_DDC_P2_I2CGetBits), (MGAG_MAVEN_I2CGetBits), (MGAG_i2cInit):
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c: (MGAdoDDC),
+ (MGAMavenRead):
+ - enable maven support for TV detection, DPMS, and DDC on crtc2
+ on G400 (Ryan Underwood)
+ (http://bugs.xfree86.org/show_bug.cgi?id=1098)
+ * programs/Xserver/hw/xfree86/i2c/xf86i2c.c: (xf86I2CBusInit):
+ * programs/Xserver/hw/xfree86/i2c/xf86i2c.h:
+ - expose I2CStart; needed for mga maven support (Ryan Underwood)
+
+2004-07-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * extras/Mesa/src/mesa/tnl/t_vertex_c.c:
+ Use __func__ instead of __FUNCTION__ on C99 compatible compilers,
+ fall back to nothing for compilers that aren't C99 or a new enough
+ gcc to fix build errors on systems not using gcc compilers.
+
+2004-07-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * programs/Xserver/hw/xfree86/doc/README.mouse:
+ * programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml:
+ - Change xf86config to xorgconfig
+ - Update Solaris mouse support information
+
+2004-07-26 Alex Deucher <agd5f@yahoo.com>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineReset):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONDisplayDDCConnected), (RADEONGetBIOSParameters),
+ (RADEONLoadPalette), (RADEONScreenInit),
+ (RADEONRestoreFPRegisters), (RADEONRestorePLLRegisters),
+ (RADEONSaveFPRegisters), (RADEONInitCrtcRegisters),
+ (RADEONInitCrtc2Registers), (RADEONInitFPRegisters),
+ (RADEONSetDynamicClock):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:
+ (RADEONSetTransform), (RADEONResetVideo), (RADEONSetPortAttribute):
+ - Add radeon DynamicClocks option
+ - add small clean ups from ati's last code drop
+ (typo_fixes, remove_fudge, laptop, xvfix)
+ * programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c:
+ (MGAWakeupHandler), (MGADRIScreenInit):
+ - Fix possible segfault (Ryan Underwood)
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_video.c:
+ (NEOInitVideo), (NEOPutVideo), (NEODisplayVideo):
+ - Add Xv support to pre-nm2160 neomagic chipsets (bug #321)
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+ * programs/xdm/Imakefile:
+ * programs/xdm/xdm.man:
+ Fix log file location in manual page.
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/input/elographics/xf86Elo.c:
+ - Use xf86RemoveEnabledDevice() in the DEVICE_OFF case too.
+ Fixes a lock-up after server reset.
+ - Call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT
+ phase, in order to avoid a segfault in the X server caused
+ by 'xset q'.
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+ * programs/xfs/difs/main.c: (main):
+ * programs/xfs/os/error.c: (InitErrors):
+ Fix opening of log file with '-user nobody'. Problem reported by
+ Oleg Safiullin and Mike Pechkin.
+
+2004-07-27 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/render/render.c: (ProcRenderCreateCursor):
+ remove extra ';' (Alan Hourihane, Keith Packard).
+
+2004-07-26 Adam Jackson <ajax@freedesktop.org>
+
+ * programs/Xserver/GL/glxmodule.c,
+ programs/Xserver/GL/apple/indirect.c,
+ programs/Xserver/GL/dri/dri.c,
+ programs/Xserver/GL/glx/glxext.c,
+ programs/Xserver/GL/glx/glxscreens.c,
+ programs/Xserver/GL/glx/glxserver.h,
+ programs/Xserver/GL/glx/glxutil.h,
+ programs/Xserver/GL/mesa/X/xf86glx.c,
+ programs/Xserver/GL/windows/indirect.c:
+ Bug #377: Make lib{glx,GLcore,dri} work when compiled as dlloader
+ modules.
+ * programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,
+ programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,
+ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ Bug #848: Clean up gatos notice messages.
+
+2004-07-26 Alexander Gottwald <ago@freedesktop.org>
+
+ * lib/Imakefile:
+ * lib/windows/Imakefile:
+ * lib/windows/WindowsWM-def.cpp:
+ * lib/windows/WindowsWM.man:
+ * lib/windows/windowswm.c:
+ * lib/windows/windowswm.h:
+ * lib/windows/windowswmstr.h:
+ Import lib/windows from CYGWIN branch.
+
+2004-07-26 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * config/cf/X11.tmpl:
+ Add LINTXLIBONLY macro to match lint library dependencies
+ Fix LinkHardCopyPS macro to work with Solaris make
+
+ * config/cf/sun.cf
+ Improved lint flags for the lint included with Sun compilers
+
+2004-07-26 Alexander Gottwald <ago@freedesktop.org>
+
+ * config/cf/cygwin.rules:
+ Bugzilla #921: link without linker definition file
+
+2004-07-26 Alexander Gottwald <ago@freedesktop.org>
+
+ * config/cf/X11.tmpl:
+ Bugzilla #912: Wraps linking of name.ps -> name.PS in an extra define
+ which is empty for CaseSensitiveFileSystem == NO
+ * doc/hardcopy/XKB/Imakefile:
+ Bugzilla #912: Test for CaseSensitiveFileSystem before linking
+ XKBlib.ps.gz -> XKBlib.PS.gz
+
+2004-07-24 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * programs/Xserver/hw/xfree86/input/mouse/mouse.c: (MouseProc):
+ * programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c:
+ (wsconsPreInit):
+ * programs/Xserver/hw/xfree86/os-support/xf86OSmouse.h:
+ Fix a problem with wsmouse driver loosing events on 64bit
+ architectures (XFree86 Bugzilla #1438, John Heasley).
+ "To fix this, I've added a mouse buffer (Xisb buffer) "scale"
+ value to the MouseDevPtr type. If set, it is used as
+ structure size of which we want space for a few."
+
+2004-07-24 Matthieu Herrb <matthieu.herrb@laas.fr>
+
+ * config/cf/Imake.cf:
+ * config/cf/OpenBSD.cf:
+ * programs/Xserver/hw/xfree86/os-support/bsd/Imakefile:
+ * programs/Xserver/hw/xfree86/os-support/bsd/i386_video.c:
+ (xf86OSInitVidMem), (xf86EnableIO), (xf86DisableIO), (amd64setWC),
+ (amd64undoWC):
+ * programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h:
+ Bugzilla #884: OpenBSD/amd64 support.
+
+2004-07-23 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/xorg.cf:
+ * programs/Xserver/hw/xfree86/drivers/via/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/via/via_dri.c:
+ - Remove unnecessary CppManTarget(via,) which produced multiple target
+ definition warnings.
+ - Change the VIA DDX to tell clients to look for unichrome_dri.so, the
+ module that X.Org distributes.
+ - Move the VIA DRI into DevelDRIDrivers because it is still insecure.
+ See: http://dri.sourceforge.net/IRC-logs/20040628.txt
+
+2004-07-22 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/xorg.cf:
+ * config/cf/xorgsite.def:
+ * lib/GL/mesa/drivers/dri/Imakefile:
+ * lib/GL/mesa/drivers/dri/unichrome/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c:
+ (ATIInitializeAcceleration):
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c:
+ (ATIProcessOptions):
+ * programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c:
+ (ATISwitchMode), (ATIEnterVT), (ATILeaveVT):
+ * programs/Xserver/hw/xfree86/drivers/ati/atiload.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiload.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atilock.c: (ATIUnlock):
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64.c:
+ (ATIMach64PreInit), (ATIMach64SetDPMSMode):
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c:
+ (ATIMach64Sync), (ATIMach64SetupForScreenToScreenCopy),
+ (ATIMach64SubsequentScreenToScreenCopy),
+ (ATIMach64SetupForSolidFill), (ATIMach64SubsequentSolidFillRect),
+ (ATIMach64SetupForSolidLine),
+ (ATIMach64SubsequentSolidHorVertLine),
+ (ATIMach64SubsequentSolidBresenhamLine),
+ (ATIMach64SetupForMono8x8PatternFill),
+ (ATIMach64SubsequentMono8x8PatternFillRect),
+ (ATIMach64SetupForScanlineCPUToScreenColorExpandFill),
+ (ATIMach64SubsequentScanlineCPUToScreenColorExpandFill),
+ (ATIMach64SubsequentColorExpandScanline):
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c:
+ (ATIMach64LoadCursorImage):
+ * programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atimisc.c: (ATISetup):
+ * programs/Xserver/hw/xfree86/drivers/ati/atioption.c:
+ * programs/Xserver/hw/xfree86/drivers/ati/atioption.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiregs.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:
+ (ATIMinBits), (ATIScreenInit), (ATICloseScreen):
+ * programs/Xserver/hw/xfree86/drivers/ati/atistruct.h:
+ - Add a new option, BuildDevelDRIDrivers, which controls whether
+ DevelDRIDrivers is non-empty. DevelDRIDrivers contains those drivers
+ aren't built by default either due to being unusable on that
+ architecture (but buildable for testing) or due to security concerns,
+ as in the mach64 and savage cases.
+ - Merge the Mach64 DDX's DRI support, under the XF86DRI_DEVEL define,
+ which is set only when BuildDevelDRIDrivers is set.
+ - Fix up of the sets of DRI drivers built for various architectures.
+ - Fix build of unichrome DRI driver, which is now enabled on x86.
+
+2004-07-22 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/GL/GL/Imakefile:
+ The i830 driver has been replaced by i915. Update this Imakefile block
+ that's very rarely used (if ever?) to avoid complaints about things
+ being undefined.
+
+2004-07-23 Alexander Gottwald <ago@freedesktop.org>
+
+ * programs/xphelloworld/xpxmhelloworld/Imakefile:
+ * programs/xphelloworld/xpawhelloworld/Imakefile:
+ Bugzilla #781: fix -lXprintUtil and -lXp references
+ Removed -L$(PROJECTROOT)/lib which breaks crosscompile builds. The
+ The extra libdir was wrong and the correct one was added with
+ $(MOTIFLIB)
+
+Thu Jul 22 20:03:11 2004 Soeren Sandmann <sandmann@daimi.au.dk>
+
+ * programs/Xserver/fb/fbfill.c (fbFill): Call MMX solid fill
+ routine when available.
+
+ * programs/Xserver/fb/fbpict.c (fbComposite): Call MMX operations
+ when available.
+
+ * config/cf/xorg.cf: New HasGcc34 macro
+
+ * programs/Xserver/fb/fbmmx.c: New file with many operations
+ implemented with MMX intrinsics, conditional on having GCC 3.4 on
+ i386.
+
+2004-07-22 Alexander Gottwald <ago@freedesktop.org>
+
+ * programs/xphelloworld/xphelloworld/Imakefile:
+ * programs/xphelloworld/xpsimplehelloworld/Imakefile:
+ * programs/xphelloworld/xpxthelloworld/Imakefile:
+ * programs/xplsprinters/Imakefile:
+ Bugzilla #781: fix -lXprintUtil and -lXp references
+
+2004-07-21 Eric Anholt <anholt@FreeBSD.org>
+
+ Imported new Mesa, DRM, and DRI sources as of 20040721 and resolved
+ conflicts.
+
+2004-07-21 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/FreeBSD.cf:
+ * config/cf/NetBSD.cf:
+ * config/cf/linux.cf:
+ Bugzilla #909: Remove HasGhostScript YES default from these .cfs, as
+ it's causing build failures for users on these platforms (not available,
+ or fails when processing files).
+
+2004-07-20 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/Imake.tmpl:
+ * lib/Xaw/Imakefile:
+ * programs/Xserver/hw/darwin/Imakefile:
+ * programs/Xserver/hw/xfree86/common/Imakefile:
+ * programs/Xserver/hw/xfree86/xf86config/Imakefile:
+ * programs/fonttosfnt/Imakefile:
+ * programs/proxymngr/Imakefile:
+ * programs/twm/Imakefile:
+ * programs/xmh/Imakefile:
+ * programs/xterm/Imakefile:
+ Remove the VENDOR_DEFINES from ALLDEFINES, as the quoting on
+ VENDOR_DEFINES was breaking some old imake software, and it really
+ doesn't seem like an appropriate define for all imake-using software.
+ Instead, add it to the DEFINES of those pieces that need it.
+
+2004-07-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/doc/man/misc/Imakefile
+ Bugzilla #899: Fixing Solaris builds bustage caused by the checkin
+ in bug #891.
+
+Tue Jul 20 19:38:06 2004 Soeren Sandmann <sandmann@daimi.au.dk>
+
+ * lib/X11/omGeneric.c (parse_fontdata): Set font_data->xlfd_data
+ to NULL after XFree(). (#837, patch from Daniel Berrange).
+
+Tue Jul 20 18:23:32 2004 Soeren Sandmann <sandmann@daimi.au.dk>
+
+ * config/cf/linux.cf: Use /dev/urandom on Linux.(#761).
+
+2004-07-20 Alexander Gottwald <ago@freedesktop.org>
+
+ * xc/programs/Xserver/xdmcp.c (get_addr_by_name):
+ Bugzilla #889: Bind -from address to port number 0 instead of 177
+
+2004-07-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/attributes.c
+ Bugzilla #893: Fixing the bug that Xprt did not honor ${LC_ALL}
+ when looking for model-config dirs.
+
+2004-07-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/doc/hardcopy/Imakefile
+ * xc/doc/hardcopy/XPRINT/Imakefile
+ Bugzilla #891: Fixing some installation problems with hardcopy
+ dirs.
+
+2004-07-18 Rik Faith <faith(at)freedesktop.org>
+
+ * programs/Xserver/hw/dmx/dmxextension.c:
+ (dmxAdjustCursorBoundaries):
+ Addition of console input after removal of core backend input that
+ is not on screen 0 can cause a segfault. Fix by preventing
+ reinitialization of detached inputs.
+ * programs/Xserver/hw/dmx/dmxgcops.c: (dmxFindAlternatePixmap),
+ (dmxGetImage):
+ When Xinerama is active and screen 0 is detached, pixmaps for
+ XGetImage must be obtained from another screen.
+
+2004-07-18 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/Ps.h
+ * xc/programs/Xserver/Xprint/ps/PsColor.c
+ * xc/programs/Xserver/Xprint/ps/PsGC.c
+ Bugzilla #858: Fixing the problem that clients cannot use the
+ TrueColor visual without calling |XInstallColormap();|.
+
+2004-07-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/FreeBSD.cf:
+ - Default to assuming that ports that can be built without the xorg
+ pieces being installed are installed before the xorg build begins.
+ #define HasStandardPorts NO can turn this behavior off. Also fixes
+ some freetype issues related to it looking in the wrong place.
+ - While here, remove some unnecessary #if nesting in threads.
+
+2004-07-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/FreeBSD.cf:
+ Wrap CcCmd and CplusplusCmd in #ifndef to kill lots of warnings when
+ changing them in host.def (common for ccache).
+
+2004-07-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/X11.tmpl:
+ Be sure to set the DmxLibrary-related defines to NO if BuildDmxLibrary
+ is NO. Kills a lot of preprocessor warnings.
+
+2004-07-16 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/lib/xtrans/Xtrans.c:
+ Fix typo in debug message in MakeAllCLTSServerListeners
+ * xc/programs/Xserver/os/Imakefile:
+ Add $(GETPEER_DEFINES) to DEPEND_DEFINES for makedepend
+ * xc/programs/Xserver/os/access.c:
+ * xc/doc/specs/SIAddresses/localuser.txt:
+ Add "localuser" and "localgroup" access types to server-interpreted
+ authentication scheme.
+
+2004-07-15 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineRestore):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RADEONInit3DEngineForRender):
+ * programs/Xserver/hw/xfree86/drivers/via/via_memory.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_priv.h:
+ * programs/Xserver/hw/xfree86/drivers/via/via_swov.c:
+ * programs/Xserver/hw/xfree86/drivers/via/via_tuner.c:
+ Bugzilla #803,804: Fix build in the !XF86DRI case after DRI and
+ Radeon Render acceleration merges.
+
+2004-07-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/sun.cf
+ Bugzilla #862: Solaris performance improvements using some
+ "magic" compiler flags (-zlazyload -zcombreloc -xstrconst -xildoff
+ etc.)
+
+2004-07-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/Imakefile
+ Bugzilla #776: (Work-in-progress) Adding glue to setup
+ links for /etc/init.d/ scripts in Linux.
+
+2004-07-12 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/linux.cf
+ Bugzilla #824: Build fix for SuSE Linux
+
+2004-07-07 Eric Anholt <anholt@FreeBSD.org>
+
+ * Imakefile:
+ Bugzilla #478: Install xrender.pc (required by xcursor.pc).
+
+2004-07-07 Rik Faith <faith(at)freedesktop.org>
+
+ * programs/Xserver/hw/dmx/dmxinit.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxsingle.c:
+ * programs/Xserver/hw/dmx/glxProxy/glxvendor.c:
+ * programs/Xserver/hw/dmx/input/Imakefile:
+ * programs/Xserver/hw/dmx/input/dmxinputinit.c:
+ * programs/Xserver/hw/dmx/input/dmxsigio.c:
+ Bugzilla #817: Enable build under Solaris
+ (Thanks to Alan Coopersmith)
+
+2004-07-06 Kevin E. Martin <kem(at)freedesktop.org>
+
+ * config/cf/README:
+ * config/cf/X11.tmpl:
+ * config/cf/linux.cf:
+ * config/cf/xf86site.def:
+ * config/cf/xfree86.cf:
+ * config/cf/xorg.cf:
+ * config/cf/xorgsite.def:
+ * include/extensions/Imakefile:
+ * programs/Xserver/Imakefile:
+ Disable building DMX on OSs that have not been verified to build
+ correctly (Kevin Martin).
+
+ * programs/Xserver/Xext/dmx.c: (ProcDMXChangeScreensAttributes),
+ (ProcDMXChangeDesktopAttributes):
+ * programs/Xserver/hw/dmx/Imakefile:
+ * programs/Xserver/hw/dmx/dmxcb.c: (dmxConnectionBlockCallback):
+ * programs/Xserver/hw/dmx/dmxextension.c:
+ (dmxConfigureScreenWindow):
+ * programs/Xserver/hw/dmx/dmxinit.c: (InitOutput):
+ * programs/Xserver/hw/dmx/glxProxy/glxcmds.c: (MakeCurrent),
+ (CreateGLXPixmap), (__glXDoSwapBuffers):
+ Fix DMX build when Xinerama is not enabled (Kevin Martin).
+
+2004-07-06 Egbert Eich <eich(at)freedesktop.org>
+
+ * extras/Mesa/src/mesa/drivers/dri/i915/intel_context.h:
+ * extras/Mesa/src/mesa/drivers/dri/i915/intel_tris.c:
+ ifdef'ed some IA32-only assembler statements. Presently these
+ chipsets are IA32 only, anyway (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/common/xf86Bus.c: (CheckGenericGA):
+ * programs/Xserver/hw/xfree86/os-support/bus/ia64Pci.c:
+ (ia64ScanPCIWrapper):
+ Disabling generic VGA testing for IA64 architectures.
+ Temporarily disabling support for ZX1 bus. This code is extremely
+ invasive and is executed as fallback without testing for a ZX1
+ chipset. It brings a SGI Altrix to a grinding halt. (Egbert Eich).
+
+2004-07-06 Egbert Eich <eich(at)freedesktop.org>
+
+ * config/cf/xorg.cf:
+ Separated Intel drivers from default DriDrivers to avoid building
+ them on IA64 (Egbert Eich).
+
+ * lib/Xdmcp/Wrap.h:
+ Fixed wrong function prototype (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/common/xf86Bus.c: (CheckGenericGA):
+ Don't test for generic VGA on IA64 (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/common/xf86pciBus.c:
+ Fixed a segfault when accessing a structure before verifying the
+ pointer exists (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig), (RADEONDoAdjustFrame):
+ Added a showcache option for debugging (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c:
+ (I810PreInit), (I810SwitchMode):
+ Increase default video RAM size to 16MB when DRI is enabled and
+ more than 128MB are available (Egbert Eich).
+ Fixed lockups during mode switch. Problem was introduced when
+ attempting to copy the behavior during LeaveVT()/EnterVT() but
+ but forgetting to call I810DRILeave() before I810DRIEnter().
+ The entire DRILeave()/Enter() scenario has been commented out
+ as it didn't seem to be necessary (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c:
+ (TweakMemorySize), (I830BIOSPreInit), (I830BIOSScreenInit),
+ (I830BIOSEnterVT):
+ Fix TweakMemorySize() (tested with i855/i865) (Egbert Eich).
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.h:
+ increased MAX_DEVICES to 128 (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/common/xf86Globals.c:
+ * programs/Xserver/hw/xfree86/os-support/bus/Pci.h:
+ * programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c:
+ (ix86PciSelectCfgmech):
+ Use OS provided PCI config space access as default method
+ (Egbert Eich).
+
+ * programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c:
+ (linuxPciOpenFile):
+ Added support for Linux 2.6 proc file format.
+
+ * programs/Xserver/hw/xfree86/vbe/vbe.c: (VBEExtendedInit),
+ (VBEGetVBEInfo):
+ Fixed unaligned accesses to pieces of the VBE info block.
+ VESA did not align elements to size (Egbert Eich).
+
+2004-07-06 Alexander Gottwald <ago@freedesktop.org>
+
+ * programs/xcalc/math.c: (bkspf)
+ Bugzilla #665: bugs in xcalc -rpn mode
+ decimal_point is a const char* not char. the patch uses strcmp instead
+ of plain char == char operator and allows decimal_point to be of any
+ length.
+ localeconv() is only called if X_LOCALE is _not_ defined
+
+2004-07-05 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/xdm/socket.c: (CreateWellKnownSockets):
+ XFree86 bugzilla #1376: xdm opens random tcp sockets
+
+ "Even when DisplayManager.requestPort is set to 0, xdm will open a
+ chooserFd tcp socket on all interfaces. This apparently cannot be
+ disabled by configuration and presents a possible security risk. Older
+ versions of xdm/socket.c appear to have checked and aborted if
+ request_port == 0, but the current one does not..."
+
+2004-07-04 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/dmx/Imakefile:
+ Can't have tabs starting lines not associated with a target.
+
+2004-07-04 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/FreeBSD.cf:
+ * config/cf/NetBSD.cf:
+ * config/cf/X11.tmpl:
+ * config/cf/host.def:
+ * config/cf/linux.cf:
+ * lib/dpstk/Imakefile:
+ * programs/xphelloworld/xpawhelloworld/Imakefile:
+ * programs/xphelloworld/xpxmhelloworld/Imakefile:
+ Bugzilla #757: Remove incorrect HasMotif YES defaults for linux and
+ BSDs. Also fix Motif imake goop to handle motif not being in /usr/X11R6
+ better.
+
+2004-07-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * include/extensions/render.h:
+ Bugzilla #635: Correct the definition of CPLastBit to account for
+ ComponentAlpha, which may fix behavior of the server's
+ SetPictureToDefaults.
+
+2004-07-01 Alexander Gottwald <ago@freedesktop.org>
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i830_vtbl.c:
+ * xc/extras/Mesa/src/mesa/drivers/dri/i915/i915_vtbl.c:
+ #Bug 802: C variable declaration fix for old gcc in i915 code
+
+2004-06-29 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Imakefile
+ * xc/programs/Xserver/Xprint/Xprint.html
+ * xc/programs/Xserver/Xprint/Xprint.man
+ * xc/programs/Xserver/Xprint/Xprint.sgml
+ * xc/programs/xplsprinters/xplsprinters.html
+ * xc/programs/xplsprinters/xplsprinters.man
+ * xc/programs/xplsprinters/xplsprinters.sgml
+ * xc/programs/xprehashprinterlist/Imakefile
+ * xc/programs/xprehashprinterlist/xprehashprinterlist.c
+ * xc/programs/xprehashprinterlist/xprehashprinterlist.html
+ * xc/programs/xprehashprinterlist/xprehashprinterlist.man
+ * xc/programs/xprehashprinterlist/xprehashprinterlist.sgml
+ Bugzilla #810: Add small adminstration tool to rehash the list of available
+ printers on demand.
+
+2004-06-29 Alexander Gottwald <ago@freedesktop.org>
+ * lib/Xaw/AllWidgets.c, lib/Xaw/sharedlib.c:
+ #Bug 806: undefined reference to xawPrintShellWidgetClass in Xaw6 for
+ cygwin. Wrap references to xawPrintShellWidgetClass with #ifndef OLDXAW.
+
+2004-06-29 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/extras/Mesa/src/mesa/main/imports.h
+ Bugzilla #805: Build fix for AMD64,
+ patch by Stefan Dirsch <sndirsch@suse.de>
+
+2004-06-28 Nolan <xorg-nolan@sigbus.net>
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.c:
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmware.h:
+ * programs/Xserver/hw/xfree86/drivers/vmware/vmwarecurs.c:
+ Send cursor hotspot through the FIFO. This fixes host cursor.
+ Allow any bpp when 8BIT_EMULATION is set.
+ Save/restore the ID register.
+
+2004-06-28 Alan Coopersmith <alan.coopersmith@sun.com>
+ * lib/GL/glx/glx_pbuffer.c:
+ * lib/GL/glx/glxextensions.h:
+ Add GLX_ALIAS_VOID for GLX_ALIAS of functions with return type void
+ to fix builds with non-gcc compilers that refuse to let you do
+ return function_that_returns_void(...)
+ * programs/Xserver/hw/xfree86/os-support/shared/sigiostubs.c
+ Remove includes of xf86drm.h that break non-DRI builds
+
+2004-06-25 Alexander Gottwald <ago@freedesktop.org>
+ * programs/Xserver/randr/randr.c:
+ * programs/Xserver/randr/randrstr.h:
+ #Bug 780: add RRSetScreenConfig
+ * programs/Xserver/os/access.c:
+ #Bug 784: Ignore unconfigured interfaces with xdmcp
+ * config/cf/X11.tmpl programs/Imakefile:
+ #Bug 785: make build of xterm configurable
+ * include/Xpoll.h:
+ #Bug 786: make XFD_* macros respect FD_SETSIZE
+
+2004-06-24 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/XpConfig/C/print/attributes/document
+ * xc/programs/Xserver/XpConfig/C/print/models/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/CANONC3200-PS/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/CANONC3200-PS/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/CANONC3200-PS/fonts/Imakefile
+ Bugzilla #791: Adding special support for Canon C3200N
+
+2004-06-24 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/spooler.c
+ Bugzilla #660: Fix for the issue that GetPrinterList does not
+ return printer descriptions on Solaris.
+ The patch implements a framework which allows
+ the printer enumerator scripts to pass additional printer
+ attributes to the information pool (currently only
+ "xp-printerattr.descriptor" is implemented).
+
+2004-06-22 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/attributes.c
+ Bugzilla #789: Workaround for the issue that Xprt may hang when
+ the CUPS spooler frontend sends messages to stdout.
+
+2004-06-21 Alexander Gottwald <ago@freedesktop.org>
+ * xc/programs/Xserver/Imakefile:
+ * xc/programs/Xserver/GL/Imakefile:
+ * xc/programs/Xserver/GL/glx/Imakefile:
+ * xc/extras/Mesa/include/GL/gl.h:
+ * xc/extras/Mesa/include/GL/internal/glcore.h:
+ * xc/lib/GL/glx/glxext.c:
+ * xc/programs/Xserver/GL/glx/single2.c:
+ #Bug 782: Merge native OpenGL for Windows from CYGWIN branch
+ * xc/programs/Xserver/hw/xwin:
+ * xc/config/cf/cygwin.cf:
+ * xc/config/cf/cygwin.tmpl:
+ * xc/config/cf/cygwin.rules:
+ #Bug 777: Merge from CYGWIN branch
+ * xc/programs/Xserver/include/dix.h:
+ * xc/programs/Xserver/dix/dispatch.c:
+ * xc/programs/Xserver/hw/vfb/InitOutput.c:
+ * xc/programs/Xserver/hw/xnest/Init.c:
+ * xc/programs/Xserver/Xprint/ddxInit.c:
+ #Bug 778: add ddxBeforeReset
+ * xc/programs/Xserver/fb/fb.h:
+ * xc/programs/Xserver/miext/rootless/Imakefile:
+ * xc/programs/Xserver/miext/rootless/rootlessConfig.h:
+ #Bug 783: rootless patches for cygwin
+ * xc/programs/glxgears/Imakefile:
+ * xc/programs/xedit/Imakefile:
+ * xc/programs/xlogo/Imakefile:
+ * xc/programs/xman/Imakefile:
+ * xc/programs/xmore/Imakefile:
+ #Bug 781: Fix -lXprintUtil and -lXp references
+
+2004-06-20 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/XpConfig/C/print/attributes/document
+ Bugzilla #772: Switch default resolution from 300DPI to 600DPI.
+
+2004-06-19 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon.man:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c:
+ (RADEONEngineRestore):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_accelfuncs.c:
+ (RADEONAccelInit):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:
+ (RADEONEnterServer):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
+ (RADEONPreInitConfig), (RADEONBlockHandler), (RADEONScreenInit),
+ (RADEONRestorePLLRegisters), (RADEONCloseScreen):
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h:
+ * programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c:
+ (RadeonGetTextureFormat), (F_TO_DW), (ATILog2),
+ (RADEONInit3DEngineForRender), (RemoveLinear), (RenderCallback),
+ (AllocateLinear), (RadeonInit3DEngine), (R100SetupTexture),
+ (R100SetupForCPUToScreenAlphaTexture),
+ (R100SetupForCPUToScreenTexture),
+ (R100SubsequentCPUToScreenTexture), (R200SetupTexture),
+ (R200SetupForCPUToScreenAlphaTexture),
+ (R200SetupForCPUToScreenTexture),
+ (R200SubsequentCPUToScreenTexture):
+ Bug #748:
+ - Add Render acceleration for Radeon 100 and 200-series cards, enabled
+ by default. Notable performance gains include 27fps in cairogears
+ instead of 6fps (compared to 50 with glitz), and my disks are now the
+ bottleneck in an ls -lR in gnome-terminal. Only supported in DRI mode
+ because the MMIO submission hangs the card so far, but the code is left
+ in because it may be supportable soon.
+ - Add xorg.conf options to disable Render acceleration and to force the
+ subpixel order in the server (Hui Yu).
+
+2004-06-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/Xsession.d/Imakefile
+ Bugzilla #765: Rename "92xprint-xpserverlist" to "92xprint-xpserverlist.sh"
+ to match the new RedHat policy for X11 session startup files.
+
+2004-06-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ * xc/programs/Xserver/os/utils.c
+ Bugzilla #764: Rework previous solution and make Xprt to default
+ to "-noreset" (the default of Solaris's version of Xprt)
+ and add a "-reset" option which can be used to restore the
+ default behaviour on demand.
+
+2004-06-19 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ Bugzilla #764: Start Xprt with option "-noreset" to get rid
+ of the problem that Xprt resets itself aftert each client
+ disconnect when there is only one client and no dtpdmd.
+ This solves at least the following problems:
+ - Font paths set after Xprt startup via "xset +fp ..." get lost
+ - Resources stored in the Xserver get lost
+ - Displaying a print dialog is awfully slow
+
+2004-06-17 Thomas Winischhofer <thomas@winischhofer.net>
+
+ * programs/Xserver/hw/xfree86/drivers/sis/300vtbl.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/310vtbl.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/init.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/init.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/init301.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/init301.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/initdef.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/oem300.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/oem310.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/osdef.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis.man:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis300_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis300_accel.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis310_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis310_accel.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis6326_video.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_accel.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_accel.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_common.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_cursor.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_cursor.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_dac.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_dac.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_dga.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_dri.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_driver.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_opt.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_regs.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_setup.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_shadow.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_shadow.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_vb.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_vb.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_vga.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/sis_video.c:
+ * programs/Xserver/hw/xfree86/drivers/sis/vgatypes.h:
+ * programs/Xserver/hw/xfree86/drivers/sis/vstruct.h:
+ Fix some 1400x1050 and 1600x1200 LCD panel modes
+ Fix Xv code (linebuffer size, minimum overlay size)
+ Add video blitter as second Xv adaptor (M650/651 and later)
+ Fix 1024x600 LCD panel support
+ Add hotplug support (including LCD)
+ Fix support for 661/741/760 (many changes)
+ Add support for many modes previously not supported for LCD
+ Add preliminary support for 340
+
+2004-06-16 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/XvMC/hw/i810/I810XvMC.c: (XvMCCreateContext),
+ (XvMCDestroyContext):
+ * lib/XvMC/hw/i810/I810XvMC.h:
+ * lib/XvMC/hw/i810/Imakefile:
+ * programs/Xserver/hw/xfree86/drivers/i810/Imakefile:
+ Mop-up from the DRI 20040613 import, taking care of some drm.h
+ header location and type changes.
+
+ The DRI commits were a merge from DRI-XFree86-4_3_99_12-merge to
+ DRI-trunk-20040613, bringing in Mesa 6.1 and the DRM from 20040613
+ as well.
+
+ Some of the notable things this brings in, off the top of my head:
+ - More OpenGL extensions
+ - MergedFB for Radeon (Dualhead DRI support on these cards)
+ - Many GLX fixes
+ - Working SiS DRI driver
+ - Major Radeon and R200 DRI driver updates
+ - fbconfigs support
+ - Beginnings of pbuffer support (indirect only, and only in specific
+ circumstances).
+
+ Does not bring in the Mach64 or Savage DRI support from these updtes,
+ due to security concerns that remain with these.
+
+2004-06-14 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xplsprinters/xplsprinters.c
+ * xc/programs/xplsprinters/xplsprinters.html
+ * xc/programs/xplsprinters/xplsprinters.man
+ * xc/programs/xplsprinters/xplsprinters.sgml
+ Bugzilla #742: Add a "-d" option to display only the printer
+ "name" and "description", avoiding the far more expensive query
+ done by "-l" (which opens a connection to the print server and
+ queries all printer attributes).
+
+2004-06-12 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/doc/man/general/X.man
+ Bugzilla #691: Manual page X(7) does not reference Xprt(1x),
+ xplsprinters(1x), etc.
+
+ * xc/config/cf/Imake.rules
+ Correct comment to match rule name for InstallDriverSDKObjectModule
+
+ * xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.c
+ Log results of ioctls to probe keyboard type & layout
+
+2004-06-12 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/imake/imake.c: (define_os_defaults):
+ Allow overriding of os version with OSREL env var on FreeBSD.
+ Used in the ports cluster and cross-version testing.
+
+2004-06-09 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ Bugzilla #734: Add a "diag" switch to /etc/init.d/xprint
+ to deliver some diagnostics information usefull for debugging
+ on the customer side.
+
+2004-06-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xedit/Xedit.ad
+ * xc/programs/xman/Imakefile
+ * xc/programs/xman/ScrollByL.c
+ * xc/programs/xman/ScrollByL.h
+ * xc/programs/xman/ScrollByLP.h
+ * xc/programs/xman/Xman.ad
+ * xc/programs/xman/buttons.c
+ * xc/programs/xman/defs.h
+ * xc/programs/xman/handler.c
+ * xc/programs/xman/man.h
+ * xc/programs/xman/misc.c
+ * xc/programs/xman/print.c
+ * xc/programs/xman/print.h
+ * xc/programs/xman/search.c
+ * xc/programs/xman/version.h
+ * xc/programs/xmore/XMore.ad
+ * xc/programs/xmore/print.c
+ * xc/programs/xmore/printdialog.c
+ Bugzilla #668: Add print support to xman.
+
+2004-06-02 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ Bugzilla #714: 'Fix' for Debian Bug#250887 ("/etc/init.d/xprint non-free") - the
+ reporter does not like the "All rights reserved"-string in the file
+ so lets get rid of it. License of all the Xprint sources is
+ MIT/X.org anyway.
+
+2004-05-31 Eric Anholt <anholt@FreeBSD.org>
+ * fonts/scaled/TTF/Imakefile:
+ VeraIt.ttf wasn't getting installed.
+
+2004-05-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xedit/Imakefile
+ * xc/programs/xedit/Xedit.ad
+ * xc/programs/xedit/commands.c
+ * xc/programs/xedit/hook.c
+ * xc/programs/xedit/ispell.c
+ * xc/programs/xedit/xedit.c
+ * xc/programs/xedit/xedit.h
+ * xc/programs/xmore/XMore.ad
+ * xc/programs/xmore/print.c
+ * xc/programs/xmore/print.h
+ * xc/programs/xmore/xmore.c
+ Bugzilla #695: Add print support to Xedit
+
+2004-05-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xmore/XMore.ad
+ * xc/programs/xmore/print.c
+ * xc/programs/xmore/print.h
+ * xc/programs/xmore/printdialog.c
+ * xc/programs/xmore/printdialog.h
+ * xc/programs/xmore/xmore.c
+ * xc/programs/xmore/xmore.h
+ Bugzilla #693: XMore and XawPrintDialog work-in-progress, fixing
+ various problems and adding framework for i18n.
+
+2004-05-29 Alan Coopersmith <alan.coopersmith@sun.com>
+ * programs/xkbcomp/rules/Imakefile:
+ Bugzilla #531: missing xfree86.lst (Grzegorz DÄ…browski <gdx@poczta.fm>)
+
+2004-05-29 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/FreeBSD.cf:
+ * config/cf/OpenBSD.cf:
+ * config/cf/OpenBSDLib.tmpl:
+ * config/cf/X11.tmpl:
+ * config/cf/os2.cf:
+ * config/cf/os2Lib.tmpl:
+ * lib/GL/GL/Imakefile:
+ * lib/Imakefile:
+ * lib/X11/Imakefile:
+ * lib/XThrStub/Imakefile:
+ * lib/XThrStub/UIThrStubs.c:
+ Bugzilla #640: Eliminate the XThrStub library and clean up/fix
+ threading defines on FreeBSD/OpenBSD.
+ Includes removal of lib/XThrStub/UIThrStubs.c after repocopy to
+ xc/lib/X11.
+
+2004-05-27 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/GL/Imakefile:
+ * programs/Xserver/Imakefile:
+ Bugzilla #573: Don't build DRI when server which uses this module
+ doesn't get built.
+
+2004-05-26 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ Bugzilla #456: Work around problems in RedHat's version of
+ chkconfig ("chkconfig sets priorities to -1")
+
+2004-05-26 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ Bugzilla #680: RFE: /etc/init.d/xprint should ensure that the CWD
+ is writeable for spooler applications (this works around some
+ versions of CUPS which seem to require that).
+
+2004-05-26 Egbert Eich <eich-at-freedesktop-org>
+
+ * extras/x86emu/include/x86emu.h:
+ * extras/x86emu/include/x86emu/fpu_regs.h:
+ * extras/x86emu/include/x86emu/regs.h:
+ * extras/x86emu/include/x86emu/types.h:
+ * extras/x86emu/src/x86emu/LICENSE:
+ * extras/x86emu/src/x86emu/debug.c: (x86emu_single_step):
+ * extras/x86emu/src/x86emu/decode.c: (X86EMU_exec),
+ (decode_rm00_address), (decode_rm01_address),
+ (decode_rm10_address):
+ * extras/x86emu/src/x86emu/fpu.c:
+ * extras/x86emu/src/x86emu/makefile:
+ * extras/x86emu/src/x86emu/makefile.linux:
+ * extras/x86emu/src/x86emu/ops.c: (x86emuOp_illegal_op),
+ (x86emuOp_aam), (x86emuOp_aad):
+ * extras/x86emu/src/x86emu/ops2.c:
+ * extras/x86emu/src/x86emu/prim_ops.c:
+ * extras/x86emu/src/x86emu/sys.c: (__uldq), (uldl), (uldw), (ustq),
+ (ustl), (ustw), (rdw), (rdl), (wrw), (wrl):
+ * extras/x86emu/src/x86emu/x86emu/debug.h:
+ * extras/x86emu/src/x86emu/x86emu/decode.h:
+ * extras/x86emu/src/x86emu/x86emu/prim_asm.h:
+ * extras/x86emu/src/x86emu/x86emu/prim_ops.h:
+ * extras/x86emu/src/x86emu/x86emu/x86emui.h:
+ * programs/Xserver/hw/xfree86/int10/Imakefile:
+ * programs/Xserver/hw/xfree86/int10/x86emu.c:
+ Updated x86emu and resynced with upsteam at Scitech.
+
+2004-05-26 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c:
+ (ARKPreInit):
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ (chipsPreInitHiQV), (CHIPSScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c:
+ (DUMMYPreInit):
+ * programs/Xserver/hw/xfree86/drivers/imstt/imstt_driver.c:
+ (IMSTTPreInit):
+ * programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c:
+ (NEOScreenInit), (NEOValidMode):
+ * programs/Xserver/hw/xfree86/drivers/newport/newport_driver.c:
+ (NewportPreInit):
+ * programs/Xserver/hw/xfree86/drivers/s3/s3_driver.c: (S3PreInit):
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi.h:
+ * programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c:
+ (SMI_MapMem), (SMI_InternalScreenInit):
+ * programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c:
+ (TsengPreInit):
+ Fixing setting of physical framebuffer base for several drivers.
+ C&T driver: Fixed setting of minimal clocks for HiQV chipsets.
+ Neomagic driver: improved support for lowres double scan modes.
+
+2004-05-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.html
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt
+ Update FAQ (Xprint_FAQ.xml) for new bugzilla URLs and rebuild
+ the HTML and plaintext versions.
+
+2004-05-25 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/programs/Xserver/hw/xfree86/getconfig/xorg.cfg
+ Bugzilla #678: getconfig: file '/usr/X11R6/lib/X11/getconfig/xorg.cfg'
+ has bad signature
+ (Change "Xorg Project" to "Xorg Foundation" to match getconfig script)
+
+2004-05-24 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xdpyinfo/xdpyinfo.c
+ BugZilla #672: xdpyinfo should print information about print screens
+
+2004-05-24 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * Imakefile:
+ * Makefile:
+ * config/cf/Imake.rules:
+ * config/cf/Imake.tmpl:
+ * config/cf/Library.tmpl:
+ * config/cf/X11.tmpl:
+ * lib/SM/sm_genid.c:
+ * lib/SM/sm_manager.c:
+ * lib/X11/xlibi18n/Xi18nLib.conf:
+ * lib/Xrandr/Imakefile:
+ * lib/Xrandr/Xrandrint.h:
+ * lib/Xtst/XRecord.c:
+ * lib/dps/Imakefile:
+ * lib/font/Speedo/spfont.c:
+ * lib/font/Type1/arith.c:
+ * lib/font/Type1/curves.c:
+ * lib/font/Type1/hints.c:
+ * lib/font/Type1/objects.c:
+ * lib/font/Type1/paths.c:
+ * lib/font/Type1/regions.c:
+ * lib/font/Type1/spaces.c:
+ * lib/font/Type1/t1funcs.c:
+ * lib/font/Type1/t1malloc.c:
+ * lib/font/Type1/t1stub.c:
+ * lib/font/fontfile/defaults.c:
+ * lib/oldX/XCrAssoc.c:
+ * lib/oldX/XDelAssoc.c:
+ * lib/oldX/XDestAssoc.c:
+ * lib/oldX/XDraw.c:
+ * lib/oldX/XLookAssoc.c:
+ * lib/oldX/XMakeAssoc.c:
+ * programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile:
+ * programs/fonttosfnt/Imakefile:
+ * programs/fonttosfnt/read.c:
+ * programs/xedit/lisp/Imakefile:
+ Fix build glitches when building modules independently using Imake.
+
+2004-05-24 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * lib/Xrender/Xrender.c: (XRenderDepthCheckErrorHandler):
+ * programs/xstdcmap/xstdcmap.c: (main):
+ Muffle compiler warnings.
+ * programs/Xserver/hw/xfree86/common/xf86Configure.c:
+ (DoConfigure):
+ fix option name in log message.
+ * programs/xdm/xdmcp.c: (manage):
+ improve debugging messages.
+
+2004-05-24 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * lib/X11/ConnDis.c: (GetAuthorization):
+ Improve 'uniqueness' of authorization cookie sent by client for
+ XDM-AUTHORIZATION-1. Old 'uniquness' consisted of the PID of the
+ client, a time stamp (in seconds) and a number obtained by starting
+ to count down from 0xffff. When a client did an XOpenDisplay() then
+ execv'ed a child and did XOpenDisplay() again within the same second,
+ the cookie was identical to the previous one (as the PID did not change
+ but the static 'count down' variable was reinitialized) and thus
+ refused by the server.
+
+2004-05-24 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:
+ (chipsClockSelect), (chipsClockFind), (chipsModeInitHiQV),
+ (chipsModeInitWingine), (chipsModeInit655xx):
+ * programs/Xserver/hw/xfree86/drivers/chips/ct_video.c:
+ (CHIPSSetupImageVideo), (CHIPSDisplayVideo), (CHIPSPutImage):
+ Fixed Segfault on video mode switching when pScrn->currentMode did
+ not contain a valid mode.
+ Fixed video overlays for double scan modes.
+
+2004-05-24 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Imakefile
+ * xc/programs/xmore/Imakefile
+ * xc/programs/xmore/print.c
+ * xc/programs/xmore/print.h
+ * xc/programs/xmore/printdialog.c
+ * xc/programs/xmore/printdialog.h
+ * xc/programs/xmore/printdialogprivates.h
+ * xc/programs/xmore/xmore.c
+ * xc/programs/xmore/xmore.h
+ * xc/programs/xmore/xmore.man
+ * xc/programs/xmore/xmore.sgml
+ BugZilla #611: Adding simple text viewer
+
+2004-05-23 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/programs/xcalc/math.c
+ * xc/programs/xcalc/xcalc.man
+ Bugzilla #665: xcalc -rpn mode errors (Geoffery Coram)
+
+2004-05-22 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/config/cf/sun.cf:
+ Set HasMkstemp to YES on Solaris
+
+ * xc/programs/xman/man.c
+ * xc/programs/xman/man.h
+ * xc/programs/xman/misc.c
+ * xc/programs/xman/vendor.h
+ Bugzilla #316: xman cannot display SGML man pages on Solaris
+
+2004-05-21 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/doc/man/Imakefile
+ * xc/doc/man/Xp/*
+ Bugzilla #511: Contribute Solaris man pages for libXp
+
+2004-05-21 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/lib/X11/util/makekeys.c:
+ Bugzilla #658: XStringToKeysym fails for Greek_IOTAdiaeresis
+ (Fixes VSW5 testcase XStringToKeysym-7 failure)
+
+2004-05-18 Eric Anholt <anholt@FreeBSD.org>
+
+ * config/cf/linux.cf:
+ * config/cf/xorg.cf:
+ * config/cf/xorgsite.def:
+ - Clean up xorg.cf by factoring out many common defines.
+ - Make the fbdev driver only build on Linux (fbdevhw is
+ just stubs on other OSes).
+ - Add AFB to AMD64 build, and include XF86OSCardDrivers.
+
+ Fixes Bugzilla #448,#449.
+
+2004-05-17 Eric Anholt <anholt@FreeBSD.org>
+
+ * lib/Xmu/EditresCom.c:
+ * lib/Xmu/WidgetNode.c: (XmuWnFetchResources):
+ Bugzilla #634: Remove Xaw header dependency from Xmu
+ library build.
+
+2004-05-16 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ BugZilla #633: RFE: /etc/init.d/xprint should source
+ /etc/X11/xfs/config for font paths.
+
+2004-05-16 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ BugZilla #451: /etc/init.d/xprint may output warnings when
+ /usr/share/fonts/ does not exist on a Linux installation.
+
+2004-05-16 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xdpyinfo/Imakefile
+ * xc/programs/xdpyinfo/xdpyinfo.c
+ BugZilla #623: RFE: "xdpyinfo" should have support for
+ XpExtension.
+
+2004-05-15 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/programs/Xserver/fb/fb.h
+ * xc/programs/Xserver/fb/fboverlay.c
+ * xc/programs/Xserver/fb/fbscreen.c
+ - Change #ifdef for checking for old format miScreenInit to
+ FB_OLD_MISCREENINIT for easier portability to xservers with
+ updated screen structs but old function prototypes. Make
+ it automatically defined if FB_OLD_SCREEN is defined.
+ - Add _LP64 to list of #ifdefs for 64-bit platforms to support
+ 64-bit Solaris.
+
+2004-05-15 Alan Coopersmith <alan.coopersmith@sun.com>
+ * xc/programs/Xserver/hw/xfree86/xf86config/Imakefile
+ * xc/programs/Xserver/hw/xfree86/xf86config/xorgconfig.c
+ - Clean up server name changes from TM branch
+ - Set default XKB rules file name correctly
+ - Use default font path from Imake configuration for the default
+ font path in generated xorg.conf files.
+ - Use path variables from Imake configuration for paths to files,
+ in case vendor has configured them to install somewhere other than
+ the defaults.
+
+2004-05-15 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ BugZilla #622: RFE: Xprt default BIGREQUESTS extension buffer
+ size should be 8MB (to make |XpPutDocumentData()| happy and to
+ improve performance).
+
+2004-05-15 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xphelloworld/Imakefile
+ BugZilla #625: Work around build bustage which happens when
+ build machine has no Motif installed.
+
+2004-05-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/fb/fbcompose.c: (fbCombineMaskAlphaC),
+ (fbCombineAtopC), (fbCombineXorC), (fbCombineSaturateU),
+ (fbCombineSaturateC), (fbCombineDisjointGeneralC),
+ (fbCombineConjointGeneralC):
+ * programs/Xserver/fb/fbpict.c: (fbComposite):
+ * programs/Xserver/fb/fbpict.h:
+ Fix problems in render fb implementation found by rendercheck:
+ - fbCombineSaturate was pointed at fbCombineDisjointOver, instead of
+ fbCombineDisjointOverReverse as it should. Instead, point
+ fbCombineDisjointOverReverse at fbCombineSaturate (which is likely
+ to be faster).
+ - fix previously-unused fbCombineSaturate implementation.
+ - fbCombineMaskAlphaC was just a copy of fbCombineMaskValueC. Make
+ it do what it's supposed to (return a cs.alpha).
+ - fbCombineAtopC didn't invert the source alpha value.
+ - fix copy'n'paste errors in fbCombine(Dis/Con)jointGeneralC, also
+ source alpha wasn't treated in a component fashion.
+ - fbCompositeSrc_8888* didn't handle when the source lacks an alpha
+ channel. Rather than adding that and possilby slowing down the
+ (normal) alpha case, don't let x8r8g8b8/x8b8g8r8 Pictures be used
+ in fbCompositeSrc_8888* because Over with one of these is just Src.
+
+2004-05-11 Eric Anholt <anholt@FreeBSD.org>
+
+ * programs/Xserver/hw/xfree86/os-support/bus/Imakefile:
+ Fix server on FreeBSD/amd64.
+
+2004-05-09 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xlogo/Imakefile
+ * xc/programs/xlogo/XLogo.ad
+ * xc/programs/xlogo/print.c
+ * xc/programs/xlogo/print.h
+ * xc/programs/xlogo/xlogo.c
+ * xc/programs/xlogo/xlogo.h
+ BugZilla #581: Print support for XLogo
+
+2004-05-07 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/attributes.c
+ BugZilla #608 ("Can not print on Debian/CUPS due to error |Xprt_64:
+ lpr: unable to print file: server-error-not-accepting-jobs|"):
+ Xprt did not setup the list of supplementary group ids, causing print
+ failure when the the calling user must be a member in a specific
+ group to be allowed to print.
+
+2004-05-06 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * config/cf/X11.tmpl:
+ * config/cf/site.def:
+ * config/imake/imakemdep.h:
+ * lib/Xaw/OS.c:
+ * lib/Xxf86dga/XF86DGA.c:
+ * lib/font/FreeType/module/Imakefile:
+ * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c:
+ * programs/xedit/lisp/lisp.c:
+ BugZilla #601:
+ Fixing makedepend choking on floating point exception because
+ CHAR_BIT is defined to __CHAR_BIT__ which is a compiler intrinsic
+ define.
+ BugZilla #605:
+ Fixing build on IA64 which is broken due to the inclusion of
+ the kernel header asm/page.h. Kernel headers however don't work with
+ -ansi. The inclusion of asm/page.h can however savely be removed
+ as it there are plenty of other ways to determine the page size.
+
+2004-05-05 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/ps/Imakefile
+ * programs/Xserver/Xprint/ps/PsFonts.c
+ BugZilla #551: PS DDX will not build on platforms with
+ BuildFreeType NO. Patch by Alan Coopersmith <alan.coopersmith@sun.com>.
+
+2004-05-05 Roland Mainz <roland.mainz@nrubsig.org>
+
+ * xc/programs/Xserver/Xprint/ps/psout.c
+ BugZilla #536: RFE: PS output should contain the FreeType2
+ version being used.
+
+2004-05-05 Egbert Eich <eich-at-pdx-freedesktop-org>
+
+ * lib/font/FreeType/ftconfig.h:
+ * lib/font/FreeType/fttools.c: (FTcheckForTTCName):
+ * lib/font/FreeType/module/Imakefile:
+ * lib/font/FreeType/module/ftheader.h:
+ * lib/font/FreeType/module/myftstdlib.h:
+ * lib/freetype2/Imakefile:
+ * lib/freetype2/freetype/config/Imakefile:
+ BugZilla #601: fixed missing symbols in Xserver freetype module
+ due to using isdigit instead of ft_isdigit, missing or faulty
+ defines for digit and string functions in ftstdlib.h
+ (now myftstdlib.h).
+ Reverted freetype2 to upstream version, fixed CHAR_BIT in
+ myftstdlib.h and made the use of a copy of ftconfig.h in
+ lib/font/FreeType obsolete.
+
+2004-05-04 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/xset/Imakefile
+ * xc/programs/xset/xset.c
+ BugZilla #597: "xset" should have an option to rehash
+ the list of available printers
+
+2004-05-04 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/config/cf/xf86site.def
+ * xc/config/cf/xfree86.cf
+ * xc/config/cf/xorg.cf
+ * xc/config/cf/xorgsite.def
+ * xc/config/cf/xprint_site.def
+ * xc/config/cf/xttMod.tmpl
+ * xc/extras/FreeType/FILES
+ * xc/extras/FreeType/INSTALL
+ * xc/extras/FreeType/MakeSub.in
+ * xc/extras/FreeType/Makefile.in
+ * xc/extras/FreeType/PATENTS
+ * xc/extras/FreeType/README
+ * xc/extras/FreeType/README.XFree86
+ * xc/extras/FreeType/aclocal.m4
+ * xc/extras/FreeType/announce
+ * xc/extras/FreeType/config.guess
+ * xc/extras/FreeType/config.sub
+ * xc/extras/FreeType/configure
+ * xc/extras/FreeType/configure.in
+ * xc/extras/FreeType/contrib/ftos2/DEVELFAQ
+ * xc/extras/FreeType/contrib/ftos2/FAQ
+ * xc/extras/FreeType/contrib/ftos2/ifi/32fddef.h
+ * xc/extras/FreeType/contrib/ftos2/ifi/32fdstrc.h
+ * xc/extras/FreeType/contrib/ftos2/ifi/32ifimet.h
+ * xc/extras/FreeType/contrib/ftos2/ifi/32pmifi.h
+ * xc/extras/FreeType/contrib/ftos2/ifi/FreeType.def
+ * xc/extras/FreeType/contrib/ftos2/ifi/FreeType.icc
+ * xc/extras/FreeType/contrib/ftos2/ifi/FreeType.wat
+ * xc/extras/FreeType/contrib/ftos2/ifi/ftifi.c
+ * xc/extras/FreeType/contrib/ftos2/ifi/ftifi.h
+ * xc/extras/FreeType/contrib/ftos2/ifi/ftmem.c
+ * xc/extras/FreeType/contrib/ftos2/ifi/ftmem.icc
+ * xc/extras/FreeType/contrib/ftos2/ifi/test.c
+ * xc/extras/FreeType/contrib/ftos2/ifi/test.icc
+ * xc/extras/FreeType/contrib/ftos2/ifi/test.wat
+ * xc/extras/FreeType/contrib/ftos2/install.cmd
+ * xc/extras/FreeType/contrib/ftos2/lib/arch/os2/Makefile.icc
+ * xc/extras/FreeType/contrib/ftos2/lib/arch/os2/Makefile.wat
+ * xc/extras/FreeType/contrib/ftos2/lib/ttmemory.c
+ * xc/extras/FreeType/contrib/ftos2/limit.cmd
+ * xc/extras/FreeType/contrib/ftos2/query.cmd
+ * xc/extras/FreeType/contrib/ftos2/readme.1st
+ * xc/extras/FreeType/contrib/ftos2/readme.txt
+ * xc/extras/FreeType/contrib/ftos2/uninst.c
+ * xc/extras/FreeType/contrib/ftos2/uninstall.cmd
+ * xc/extras/FreeType/contrib/ttf2bdf/.cvsignore
+ * xc/extras/FreeType/contrib/ttf2bdf/Makefile.in
+ * xc/extras/FreeType/contrib/ttf2bdf/README
+ * xc/extras/FreeType/contrib/ttf2bdf/configure
+ * xc/extras/FreeType/contrib/ttf2bdf/configure.in
+ * xc/extras/FreeType/contrib/ttf2bdf/contrib/KOI2iso_pcf
+ * xc/extras/FreeType/contrib/ttf2bdf/contrib/creatett
+ * xc/extras/FreeType/contrib/ttf2bdf/contrib/creatett.m
+ * xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.1
+ * xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.2
+ * xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.3
+ * xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.5
+ * xc/extras/FreeType/contrib/ttf2bdf/maps/koi8.r
+ * xc/extras/FreeType/contrib/ttf2bdf/maps/windows.1251
+ * xc/extras/FreeType/contrib/ttf2bdf/remap.c
+ * xc/extras/FreeType/contrib/ttf2bdf/remap.h
+ * xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.c
+ * xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.man
+ * xc/extras/FreeType/contrib/ttf2pfb/.cvsignore
+ * xc/extras/FreeType/contrib/ttf2pfb/Makefile.emx
+ * xc/extras/FreeType/contrib/ttf2pfb/Makefile.in
+ * xc/extras/FreeType/contrib/ttf2pfb/TODO
+ * xc/extras/FreeType/contrib/ttf2pfb/Uni-T1.enc
+ * xc/extras/FreeType/contrib/ttf2pfb/configure
+ * xc/extras/FreeType/contrib/ttf2pfb/configure.in
+ * xc/extras/FreeType/contrib/ttf2pfb/getafm
+ * xc/extras/FreeType/contrib/ttf2pfb/t1asm.c
+ * xc/extras/FreeType/contrib/ttf2pfb/ttf2pfb.c
+ * xc/extras/FreeType/contrib/ttf2pk/.cvsignore
+ * xc/extras/FreeType/contrib/ttf2pk/BUGS
+ * xc/extras/FreeType/contrib/ttf2pk/MakeSub.in
+ * xc/extras/FreeType/contrib/ttf2pk/Makefile.dm
+ * xc/extras/FreeType/contrib/ttf2pk/Makefile.in
+ * xc/extras/FreeType/contrib/ttf2pk/README
+ * xc/extras/FreeType/contrib/ttf2pk/TODO
+ * xc/extras/FreeType/contrib/ttf2pk/c-auto.h
+ * xc/extras/FreeType/contrib/ttf2pk/case.c
+ * xc/extras/FreeType/contrib/ttf2pk/case.h
+ * xc/extras/FreeType/contrib/ttf2pk/configure
+ * xc/extras/FreeType/contrib/ttf2pk/configure.in
+ * xc/extras/FreeType/contrib/ttf2pk/data/Big5.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/ET5.enc
+ * xc/extras/FreeType/contrib/ttf2pk/data/EUC.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/SJIS.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/T1-WGL4.enc
+ * xc/extras/FreeType/contrib/ttf2pk/data/UBg5plus.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/UBig5.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/UGB.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/UGBK.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/UJIS.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/UKS.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/Unicode.sfd
+ * xc/extras/FreeType/contrib/ttf2pk/data/VPS.rpl
+ * xc/extras/FreeType/contrib/ttf2pk/data/ttfonts.map
+ * xc/extras/FreeType/contrib/ttf2pk/dvidrv.btm
+ * xc/extras/FreeType/contrib/ttf2pk/dvidrv.doc
+ * xc/extras/FreeType/contrib/ttf2pk/emdir.c
+ * xc/extras/FreeType/contrib/ttf2pk/emdir.h
+ * xc/extras/FreeType/contrib/ttf2pk/emtexdir.c
+ * xc/extras/FreeType/contrib/ttf2pk/emtexdir.h
+ * xc/extras/FreeType/contrib/ttf2pk/errormsg.c
+ * xc/extras/FreeType/contrib/ttf2pk/errormsg.h
+ * xc/extras/FreeType/contrib/ttf2pk/filesrch.c
+ * xc/extras/FreeType/contrib/ttf2pk/filesrch.h
+ * xc/extras/FreeType/contrib/ttf2pk/ligkern.c
+ * xc/extras/FreeType/contrib/ttf2pk/ligkern.h
+ * xc/extras/FreeType/contrib/ttf2pk/newobj.c
+ * xc/extras/FreeType/contrib/ttf2pk/newobj.h
+ * xc/extras/FreeType/contrib/ttf2pk/parse.c
+ * xc/extras/FreeType/contrib/ttf2pk/parse.h
+ * xc/extras/FreeType/contrib/ttf2pk/pklib.c
+ * xc/extras/FreeType/contrib/ttf2pk/pklib.h
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/README
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/teTeX-0.4/MakeTeXPK.diff
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/web2c-6.1/MakeTeXPK.diff
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/web2c-6.1/README
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/web2c-7.0/MakeTeXPK.diff
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/web2c-7.1/MakeTeXPK.diff
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/web2c-7.1/README
+ * xc/extras/FreeType/contrib/ttf2pk/scripts/web2c-7.2/mktexpk.diff
+ * xc/extras/FreeType/contrib/ttf2pk/subfont.c
+ * xc/extras/FreeType/contrib/ttf2pk/subfont.h
+ * xc/extras/FreeType/contrib/ttf2pk/texenc.c
+ * xc/extras/FreeType/contrib/ttf2pk/texenc.h
+ * xc/extras/FreeType/contrib/ttf2pk/tfmaux.c
+ * xc/extras/FreeType/contrib/ttf2pk/tfmaux.h
+ * xc/extras/FreeType/contrib/ttf2pk/ttf2pk.1
+ * xc/extras/FreeType/contrib/ttf2pk/ttf2pk.c
+ * xc/extras/FreeType/contrib/ttf2pk/ttf2pk.doc
+ * xc/extras/FreeType/contrib/ttf2pk/ttf2tfm.1
+ * xc/extras/FreeType/contrib/ttf2pk/ttf2tfm.c
+ * xc/extras/FreeType/contrib/ttf2pk/ttf2tfm.h
+ * xc/extras/FreeType/contrib/ttf2pk/ttfaux.c
+ * xc/extras/FreeType/contrib/ttf2pk/ttfaux.h
+ * xc/extras/FreeType/contrib/ttf2pk/ttfenc.c
+ * xc/extras/FreeType/contrib/ttf2pk/ttfenc.h
+ * xc/extras/FreeType/contrib/ttf2pk/ttflib.c
+ * xc/extras/FreeType/contrib/ttf2pk/ttflib.h
+ * xc/extras/FreeType/contrib/ttf2pk/vplaux.c
+ * xc/extras/FreeType/contrib/ttf2pk/vplaux.h
+ * xc/extras/FreeType/contrib/ttfbanner/.cvsignore
+ * xc/extras/FreeType/contrib/ttfbanner/Makefile.emx
+ * xc/extras/FreeType/contrib/ttfbanner/Makefile.in
+ * xc/extras/FreeType/contrib/ttfbanner/README
+ * xc/extras/FreeType/contrib/ttfbanner/configure
+ * xc/extras/FreeType/contrib/ttfbanner/configure.in
+ * xc/extras/FreeType/contrib/ttfbanner/ttfbanner.c
+ * xc/extras/FreeType/contrib/ttfbanner/ttfbanner.h
+ * xc/extras/FreeType/contrib/win32/driver32.c
+ * xc/extras/FreeType/contrib/win32/hack_common.c
+ * xc/extras/FreeType/contrib/win32/hack_ftdump.c
+ * xc/extras/FreeType/contrib/win32/hack_ftlint.c
+ * xc/extras/FreeType/contrib/win32/hack_ftstring.c
+ * xc/extras/FreeType/contrib/win32/hack_fttimer.c
+ * xc/extras/FreeType/contrib/win32/hack_ftview.c
+ * xc/extras/FreeType/contrib/win32/readme.txt
+ * xc/extras/FreeType/contrib/win32/res/testw32.rc2
+ * xc/extras/FreeType/contrib/win32/resource.h
+ * xc/extras/FreeType/contrib/win32/stdafx.cpp
+ * xc/extras/FreeType/contrib/win32/stdafx.h
+ * xc/extras/FreeType/contrib/win32/testw32.cpp
+ * xc/extras/FreeType/contrib/win32/testw32.dsp
+ * xc/extras/FreeType/contrib/win32/testw32.dsw
+ * xc/extras/FreeType/contrib/win32/testw32.h
+ * xc/extras/FreeType/contrib/win32/testw32.mak
+ * xc/extras/FreeType/contrib/win32/testw32.rc
+ * xc/extras/FreeType/contrib/win32/testw32dlg.cpp
+ * xc/extras/FreeType/contrib/win32/testw32dlg.h
+ * xc/extras/FreeType/docs/FAQ
+ * xc/extras/FreeType/docs/TODO
+ * xc/extras/FreeType/docs/apiref.txt
+ * xc/extras/FreeType/docs/apirefx.txt
+ * xc/extras/FreeType/docs/bitmaps.txt
+ * xc/extras/FreeType/docs/changes.txt
+ * xc/extras/FreeType/docs/convntns.txt
+ * xc/extras/FreeType/docs/credits
+ * xc/extras/FreeType/docs/freetype.lsm
+ * xc/extras/FreeType/docs/glyphs.htm
+ * xc/extras/FreeType/docs/glyphs.txt
+ * xc/extras/FreeType/docs/i18n.txt
+ * xc/extras/FreeType/docs/optimize.txt
+ * xc/extras/FreeType/docs/porting.txt
+ * xc/extras/FreeType/docs/raster.txt
+ * xc/extras/FreeType/docs/readme.txt
+ * xc/extras/FreeType/docs/threads.txt
+ * xc/extras/FreeType/docs/user.txt
+ * xc/extras/FreeType/freetype.spec
+ * xc/extras/FreeType/ft_conf.h.in
+ * xc/extras/FreeType/howto/mac.txt
+ * xc/extras/FreeType/howto/msdos.txt
+ * xc/extras/FreeType/howto/os2.txt
+ * xc/extras/FreeType/howto/unix.txt
+ * xc/extras/FreeType/howto/windows.txt
+ * xc/extras/FreeType/install-sh
+ * xc/extras/FreeType/lib/.cvsignore
+ * xc/extras/FreeType/lib/arch/amigaos/Makefile.gcc
+ * xc/extras/FreeType/lib/arch/amigaos/freetype.c
+ * xc/extras/FreeType/lib/arch/amigaos/ft_conf.h
+ * xc/extras/FreeType/lib/arch/ansi/freetype.c
+ * xc/extras/FreeType/lib/arch/ansi/ft_conf.h
+ * xc/extras/FreeType/lib/arch/debugger/Makefile
+ * xc/extras/FreeType/lib/arch/debugger/freetype.c
+ * xc/extras/FreeType/lib/arch/debugger/ft_conf.h
+ * xc/extras/FreeType/lib/arch/mac/README
+ * xc/extras/FreeType/lib/arch/mac/freetype.c
+ * xc/extras/FreeType/lib/arch/mac/ft_conf.h
+ * xc/extras/FreeType/lib/arch/mac/ttmmap.c
+ * xc/extras/FreeType/lib/arch/msdos/Makefile.BC
+ * xc/extras/FreeType/lib/arch/msdos/Makefile.MS
+ * xc/extras/FreeType/lib/arch/msdos/Makefile.TC
+ * xc/extras/FreeType/lib/arch/msdos/Makefile.VC
+ * xc/extras/FreeType/lib/arch/msdos/Makefile.dm
+ * xc/extras/FreeType/lib/arch/msdos/Makefile.gcc
+ * xc/extras/FreeType/lib/arch/msdos/Makefile.wat
+ * xc/extras/FreeType/lib/arch/msdos/depend.dos
+ * xc/extras/FreeType/lib/arch/msdos/freetype.c
+ * xc/extras/FreeType/lib/arch/msdos/ft_conf.h
+ * xc/extras/FreeType/lib/arch/msdos/hugefile.c
+ * xc/extras/FreeType/lib/arch/msdos/hugemem.c
+ * xc/extras/FreeType/lib/arch/msdos/makedep
+ * xc/extras/FreeType/lib/arch/os2/Makefile.dm
+ * xc/extras/FreeType/lib/arch/os2/Makefile.emx
+ * xc/extras/FreeType/lib/arch/os2/Makefile.icc
+ * xc/extras/FreeType/lib/arch/os2/Makefile.wat
+ * xc/extras/FreeType/lib/arch/os2/freetype.c
+ * xc/extras/FreeType/lib/arch/os2/ft_conf.h
+ * xc/extras/FreeType/lib/arch/os2/os2file.c
+ * xc/extras/FreeType/lib/arch/unix/.cvsignore
+ * xc/extras/FreeType/lib/arch/unix/Makefile.in
+ * xc/extras/FreeType/lib/arch/unix/freetype.c
+ * xc/extras/FreeType/lib/arch/unix/ttmmap.c
+ * xc/extras/FreeType/lib/arch/vms/README
+ * xc/extras/FreeType/lib/arch/vms/descrip.mms
+ * xc/extras/FreeType/lib/arch/vms/ft_conf.h
+ * xc/extras/FreeType/lib/arch/win16/Makefile.BC
+ * xc/extras/FreeType/lib/arch/win16/Makefile.MS
+ * xc/extras/FreeType/lib/arch/win16/Makefile.VC
+ * xc/extras/FreeType/lib/arch/win16/depend.win
+ * xc/extras/FreeType/lib/arch/win16/freetype.c
+ * xc/extras/FreeType/lib/arch/win16/ft_conf.h
+ * xc/extras/FreeType/lib/arch/win16/hugefile.c
+ * xc/extras/FreeType/lib/arch/win16/hugemem.c
+ * xc/extras/FreeType/lib/arch/win16/makedef
+ * xc/extras/FreeType/lib/arch/win16/makedep
+ * xc/extras/FreeType/lib/arch/win16/ttf.def
+ * xc/extras/FreeType/lib/arch/win32/Makefile.BC
+ * xc/extras/FreeType/lib/arch/win32/Makefile.CL
+ * xc/extras/FreeType/lib/arch/win32/Makefile.Min
+ * xc/extras/FreeType/lib/arch/win32/Makefile.VC
+ * xc/extras/FreeType/lib/arch/win32/Makefile.gcc
+ * xc/extras/FreeType/lib/arch/win32/depend.win
+ * xc/extras/FreeType/lib/arch/win32/freetype.c
+ * xc/extras/FreeType/lib/arch/win32/freetype.dsp
+ * xc/extras/FreeType/lib/arch/win32/freetype.dsw
+ * xc/extras/FreeType/lib/arch/win32/freetype.mak
+ * xc/extras/FreeType/lib/arch/win32/ft_conf.h
+ * xc/extras/FreeType/lib/arch/win32/makedef
+ * xc/extras/FreeType/lib/arch/win32/makedep
+ * xc/extras/FreeType/lib/arch/win32/ttf.def
+ * xc/extras/FreeType/lib/extend/ftxcmap.c
+ * xc/extras/FreeType/lib/extend/ftxcmap.h
+ * xc/extras/FreeType/lib/extend/ftxerr18.c
+ * xc/extras/FreeType/lib/extend/ftxerr18.h
+ * xc/extras/FreeType/lib/extend/ftxgasp.c
+ * xc/extras/FreeType/lib/extend/ftxgasp.h
+ * xc/extras/FreeType/lib/extend/ftxgdef.c
+ * xc/extras/FreeType/lib/extend/ftxgdef.h
+ * xc/extras/FreeType/lib/extend/ftxgpos.c
+ * xc/extras/FreeType/lib/extend/ftxgpos.h
+ * xc/extras/FreeType/lib/extend/ftxgsub.c
+ * xc/extras/FreeType/lib/extend/ftxgsub.h
+ * xc/extras/FreeType/lib/extend/ftxkern.c
+ * xc/extras/FreeType/lib/extend/ftxkern.h
+ * xc/extras/FreeType/lib/extend/ftxopen.c
+ * xc/extras/FreeType/lib/extend/ftxopen.h
+ * xc/extras/FreeType/lib/extend/ftxopenf.h
+ * xc/extras/FreeType/lib/extend/ftxpost.c
+ * xc/extras/FreeType/lib/extend/ftxpost.h
+ * xc/extras/FreeType/lib/extend/ftxsbit.c
+ * xc/extras/FreeType/lib/extend/ftxsbit.h
+ * xc/extras/FreeType/lib/extend/ftxwidth.c
+ * xc/extras/FreeType/lib/extend/ftxwidth.h
+ * xc/extras/FreeType/lib/extend/readme.1st
+ * xc/extras/FreeType/lib/freetype.h
+ * xc/extras/FreeType/lib/fterrid.h
+ * xc/extras/FreeType/lib/ftnameid.h
+ * xc/extras/FreeType/lib/header.h
+ * xc/extras/FreeType/lib/ttapi.c
+ * xc/extras/FreeType/lib/ttcache.c
+ * xc/extras/FreeType/lib/ttcache.h
+ * xc/extras/FreeType/lib/ttcalc.c
+ * xc/extras/FreeType/lib/ttcalc.h
+ * xc/extras/FreeType/lib/ttcmap.c
+ * xc/extras/FreeType/lib/ttcmap.h
+ * xc/extras/FreeType/lib/ttconfig.h
+ * xc/extras/FreeType/lib/ttdebug.c
+ * xc/extras/FreeType/lib/ttdebug.h
+ * xc/extras/FreeType/lib/ttengine.h
+ * xc/extras/FreeType/lib/ttextend.c
+ * xc/extras/FreeType/lib/ttextend.h
+ * xc/extras/FreeType/lib/ttfile.c
+ * xc/extras/FreeType/lib/ttfile.h
+ * xc/extras/FreeType/lib/ttgload.c
+ * xc/extras/FreeType/lib/ttgload.h
+ * xc/extras/FreeType/lib/ttinterp.c
+ * xc/extras/FreeType/lib/ttinterp.h
+ * xc/extras/FreeType/lib/ttload.c
+ * xc/extras/FreeType/lib/ttload.h
+ * xc/extras/FreeType/lib/ttmemory.c
+ * xc/extras/FreeType/lib/ttmemory.h
+ * xc/extras/FreeType/lib/ttmutex.c
+ * xc/extras/FreeType/lib/ttmutex.h
+ * xc/extras/FreeType/lib/ttobjs.c
+ * xc/extras/FreeType/lib/ttobjs.h
+ * xc/extras/FreeType/lib/ttraster.c
+ * xc/extras/FreeType/lib/ttraster.h
+ * xc/extras/FreeType/lib/tttables.h
+ * xc/extras/FreeType/lib/tttags.h
+ * xc/extras/FreeType/lib/tttypes.h
+ * xc/extras/FreeType/license.txt
+ * xc/extras/FreeType/ltconfig
+ * xc/extras/FreeType/ltmain.sh
+ * xc/extras/FreeType/mkinstalldirs
+ * xc/extras/FreeType/net.m4
+ * xc/extras/FreeType/pascal/lib/freetype.pas
+ * xc/extras/FreeType/pascal/lib/ttcache.pas
+ * xc/extras/FreeType/pascal/lib/ttcalc.pas
+ * xc/extras/FreeType/pascal/lib/ttcalc1.inc
+ * xc/extras/FreeType/pascal/lib/ttcalc2.inc
+ * xc/extras/FreeType/pascal/lib/ttcalc3.inc
+ * xc/extras/FreeType/pascal/lib/ttcalc4.inc
+ * xc/extras/FreeType/pascal/lib/ttcmap.pas
+ * xc/extras/FreeType/pascal/lib/ttconfig.inc
+ * xc/extras/FreeType/pascal/lib/ttdebug.pas
+ * xc/extras/FreeType/pascal/lib/tterror.pas
+ * xc/extras/FreeType/pascal/lib/ttfile.pas
+ * xc/extras/FreeType/pascal/lib/ttgload.pas
+ * xc/extras/FreeType/pascal/lib/ttinterp.pas
+ * xc/extras/FreeType/pascal/lib/ttload.pas
+ * xc/extras/FreeType/pascal/lib/ttmemory.pas
+ * xc/extras/FreeType/pascal/lib/ttobjs.pas
+ * xc/extras/FreeType/pascal/lib/ttraster.pas
+ * xc/extras/FreeType/pascal/lib/tttables.pas
+ * xc/extras/FreeType/pascal/lib/tttypes.pas
+ * xc/extras/FreeType/pascal/test/codetv.pas
+ * xc/extras/FreeType/pascal/test/common.pas
+ * xc/extras/FreeType/pascal/test/debugger.inc
+ * xc/extras/FreeType/pascal/test/debugger.pas
+ * xc/extras/FreeType/pascal/test/dump.pas
+ * xc/extras/FreeType/pascal/test/gdriver.pas
+ * xc/extras/FreeType/pascal/test/gdrv_dos.inc
+ * xc/extras/FreeType/pascal/test/gdrv_os2.inc
+ * xc/extras/FreeType/pascal/test/gevents.pas
+ * xc/extras/FreeType/pascal/test/gmain.pas
+ * xc/extras/FreeType/pascal/test/lint.pas
+ * xc/extras/FreeType/pascal/test/stacktv.pas
+ * xc/extras/FreeType/pascal/test/statetv.pas
+ * xc/extras/FreeType/pascal/test/timer.pas
+ * xc/extras/FreeType/pascal/test/view.pas
+ * xc/extras/FreeType/pascal/test/zonetv.pas
+ * xc/extras/FreeType/po/.cvsignore
+ * xc/extras/FreeType/po/Makefile.in.in
+ * xc/extras/FreeType/po/POTFILES.in
+ * xc/extras/FreeType/po/cs.po
+ * xc/extras/FreeType/po/de.po
+ * xc/extras/FreeType/po/es.po
+ * xc/extras/FreeType/po/fr.po
+ * xc/extras/FreeType/po/nl.po
+ * xc/extras/FreeType/readme.1st
+ * xc/extras/FreeType/test/.cvsignore
+ * xc/extras/FreeType/test/README
+ * xc/extras/FreeType/test/arabic.c
+ * xc/extras/FreeType/test/arabic.h
+ * xc/extras/FreeType/test/arch/amigaos/Makefile.gcc
+ * xc/extras/FreeType/test/arch/amigaos/TODO
+ * xc/extras/FreeType/test/arch/amigaos/gfsamiga.c
+ * xc/extras/FreeType/test/arch/amigaos/gw_amiga.c
+ * xc/extras/FreeType/test/arch/amigaos/smakefile
+ * xc/extras/FreeType/test/arch/debugger/Makefile
+ * xc/extras/FreeType/test/arch/msdos/Makefile.BC
+ * xc/extras/FreeType/test/arch/msdos/Makefile.MS
+ * xc/extras/FreeType/test/arch/msdos/Makefile.TC
+ * xc/extras/FreeType/test/arch/msdos/Makefile.VC
+ * xc/extras/FreeType/test/arch/msdos/Makefile.dm
+ * xc/extras/FreeType/test/arch/msdos/Makefile.gcc
+ * xc/extras/FreeType/test/arch/msdos/depend.dos
+ * xc/extras/FreeType/test/arch/msdos/gfs_dos.c
+ * xc/extras/FreeType/test/arch/msdos/makedep
+ * xc/extras/FreeType/test/arch/msdos/time_tc.h
+ * xc/extras/FreeType/test/arch/os2/Makefile.dm
+ * xc/extras/FreeType/test/arch/os2/Makefile.emx
+ * xc/extras/FreeType/test/arch/os2/Makefile.icc
+ * xc/extras/FreeType/test/arch/os2/Makefile.wat
+ * xc/extras/FreeType/test/arch/os2/gfs_os2.c
+ * xc/extras/FreeType/test/arch/os2/gpm_os2.c
+ * xc/extras/FreeType/test/arch/os2/gpm_os2.def
+ * xc/extras/FreeType/test/arch/unix/.cvsignore
+ * xc/extras/FreeType/test/arch/unix/Makefile.in
+ * xc/extras/FreeType/test/arch/unix/gwin_x11.c
+ * xc/extras/FreeType/test/arch/win16/Makefile.BC
+ * xc/extras/FreeType/test/arch/win16/Makefile.MS
+ * xc/extras/FreeType/test/arch/win16/Makefile.VC
+ * xc/extras/FreeType/test/arch/win16/depend.win
+ * xc/extras/FreeType/test/arch/win16/gw_win16.c
+ * xc/extras/FreeType/test/arch/win16/makedep
+ * xc/extras/FreeType/test/arch/win32/Makefile.BC
+ * xc/extras/FreeType/test/arch/win32/Makefile.CL
+ * xc/extras/FreeType/test/arch/win32/Makefile.Min
+ * xc/extras/FreeType/test/arch/win32/Makefile.gcc
+ * xc/extras/FreeType/test/arch/win32/depend.win
+ * xc/extras/FreeType/test/arch/win32/gw_win32.c
+ * xc/extras/FreeType/test/arch/win32/makedep
+ * xc/extras/FreeType/test/blitter.c
+ * xc/extras/FreeType/test/blitter.h
+ * xc/extras/FreeType/test/common.c
+ * xc/extras/FreeType/test/common.h
+ * xc/extras/FreeType/test/display.c
+ * xc/extras/FreeType/test/display.h
+ * xc/extras/FreeType/test/fdebug.c
+ * xc/extras/FreeType/test/ftdump.c
+ * xc/extras/FreeType/test/fterror.c
+ * xc/extras/FreeType/test/ftlint.c
+ * xc/extras/FreeType/test/ftmetric.c
+ * xc/extras/FreeType/test/ftsbit.c
+ * xc/extras/FreeType/test/ftstring.c
+ * xc/extras/FreeType/test/ftstrpnm.c
+ * xc/extras/FreeType/test/ftstrtto.c
+ * xc/extras/FreeType/test/fttimer.c
+ * xc/extras/FreeType/test/ftview.c
+ * xc/extras/FreeType/test/ftzoom.c
+ * xc/extras/FreeType/test/gdriver.h
+ * xc/extras/FreeType/test/gevents.h
+ * xc/extras/FreeType/test/gmain.c
+ * xc/extras/FreeType/test/gmain.h
+ * xc/extras/X-TrueType/ARABIC/CP1256toUCS2.c
+ * xc/extras/X-TrueType/ARABIC/IRANSYSTEMtoUCS2.c
+ * xc/extras/X-TrueType/ARABIC/ISIRI3342toUCS2.c
+ * xc/extras/X-TrueType/ARABIC/Imakefile
+ * xc/extras/X-TrueType/ARABIC/MULEARABICtoUCS2.c
+ * xc/extras/X-TrueType/ARABIC/URDUNAQSHtoUCS2.c
+ * xc/extras/X-TrueType/ARABIC/XATERMtoUCS2.c
+ * xc/extras/X-TrueType/ARABIC/main.c
+ * xc/extras/X-TrueType/ARMSCII8/ARMSCII8toUCS2.c
+ * xc/extras/X-TrueType/ARMSCII8/Imakefile
+ * xc/extras/X-TrueType/ARMSCII8/main.c
+ * xc/extras/X-TrueType/BIG5/BIG5toUCS2.c
+ * xc/extras/X-TrueType/BIG5/Imakefile
+ * xc/extras/X-TrueType/BIG5/main.c
+ * xc/extras/X-TrueType/BIG5HKSCS/BIG5HKSCStoUCS2.c
+ * xc/extras/X-TrueType/BIG5HKSCS/Imakefile
+ * xc/extras/X-TrueType/BIG5HKSCS/main.c
+ * xc/extras/X-TrueType/CHANGES.eng
+ * xc/extras/X-TrueType/DOSENCODING/DOSENCODINGtoUCS2.c
+ * xc/extras/X-TrueType/DOSENCODING/Imakefile
+ * xc/extras/X-TrueType/DOSENCODING/main.c
+ * xc/extras/X-TrueType/GB18030/GB18030toUCS2.c
+ * xc/extras/X-TrueType/GB18030/Imakefile
+ * xc/extras/X-TrueType/GB18030/main.c
+ * xc/extras/X-TrueType/GB2312/GB2312toUCS2.c
+ * xc/extras/X-TrueType/GB2312/Imakefile
+ * xc/extras/X-TrueType/GB2312/main.c
+ * xc/extras/X-TrueType/GBK/GBKtoUCS2.c
+ * xc/extras/X-TrueType/GBK/Imakefile
+ * xc/extras/X-TrueType/GBK/main.c
+ * xc/extras/X-TrueType/GEORGIAN/GEORGIANtoUCS2.c
+ * xc/extras/X-TrueType/GEORGIAN/Imakefile
+ * xc/extras/X-TrueType/GEORGIAN/main.c
+ * xc/extras/X-TrueType/ISO8859.1/ISO8859_1toAROMAN.c
+ * xc/extras/X-TrueType/ISO8859.1/Imakefile
+ * xc/extras/X-TrueType/ISO8859.1/main.c
+ * xc/extras/X-TrueType/ISO8859.10/ISO8859_10toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.10/Imakefile
+ * xc/extras/X-TrueType/ISO8859.10/main.c
+ * xc/extras/X-TrueType/ISO8859.11/ISO8859_11toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.11/Imakefile
+ * xc/extras/X-TrueType/ISO8859.11/main.c
+ * xc/extras/X-TrueType/ISO8859.13/ISO8859_13toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.13/Imakefile
+ * xc/extras/X-TrueType/ISO8859.13/main.c
+ * xc/extras/X-TrueType/ISO8859.14/ISO8859_14toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.14/Imakefile
+ * xc/extras/X-TrueType/ISO8859.14/main.c
+ * xc/extras/X-TrueType/ISO8859.15/Imakefile
+ * xc/extras/X-TrueType/ISO8859.15/main.c
+ * xc/extras/X-TrueType/ISO8859.2/ISO8859_2toACNTRO.c
+ * xc/extras/X-TrueType/ISO8859.2/ISO8859_2toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.2/Imakefile
+ * xc/extras/X-TrueType/ISO8859.2/main.c
+ * xc/extras/X-TrueType/ISO8859.3/ISO8859_3toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.3/Imakefile
+ * xc/extras/X-TrueType/ISO8859.3/main.c
+ * xc/extras/X-TrueType/ISO8859.4/ISO8859_4toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.4/Imakefile
+ * xc/extras/X-TrueType/ISO8859.4/main.c
+ * xc/extras/X-TrueType/ISO8859.5/ISO8859_5toACYRIL.c
+ * xc/extras/X-TrueType/ISO8859.5/ISO8859_5toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.5/Imakefile
+ * xc/extras/X-TrueType/ISO8859.5/main.c
+ * xc/extras/X-TrueType/ISO8859.6/ISO8859_6toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.6/Imakefile
+ * xc/extras/X-TrueType/ISO8859.6/main.c
+ * xc/extras/X-TrueType/ISO8859.7/ISO8859_7toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.7/Imakefile
+ * xc/extras/X-TrueType/ISO8859.7/main.c
+ * xc/extras/X-TrueType/ISO8859.8/ISO8859_8toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.8/Imakefile
+ * xc/extras/X-TrueType/ISO8859.8/main.c
+ * xc/extras/X-TrueType/ISO8859.9/ISO8859_9toUCS2.c
+ * xc/extras/X-TrueType/ISO8859.9/Imakefile
+ * xc/extras/X-TrueType/ISO8859.9/main.c
+ * xc/extras/X-TrueType/Imakefile
+ * xc/extras/X-TrueType/JISX0201/Imakefile
+ * xc/extras/X-TrueType/JISX0201/JISX0201toUCS2.c
+ * xc/extras/X-TrueType/JISX0201/main.c
+ * xc/extras/X-TrueType/JISX0208/Imakefile
+ * xc/extras/X-TrueType/JISX0208/JISX0208toUCS2.c
+ * xc/extras/X-TrueType/JISX0208/main.c
+ * xc/extras/X-TrueType/JISX0212/Imakefile
+ * xc/extras/X-TrueType/JISX0212/JISX0212toUCS2.c
+ * xc/extras/X-TrueType/JISX0212/main.c
+ * xc/extras/X-TrueType/KOI8/Imakefile
+ * xc/extras/X-TrueType/KOI8/KOI8_RtoUCS2.c
+ * xc/extras/X-TrueType/KOI8/KOI8_UNItoUCS2.c
+ * xc/extras/X-TrueType/KOI8/main.c
+ * xc/extras/X-TrueType/KSC5601/Imakefile
+ * xc/extras/X-TrueType/KSC5601/KSC5601toUCS2.c
+ * xc/extras/X-TrueType/KSC5601/main.c
+ * xc/extras/X-TrueType/KSCJOHAB/Imakefile
+ * xc/extras/X-TrueType/KSCJOHAB/KSCJOHABtoUCS2.c
+ * xc/extras/X-TrueType/KSCJOHAB/main.c
+ * xc/extras/X-TrueType/MULEENCODING/ASCIILAOtoUCS2.c
+ * xc/extras/X-TrueType/MULEENCODING/Imakefile
+ * xc/extras/X-TrueType/MULEENCODING/MULELAOtoUCS2.c
+ * xc/extras/X-TrueType/MULEENCODING/MULETIBETANtoUCS2.c
+ * xc/extras/X-TrueType/MULEENCODING/main.c
+ * xc/extras/X-TrueType/TCVN/Imakefile
+ * xc/extras/X-TrueType/TCVN/TCVNtoUCS2.c
+ * xc/extras/X-TrueType/TCVN/main.c
+ * xc/extras/X-TrueType/VISCII/Imakefile
+ * xc/extras/X-TrueType/VISCII/VISCIItoUCS2.c
+ * xc/extras/X-TrueType/VISCII/main.c
+ * xc/extras/X-TrueType/xttblit.c
+ * xc/extras/X-TrueType/xttblit.h
+ * xc/extras/X-TrueType/xttcap.c
+ * xc/extras/X-TrueType/xttcap.h
+ * xc/extras/X-TrueType/xttcconv.c
+ * xc/extras/X-TrueType/xttcconv.h
+ * xc/extras/X-TrueType/xttcconvP.h
+ * xc/extras/X-TrueType/xttchinfo.c
+ * xc/extras/X-TrueType/xttcommon.h
+ * xc/extras/X-TrueType/xttdump.c
+ * xc/extras/X-TrueType/xttfuncs.c
+ * xc/extras/X-TrueType/xttmisc.c
+ * xc/extras/X-TrueType/xttprop.c
+ * xc/extras/X-TrueType/xttstruct.h
+ * xc/extras/X-TrueType/xttversion.h
+ * xc/lib/font/Imakefile
+ * xc/lib/font/X-TrueType/ARABIC/Imakefile
+ * xc/lib/font/X-TrueType/ARABIC/Imakefile.inc
+ * xc/lib/font/X-TrueType/ARABIC/module/Imakefile
+ * xc/lib/font/X-TrueType/ARMSCII8/Imakefile
+ * xc/lib/font/X-TrueType/ARMSCII8/Imakefile.inc
+ * xc/lib/font/X-TrueType/ARMSCII8/module/Imakefile
+ * xc/lib/font/X-TrueType/BIG5/Imakefile
+ * xc/lib/font/X-TrueType/BIG5/Imakefile.inc
+ * xc/lib/font/X-TrueType/BIG5/module/Imakefile
+ * xc/lib/font/X-TrueType/BIG5HKSCS/Imakefile
+ * xc/lib/font/X-TrueType/BIG5HKSCS/Imakefile.inc
+ * xc/lib/font/X-TrueType/BIG5HKSCS/module/Imakefile
+ * xc/lib/font/X-TrueType/DOSENCODING/Imakefile
+ * xc/lib/font/X-TrueType/DOSENCODING/Imakefile.inc
+ * xc/lib/font/X-TrueType/DOSENCODING/module/Imakefile
+ * xc/lib/font/X-TrueType/GB18030/Imakefile
+ * xc/lib/font/X-TrueType/GB18030/Imakefile.inc
+ * xc/lib/font/X-TrueType/GB18030/module/Imakefile
+ * xc/lib/font/X-TrueType/GB2312/Imakefile
+ * xc/lib/font/X-TrueType/GB2312/Imakefile.inc
+ * xc/lib/font/X-TrueType/GB2312/module/Imakefile
+ * xc/lib/font/X-TrueType/GBK/Imakefile
+ * xc/lib/font/X-TrueType/GBK/Imakefile.inc
+ * xc/lib/font/X-TrueType/GBK/module/Imakefile
+ * xc/lib/font/X-TrueType/GEORGIAN/Imakefile
+ * xc/lib/font/X-TrueType/GEORGIAN/Imakefile.inc
+ * xc/lib/font/X-TrueType/GEORGIAN/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.1/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.1/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.1/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.10/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.10/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.10/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.11/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.11/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.11/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.13/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.13/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.13/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.14/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.14/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.14/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.15/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.15/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.15/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.2/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.2/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.2/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.3/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.3/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.3/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.4/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.4/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.4/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.5/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.5/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.5/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.6/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.6/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.6/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.7/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.7/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.7/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.8/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.8/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.8/module/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.9/Imakefile
+ * xc/lib/font/X-TrueType/ISO8859.9/Imakefile.inc
+ * xc/lib/font/X-TrueType/ISO8859.9/module/Imakefile
+ * xc/lib/font/X-TrueType/Imakefile
+ * xc/lib/font/X-TrueType/Imakefile.inc
+ * xc/lib/font/X-TrueType/JISX0201/Imakefile
+ * xc/lib/font/X-TrueType/JISX0201/Imakefile.inc
+ * xc/lib/font/X-TrueType/JISX0201/module/Imakefile
+ * xc/lib/font/X-TrueType/JISX0208/Imakefile
+ * xc/lib/font/X-TrueType/JISX0208/Imakefile.inc
+ * xc/lib/font/X-TrueType/JISX0208/module/Imakefile
+ * xc/lib/font/X-TrueType/JISX0212/Imakefile
+ * xc/lib/font/X-TrueType/JISX0212/Imakefile.inc
+ * xc/lib/font/X-TrueType/JISX0212/module/Imakefile
+ * xc/lib/font/X-TrueType/KOI8/Imakefile
+ * xc/lib/font/X-TrueType/KOI8/Imakefile.inc
+ * xc/lib/font/X-TrueType/KOI8/module/Imakefile
+ * xc/lib/font/X-TrueType/KSC5601/Imakefile
+ * xc/lib/font/X-TrueType/KSC5601/Imakefile.inc
+ * xc/lib/font/X-TrueType/KSC5601/module/Imakefile
+ * xc/lib/font/X-TrueType/KSCJOHAB/Imakefile
+ * xc/lib/font/X-TrueType/KSCJOHAB/Imakefile.inc
+ * xc/lib/font/X-TrueType/KSCJOHAB/module/Imakefile
+ * xc/lib/font/X-TrueType/MULEENCODING/Imakefile
+ * xc/lib/font/X-TrueType/MULEENCODING/Imakefile.inc
+ * xc/lib/font/X-TrueType/MULEENCODING/module/Imakefile
+ * xc/lib/font/X-TrueType/TCVN/Imakefile
+ * xc/lib/font/X-TrueType/TCVN/Imakefile.inc
+ * xc/lib/font/X-TrueType/TCVN/module/Imakefile
+ * xc/lib/font/X-TrueType/VISCII/Imakefile
+ * xc/lib/font/X-TrueType/VISCII/Imakefile.inc
+ * xc/lib/font/X-TrueType/VISCII/module/Imakefile
+ * xc/lib/font/X-TrueType/cconvversion.h
+ * xc/lib/font/X-TrueType/ft_conf.h
+ * xc/lib/font/X-TrueType/module/Imakefile
+ * xc/lib/font/X-TrueType/module/xttmodule.c
+ * xc/lib/font/fontfile/Imakefile
+ * xc/lib/font/fontfile/ffcheck.c
+ * xc/lib/font/fontfile/register.c
+ BugZilla #595: RFE: Retire XTT font module and FreeType1 from xorg
+ tree. The functionality of XTT has been integrated into the FreeType
+ font module and the old XTT1.x code (incl. FreeType1 in xc/extras/) is
+ no longer needed anymore.
+
+2004-05-04 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/lib/font/FreeType/ftfuncs.h
+ * xc/lib/font/FreeType/ftfuncs.c
+ BugZilla #307: Restore optimization heuristics on CJK fonts in the
+ FreeType font module which were broken in X11R6.7. Patch by Chisato
+ Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp>.
+
+2004-04-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Init.c
+ BugZilla #567: Xorg Xprt starts to consume 100% CPU when being
+ idle for some time (internal screensaver goes mad after 10mins)
+
+2004-04-30 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/glxgears/Imakefile
+ * xc/programs/glxgears/glxgears.c
+ BugZilla #558: Add print support to glxgears.
+
+2004-04-28 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/extras/freetype2/ChangeLog
+ * xc/extras/freetype2/Jamfile
+ * xc/extras/freetype2/Jamfile.in
+ * xc/extras/freetype2/README
+ * xc/extras/freetype2/builds/atari/ATARI.H
+ * xc/extras/freetype2/builds/atari/FNames.SIC
+ * xc/extras/freetype2/builds/atari/FREETYPE.PRJ
+ * xc/extras/freetype2/builds/atari/README.TXT
+ * xc/extras/freetype2/builds/freetype.mk
+ * xc/extras/freetype2/builds/unix/aclocal.m4
+ * xc/extras/freetype2/builds/unix/config.guess
+ * xc/extras/freetype2/builds/unix/config.sub
+ * xc/extras/freetype2/builds/unix/configure
+ * xc/extras/freetype2/builds/unix/configure.ac
+ * xc/extras/freetype2/builds/unix/detect.mk
+ * xc/extras/freetype2/builds/unix/freetype-config.in
+ * xc/extras/freetype2/builds/unix/ft-munmap.m4
+ * xc/extras/freetype2/builds/unix/ftconfig.in
+ * xc/extras/freetype2/builds/unix/ftsystem.c
+ * xc/extras/freetype2/builds/unix/install-sh
+ * xc/extras/freetype2/builds/unix/ltmain.sh
+ * xc/extras/freetype2/builds/unix/mkinstalldirs
+ * xc/extras/freetype2/builds/unix/unix-def.in
+ * xc/extras/freetype2/builds/unix/unix.mk
+ * xc/extras/freetype2/builds/vms/ftconfig.h
+ * xc/extras/freetype2/builds/win32/visualc/freetype.dsp
+ * xc/extras/freetype2/builds/win32/visualc/freetype.sln
+ * xc/extras/freetype2/builds/win32/visualc/freetype.vcproj
+ * xc/extras/freetype2/builds/win32/visualc/index.html
+ * xc/extras/freetype2/configure
+ * xc/extras/freetype2/devel/ftoption.h
+ * xc/extras/freetype2/docs/CHANGES
+ * xc/extras/freetype2/docs/INSTALL
+ * xc/extras/freetype2/docs/INSTALL.GNU
+ * xc/extras/freetype2/docs/INSTALL.UNX
+ * xc/extras/freetype2/docs/VERSION.DLL
+ * xc/extras/freetype2/docs/raster.txt
+ * xc/extras/freetype2/docs/release
+ * xc/extras/freetype2/include/freetype/cache/ftccache.h
+ * xc/extras/freetype2/include/freetype/cache/ftcglyph.h
+ * xc/extras/freetype2/include/freetype/cache/ftcimage.h
+ * xc/extras/freetype2/include/freetype/cache/ftcmanag.h
+ * xc/extras/freetype2/include/freetype/cache/ftcmru.h
+ * xc/extras/freetype2/include/freetype/cache/ftcsbits.h
+ * xc/extras/freetype2/include/freetype/cache/ftlru.h
+ * xc/extras/freetype2/include/freetype/config/ftconfig.h
+ * xc/extras/freetype2/include/freetype/config/ftheader.h
+ * xc/extras/freetype2/include/freetype/config/ftoption.h
+ * xc/extras/freetype2/include/freetype/config/ftstdlib.h
+ * xc/extras/freetype2/include/freetype/freetype.h
+ * xc/extras/freetype2/include/freetype/ftcache.h
+ * xc/extras/freetype2/include/freetype/fterrdef.h
+ * xc/extras/freetype2/include/freetype/ftglyph.h
+ * xc/extras/freetype2/include/freetype/ftimage.h
+ * xc/extras/freetype2/include/freetype/ftlzw.h
+ * xc/extras/freetype2/include/freetype/ftmac.h
+ * xc/extras/freetype2/include/freetype/ftmoderr.h
+ * xc/extras/freetype2/include/freetype/ftstroke.h
+ * xc/extras/freetype2/include/freetype/ftwinfnt.h
+ * xc/extras/freetype2/include/freetype/ftxf86.h
+ * xc/extras/freetype2/include/freetype/internal/ftcalc.h
+ * xc/extras/freetype2/include/freetype/internal/ftdebug.h
+ * xc/extras/freetype2/include/freetype/internal/ftdriver.h
+ * xc/extras/freetype2/include/freetype/internal/ftgloadr.h
+ * xc/extras/freetype2/include/freetype/internal/ftmemory.h
+ * xc/extras/freetype2/include/freetype/internal/ftobjs.h
+ * xc/extras/freetype2/include/freetype/internal/ftrfork.h
+ * xc/extras/freetype2/include/freetype/internal/ftserv.h
+ * xc/extras/freetype2/include/freetype/internal/ftstream.h
+ * xc/extras/freetype2/include/freetype/internal/fttrace.h
+ * xc/extras/freetype2/include/freetype/internal/internal.h
+ * xc/extras/freetype2/include/freetype/internal/psaux.h
+ * xc/extras/freetype2/include/freetype/internal/services/svttcmap.h
+ * xc/extras/freetype2/include/freetype/internal/sfnt.h
+ * xc/extras/freetype2/include/freetype/internal/t1types.h
+ * xc/extras/freetype2/include/freetype/internal/tttypes.h
+ * xc/extras/freetype2/include/freetype/t1tables.h
+ * xc/extras/freetype2/include/freetype/ttnameid.h
+ * xc/extras/freetype2/include/freetype/tttables.h
+ * xc/extras/freetype2/src/autofit/Jamfile
+ * xc/extras/freetype2/src/autofit/afangles.c
+ * xc/extras/freetype2/src/autofit/afdummy.c
+ * xc/extras/freetype2/src/autofit/afdummy.h
+ * xc/extras/freetype2/src/autofit/afglobal.c
+ * xc/extras/freetype2/src/autofit/afglobal.h
+ * xc/extras/freetype2/src/autofit/afhints.c
+ * xc/extras/freetype2/src/autofit/afhints.h
+ * xc/extras/freetype2/src/autofit/aflatin.c
+ * xc/extras/freetype2/src/autofit/aflatin.h
+ * xc/extras/freetype2/src/autofit/afloader.c
+ * xc/extras/freetype2/src/autofit/afloader.h
+ * xc/extras/freetype2/src/autofit/afmodule.c
+ * xc/extras/freetype2/src/autofit/afmodule.h
+ * xc/extras/freetype2/src/autofit/aftypes.h
+ * xc/extras/freetype2/src/autofit/autofit.c
+ * xc/extras/freetype2/src/autohint/ahglobal.c
+ * xc/extras/freetype2/src/autohint/ahglyph.c
+ * xc/extras/freetype2/src/autohint/ahhint.c
+ * xc/extras/freetype2/src/autohint/ahtypes.h
+ * xc/extras/freetype2/src/base/Jamfile
+ * xc/extras/freetype2/src/base/descrip.mms
+ * xc/extras/freetype2/src/base/ftbase.c
+ * xc/extras/freetype2/src/base/ftcalc.c
+ * xc/extras/freetype2/src/base/ftdbgmem.c
+ * xc/extras/freetype2/src/base/ftdebug.c
+ * xc/extras/freetype2/src/base/ftgloadr.c
+ * xc/extras/freetype2/src/base/ftglyph.c
+ * xc/extras/freetype2/src/base/ftmac.c
+ * xc/extras/freetype2/src/base/ftobjs.c
+ * xc/extras/freetype2/src/base/ftoutln.c
+ * xc/extras/freetype2/src/base/ftrfork.c
+ * xc/extras/freetype2/src/base/ftstream.c
+ * xc/extras/freetype2/src/base/ftstroke.c
+ * xc/extras/freetype2/src/base/ftsynth.c
+ * xc/extras/freetype2/src/base/fttrigon.c
+ * xc/extras/freetype2/src/base/rules.mk
+ * xc/extras/freetype2/src/bdf/bdfdrivr.c
+ * xc/extras/freetype2/src/bdf/bdfdrivr.h
+ * xc/extras/freetype2/src/bdf/bdflib.c
+ * xc/extras/freetype2/src/cache/Jamfile
+ * xc/extras/freetype2/src/cache/descrip.mms
+ * xc/extras/freetype2/src/cache/ftcache.c
+ * xc/extras/freetype2/src/cache/ftcbasic.c
+ * xc/extras/freetype2/src/cache/ftccache.c
+ * xc/extras/freetype2/src/cache/ftccache.i
+ * xc/extras/freetype2/src/cache/ftccback.h
+ * xc/extras/freetype2/src/cache/ftccmap.c
+ * xc/extras/freetype2/src/cache/ftcglyph.c
+ * xc/extras/freetype2/src/cache/ftcimage.c
+ * xc/extras/freetype2/src/cache/ftcmanag.c
+ * xc/extras/freetype2/src/cache/ftcmru.c
+ * xc/extras/freetype2/src/cache/ftcsbits.c
+ * xc/extras/freetype2/src/cache/ftlru.c
+ * xc/extras/freetype2/src/cache/rules.mk
+ * xc/extras/freetype2/src/cff/Jamfile
+ * xc/extras/freetype2/src/cff/cff.c
+ * xc/extras/freetype2/src/cff/cffcmap.c
+ * xc/extras/freetype2/src/cff/cffdrivr.c
+ * xc/extras/freetype2/src/cff/cffgload.c
+ * xc/extras/freetype2/src/cff/cffload.c
+ * xc/extras/freetype2/src/cff/cffload.h
+ * xc/extras/freetype2/src/cff/cffobjs.c
+ * xc/extras/freetype2/src/cff/cffobjs.h
+ * xc/extras/freetype2/src/cff/cffparse.c
+ * xc/extras/freetype2/src/cff/cffparse.h
+ * xc/extras/freetype2/src/cff/cfftoken.h
+ * xc/extras/freetype2/src/cff/cfftypes.h
+ * xc/extras/freetype2/src/cff/rules.mk
+ * xc/extras/freetype2/src/cid/cidgload.c
+ * xc/extras/freetype2/src/cid/cidload.c
+ * xc/extras/freetype2/src/cid/cidload.h
+ * xc/extras/freetype2/src/cid/cidobjs.c
+ * xc/extras/freetype2/src/cid/cidparse.c
+ * xc/extras/freetype2/src/cid/cidparse.h
+ * xc/extras/freetype2/src/gzip/ftgzip.c
+ * xc/extras/freetype2/src/gzip/zutil.h
+ * xc/extras/freetype2/src/lzw/Jamfile
+ * xc/extras/freetype2/src/lzw/ftlzw.c
+ * xc/extras/freetype2/src/lzw/rules.mk
+ * xc/extras/freetype2/src/lzw/zopen.c
+ * xc/extras/freetype2/src/lzw/zopen.h
+ * xc/extras/freetype2/src/pcf/pcfdrivr.c
+ * xc/extras/freetype2/src/pcf/pcfread.c
+ * xc/extras/freetype2/src/pcf/pcfutil.c
+ * xc/extras/freetype2/src/pcf/pcfutil.h
+ * xc/extras/freetype2/src/pfr/pfrdrivr.c
+ * xc/extras/freetype2/src/pfr/pfrgload.c
+ * xc/extras/freetype2/src/pfr/pfrload.c
+ * xc/extras/freetype2/src/pfr/pfrobjs.c
+ * xc/extras/freetype2/src/pfr/pfrsbit.c
+ * xc/extras/freetype2/src/psaux/psobjs.c
+ * xc/extras/freetype2/src/psaux/t1decode.c
+ * xc/extras/freetype2/src/pshinter/Jamfile
+ * xc/extras/freetype2/src/pshinter/pshalgo.c
+ * xc/extras/freetype2/src/pshinter/pshglob.c
+ * xc/extras/freetype2/src/pshinter/pshrec.c
+ * xc/extras/freetype2/src/pshinter/pshrec.h
+ * xc/extras/freetype2/src/raster/ftrend1.c
+ * xc/extras/freetype2/src/sfnt/Jamfile
+ * xc/extras/freetype2/src/sfnt/rules.mk
+ * xc/extras/freetype2/src/sfnt/sfdriver.c
+ * xc/extras/freetype2/src/sfnt/sfnt.c
+ * xc/extras/freetype2/src/sfnt/sfobjs.c
+ * xc/extras/freetype2/src/sfnt/ttcmap.c
+ * xc/extras/freetype2/src/sfnt/ttcmap.h
+ * xc/extras/freetype2/src/sfnt/ttcmap0.c
+ * xc/extras/freetype2/src/sfnt/ttcmap0.h
+ * xc/extras/freetype2/src/sfnt/ttload.c
+ * xc/extras/freetype2/src/sfnt/ttsbit.c
+ * xc/extras/freetype2/src/sfnt/ttsbit.h
+ * xc/extras/freetype2/src/smooth/ftsmooth.c
+ * xc/extras/freetype2/src/tools/docmaker/content.py
+ * xc/extras/freetype2/src/tools/docmaker/docbeauty.py
+ * xc/extras/freetype2/src/tools/docmaker/docmaker.py
+ * xc/extras/freetype2/src/tools/docmaker/formatter.py
+ * xc/extras/freetype2/src/tools/docmaker/sources.py
+ * xc/extras/freetype2/src/tools/docmaker/utils.py
+ * xc/extras/freetype2/src/truetype/ttdriver.c
+ * xc/extras/freetype2/src/truetype/ttgload.c
+ * xc/extras/freetype2/src/truetype/ttgload.h
+ * xc/extras/freetype2/src/truetype/ttinterp.c
+ * xc/extras/freetype2/src/truetype/ttinterp.h
+ * xc/extras/freetype2/src/truetype/ttobjs.c
+ * xc/extras/freetype2/src/truetype/ttobjs.h
+ * xc/extras/freetype2/src/type1/t1driver.c
+ * xc/extras/freetype2/src/type1/t1gload.c
+ * xc/extras/freetype2/src/type1/t1load.c
+ * xc/extras/freetype2/src/type1/t1objs.c
+ * xc/extras/freetype2/src/type1/t1parse.c
+ * xc/extras/freetype2/src/type1/t1tokens.h
+ * xc/extras/freetype2/src/type42/t42drivr.c
+ * xc/extras/freetype2/src/type42/t42objs.c
+ * xc/extras/freetype2/src/type42/t42parse.c
+ * xc/extras/freetype2/src/type42/t42types.h
+ * xc/extras/freetype2/src/winfonts/winfnt.c
+ * xc/extras/freetype2/src/winfonts/winfnt.h
+ * xc/extras/freetype2/tests/gview.c
+ * xc/extras/freetype2/vms_make.com
+ * xc/lib/font/FreeType/ftconfig.h
+ * xc/lib/font/FreeType/module/ftheader.h
+ * xc/lib/font/FreeType/module/ftoption.h
+ * xc/lib/freetype2/Imakefile
+ * xc/lib/freetype2/freetype/Imakefile
+ * xc/lib/freetype2/freetype/cache/Imakefile
+ * xc/lib/freetype2/freetype/internal/Imakefile
+ * xc/lib/freetype2/freetype/internal/services/Imakefile
+ Bugzilla #556: Update FreeType2 version in xc/extras/Freetype2
+ to V2.1.8 (previous version in tree was V2.1.7)
+
+2004-04-26 Alan Hourihane <alanh@fairlite.demon.co.uk>
+ * xc/extras/Mesa/src/X/xm_dd.c
+ Backport a fix from Mesa 6.0 to 5.0.2 that creates the xmesa
+ buffers correctly.
+
+2004-04-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/Xprint/Imakefile
+ * xc/programs/Xserver/Xprint/ps/Imakefile
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ * xc/programs/Xserver/mi/miinitext.c
+ Work-in-progress for BugZilla #542 (GLX support for PS DDX).
+ Fix visual setup (attachment #243).
+ Patch by Alan Hourihane <alanh@fairlite.demon.co.uk>
+
+2004-04-25 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/config/cf/sun.cf
+ * xc/config/cf/sv4Lib.rules
+ * xc/programs/Xserver/Imakefile
+ * xc/programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl
+ Make Solaris builds work when using MakeDllModules (it's not the
+ default yet, but at least it works now if you turn it on)
+ Also improve default compiler, optimizer, & linker flags for Solaris
+ builds using either Sun cc or gcc
+
+ * xc/programs/Xserver/cfb/Imakefile.inc
+ * xc/programs/Xserver/cfb/stipsparc.s
+ * xc/programs/Xserver/cfb/stipsprc32.s
+ Remove text relocation error when building shared versions
+
+2004-04-25 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/programs/Xserver/hw/xfree86/input/tek4957/xf86Tek4957.c
+ Fix build error in sparc-specific code when using non-C99 compiler
+ like gcc 2.95 that doesn't allow variable declarations in the middle
+ of a code block.
+
+ * xc/programs/xfs/difs/Imakefile
+ Make sure VendorReleaseDefines is defined, even if XOrgVersion isn't
+
+2004-04-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ Bugzilla #547: RFE: Disable FONTCACHE extension in the Xorg
+ default build
+
+2004-04-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/config/cf/xfree86.cf
+ * xc/config/cf/xorg.cf
+ * xc/config/cf/xorgsite.def
+ Bugzilla #549: RFE: Xorg default build should run with
+ |BuildType1| set to |NO|. The xc/lib/font/FreeType/ font
+ rasterizer will now handle PBA/PFB fonts by default.
+
+2004-04-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/dix/resource.c
+ Bugzilla #541: Xorg Xprt may crash with "Freeing resource
+ id=40200000 which isn't there"
+
+2004-04-25 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/config/cf/X11.tmpl
+ * xc/config/cf/site.def
+ * xc/config/cf/xfree86.cf
+ * xc/config/cf/xorg.cf
+ Bugzilla #548: RFE: Remove Speedo font support from the Xorg
+ default build
+
+2004-04-24 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/lib/X11/ConnDis.c
+ Bugzilla #546: XOpenDisplay should try tcp connection if local
+ connections fail (aka Sun bug id #4624183).
+ Also includes fix from NetBSD Problem Report #25098 - Xlib segfaults
+ with IPv6 if compiled with HASXDMAUTH. (Michael van Elst)
+
+ * xc/programs/xauth/process.c
+ Bugzilla #550: xauth doesn't unlock .Xauthority on SIGPIPE
+
+ * xc/programs/xdm/greeter/verify.c
+ Fix typo in Solaris console restriction code: Xfree() -> XFree()
+
+ * xc/programs/xdm/greeter/Imakefile
+ Link with PamLibraries if building with PAM support
+
+ * xc/config/cf/sunLib.tmpl
+ * xc/lib/FS/Imakefile
+ Add missing shared library dependencies for Solaris
+
+2004-04-23 Egbert Eich <eich-at-freedesktop-org>
+ Merging XORG-CURRENT into trunk
+
+2004-04-22 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/programs/Xserver/mi/miinitext.c
+ Bugzilla #535: Xprt should not annouce extensions which are not
+ supported. Extensions like "XVideo" or "XFreeXDGA" would be hard
+ to implement, MIT-SHM does not work by design etc. etc.
+
+2004-04-15 Alexander Gottwald <ago@freedesktop.org>
+ * xc/programs/xkbcomp/keycodes/xfree86
+ Bugzilla #533: fix slash/questionmark key for abnt2 keyboard
+
+2004-04-21 Roland Mainz <roland.mainz@nrubsig.org>
+ * xc/xf86Date.h
+ * xc/config/cf/FreeBSD.cf
+ * xc/config/cf/Imake.tmpl
+ * xc/config/cf/NetBSD.cf
+ * xc/config/cf/OpenBSDLib.tmpl
+ * xc/config/cf/README
+ * xc/config/cf/WinLib.tmpl
+ * xc/config/cf/X11.tmpl
+ * xc/config/cf/bsdLib.tmpl
+ * xc/config/cf/bsdiLib.tmpl
+ * xc/config/cf/cygwin.tmpl
+ * xc/config/cf/darwinLib.tmpl
+ * xc/config/cf/gnuLib.tmpl
+ * xc/config/cf/hpLib.tmpl
+ * xc/config/cf/ibmLib.tmpl
+ * xc/config/cf/linux.cf
+ * xc/config/cf/lnxLib.tmpl
+ * xc/config/cf/os2Lib.tmpl
+ * xc/config/cf/osfLib.tmpl
+ * xc/config/cf/sco5.cf
+ * xc/config/cf/sun.cf
+ * xc/config/cf/sunLib.tmpl
+ * xc/config/cf/sv4Lib.tmpl
+ * xc/config/cf/xprint_site.def
+ * xc/config/docbook/docbookconv.sh
+ * xc/doc/hardcopy/Imakefile
+ * xc/doc/hardcopy/XPRINT/Imakefile
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.html
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt
+ * xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+ * xc/doc/hardcopy/XPRINT/Xprint_old_FAQ.txt
+ * xc/doc/hardcopy/XPRINT/docbook.css
+ * xc/doc/hardcopy/XPRINT/dtprint_fspec.PS.gz
+ * xc/extras/freetype2/include/freetype/config/ftoption.h
+ * xc/extras/ttf2pt1/CHANGES.html
+ * xc/extras/ttf2pt1/COPYRIGHT
+ * xc/extras/ttf2pt1/FONTS.hpux.html
+ * xc/extras/ttf2pt1/FONTS.html
+ * xc/extras/ttf2pt1/Makefile
+ * xc/extras/ttf2pt1/README.FIRST
+ * xc/extras/ttf2pt1/README.html
+ * xc/extras/ttf2pt1/bdf.c
+ * xc/extras/ttf2pt1/bitmap.c
+ * xc/extras/ttf2pt1/byteorder.h
+ * xc/extras/ttf2pt1/cygbuild.sh
+ * xc/extras/ttf2pt1/ft.c
+ * xc/extras/ttf2pt1/global.h
+ * xc/extras/ttf2pt1/pt1.c
+ * xc/extras/ttf2pt1/pt1.h
+ * xc/extras/ttf2pt1/runt1asm.c
+ * xc/extras/ttf2pt1/t1asm.c
+ * xc/extras/ttf2pt1/ttf.c
+ * xc/extras/ttf2pt1/ttf.h
+ * xc/extras/ttf2pt1/ttf2pt1.1
+ * xc/extras/ttf2pt1/ttf2pt1.c
+ * xc/extras/ttf2pt1/ttf2pt1_convert.1
+ * xc/extras/ttf2pt1/ttf2pt1_x2gs.1
+ * xc/extras/ttf2pt1/version.h
+ * xc/extras/ttf2pt1/winbuild.bat
+ * xc/extras/ttf2pt1/windows.h
+ * xc/lib/Imakefile
+ * xc/lib/Xaw/AllWidgets.c
+ * xc/lib/Xaw/Imakefile
+ * xc/lib/Xaw/Print.h
+ * xc/lib/Xaw/PrintSP.h
+ * xc/lib/Xaw/PrintShell.c
+ * xc/lib/Xaw/XawI18n.h
+ * xc/lib/Xaw/XawInit.c
+ * xc/lib/Xaw/XawInit.h
+ * xc/lib/Xaw/sharedlib.c
+ * xc/lib/XprintAppUtil/Imakefile
+ * xc/lib/XprintAppUtil/xpapputil.c
+ * xc/lib/XprintAppUtil/xpapputil.h
+ * xc/lib/XprintUtil/Imakefile
+ * xc/lib/XprintUtil/xprintutil.c
+ * xc/lib/XprintUtil/xprintutil.h
+ * xc/lib/XprintUtil/xprintutil_printtofile.c
+ * xc/lib/dpstk/Imakefile
+ * xc/lib/font/FreeType/ftfuncs.c
+ * xc/lib/font/bitmap/pcfread.c
+ * xc/lib/font/util/Imakefile
+ * xc/lib/font/util/utilbitmap.c
+ * xc/programs/Imakefile
+ * xc/programs/Xserver/Imakefile
+ * xc/programs/Xserver/XpConfig/Imakefile
+ * xc/programs/Xserver/XpConfig/C/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/Xprinters
+ * xc/programs/Xserver/XpConfig/C/print/attributes/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/attributes/document
+ * xc/programs/Xserver/XpConfig/C/print/attributes/printer
+ * xc/programs/Xserver/XpConfig/C/print/ddx-config/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/ddx-config/raster/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/CANONBJ10E-GS/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/CANONBJ10E-GS/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/GSdefault/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/GSdefault/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/HPDJ1600C/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/HPDJ1600C/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/HPDJ1600C/fonts/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/HPDJ1600C/fonts/fonts.alias
+ * xc/programs/Xserver/XpConfig/C/print/models/HPLJ4050-PS/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/HPLJ4050-PS/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/HPLJ4050-PS/fonts/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/HPLJ4family/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/HPLJ4family/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/HPLJ4family/fonts/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/HPLJ4family/fonts/fonts.alias
+ * xc/programs/Xserver/XpConfig/C/print/models/PS2PDFspooldir-GS/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/PS2PDFspooldir-GS/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/PS2PDFspooldir-GS/ps2pdf_spooltodir.sh
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/AvantGarde-Book.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/AvantGarde-BookOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/AvantGarde-Demi.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/AvantGarde-DemiOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Courier-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Courier-BoldOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Courier-Oblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Courier.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Helvetica-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Helvetica-BoldOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Helvetica-Oblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Helvetica.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/LubalinGraph-Book.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/LubalinGraph-BookOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/LubalinGraph-Demi.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/LubalinGraph-DemiOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/NewCenturySchlbk-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/NewCenturySchlbk-BoldItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/NewCenturySchlbk-Italic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/NewCenturySchlbk-Roman.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Souvenir-Demi.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Souvenir-DemiItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Souvenir-Light.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Souvenir-LightItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Symbol.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Times-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Times-BoldItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Times-Italic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/Times-Roman.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSdefault/fonts/ZapfDingbats.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/PSspooldir/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/PSspooldir/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/PSspooldir/spooltodir.sh
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/model-config
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-Book.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-BookOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-Demi.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/AvantGarde-DemiOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Courier-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Courier-BoldOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Courier-Oblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Courier.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Helvetica-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Helvetica-BoldOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Helvetica-Oblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Helvetica.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Imakefile
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/LubalinGraph-Book.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/LubalinGraph-BookOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/LubalinGraph-Demi.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/LubalinGraph-DemiOblique.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/NewCenturySchlbk-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/NewCenturySchlbk-BoldItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/NewCenturySchlbk-Italic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/NewCenturySchlbk-Roman.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Souvenir-Demi.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Souvenir-DemiItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Souvenir-Light.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Souvenir-LightItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Symbol.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Times-Bold.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Times-BoldItalic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Times-Italic.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/Times-Roman.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/ZapfDingbats.pmf
+ * xc/programs/Xserver/XpConfig/C/print/models/SPSPARC2/fonts/fonts.dir
+ * xc/programs/Xserver/XpConfig/en_US/Imakefile
+ * xc/programs/Xserver/XpConfig/en_US/print/Imakefile
+ * xc/programs/Xserver/XpConfig/en_US/print/attributes/Imakefile
+ * xc/programs/Xserver/XpConfig/en_US/print/attributes/document
+ * xc/programs/Xserver/Xprint/AttrValid.c
+ * xc/programs/Xserver/Xprint/AttrValid.h
+ * xc/programs/Xserver/Xprint/DiPrint.h
+ * xc/programs/Xserver/Xprint/Imakefile
+ * xc/programs/Xserver/Xprint/Init.c
+ * xc/programs/Xserver/Xprint/Oid.c
+ * xc/programs/Xserver/Xprint/Oid.h
+ * xc/programs/Xserver/Xprint/OidDefs.h
+ * xc/programs/Xserver/Xprint/OidStrs.h
+ * xc/programs/Xserver/Xprint/Xprint.html
+ * xc/programs/Xserver/Xprint/Xprint.man
+ * xc/programs/Xserver/Xprint/Xprint.sgml
+ * xc/programs/Xserver/Xprint/attributes.c
+ * xc/programs/Xserver/Xprint/attributes.h
+ * xc/programs/Xserver/Xprint/ddxInit.c
+ * xc/programs/Xserver/Xprint/mediaSizes.c
+ * xc/programs/Xserver/Xprint/spooler.c
+ * xc/programs/Xserver/Xprint/spooler.h
+ * xc/programs/Xserver/Xprint/etc/Imakefile
+ * xc/programs/Xserver/Xprint/etc/Xsession.d/Imakefile
+ * xc/programs/Xserver/Xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
+ * xc/programs/Xserver/Xprint/etc/init.d/Imakefile
+ * xc/programs/Xserver/Xprint/etc/init.d/xprint
+ * xc/programs/Xserver/Xprint/etc/profile.d/Imakefile
+ * xc/programs/Xserver/Xprint/etc/profile.d/xprint.csh
+ * xc/programs/Xserver/Xprint/etc/profile.d/xprint.sh
+ * xc/programs/Xserver/Xprint/pdf/README
+ * xc/programs/Xserver/Xprint/ps/Imakefile
+ * xc/programs/Xserver/Xprint/ps/Ps.h
+ * xc/programs/Xserver/Xprint/ps/PsArea.c
+ * xc/programs/Xserver/Xprint/ps/PsAttVal.c
+ * xc/programs/Xserver/Xprint/ps/PsAttr.c
+ * xc/programs/Xserver/Xprint/ps/PsCache.c
+ * xc/programs/Xserver/Xprint/ps/PsColor.c
+ * xc/programs/Xserver/Xprint/ps/PsFTFonts.c
+ * xc/programs/Xserver/Xprint/ps/PsFonts.c
+ * xc/programs/Xserver/Xprint/ps/PsGC.c
+ * xc/programs/Xserver/Xprint/ps/PsInit.c
+ * xc/programs/Xserver/Xprint/ps/PsLine.c
+ * xc/programs/Xserver/Xprint/ps/PsMisc.c
+ * xc/programs/Xserver/Xprint/ps/PsPixel.c
+ * xc/programs/Xserver/Xprint/ps/PsPixmap.c
+ * xc/programs/Xserver/Xprint/ps/PsPolygon.c
+ * xc/programs/Xserver/Xprint/ps/PsPrint.c
+ * xc/programs/Xserver/Xprint/ps/PsText.c
+ * xc/programs/Xserver/Xprint/ps/PsWindow.c
+ * xc/programs/Xserver/Xprint/ps/psout.c
+ * xc/programs/Xserver/Xprint/ps/psout.h
+ * xc/programs/Xserver/Xprint/ps/psout_ft.c
+ * xc/programs/Xserver/Xprint/ps/psout_ftpstype1.c
+ * xc/programs/Xserver/Xprint/ps/psout_ftpstype3.c
+ * xc/programs/Xserver/Xprint/raster/Imakefile
+ * xc/programs/Xserver/Xprint/raster/Raster.h
+ * xc/programs/Xserver/Xprint/svg/README
+ * xc/programs/Xserver/Xprint/windows/README
+ * xc/programs/Xserver/dix/dispatch.c
+ * xc/programs/Xserver/dix/main.c
+ * xc/programs/Xserver/hw/darwin/darwin.c
+ * xc/programs/Xserver/hw/sun/sunIo.c
+ * xc/programs/Xserver/hw/sunLynx/sunLyIo.c
+ * xc/programs/Xserver/hw/vfb/InitOutput.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86Init.c
+ * xc/programs/Xserver/hw/xnest/Args.c
+ * xc/programs/Xserver/hw/xwin/InitOutput.c
+ * xc/programs/Xserver/include/os.h
+ * xc/programs/Xserver/os/utils.c
+ * xc/programs/xlogo/Imakefile
+ * xc/programs/xphelloworld/Imakefile
+ * xc/programs/xphelloworld/xpawhelloworld/Imakefile
+ * xc/programs/xphelloworld/xpawhelloworld/xpawhelloworld.c
+ * xc/programs/xphelloworld/xpawhelloworld/xpawhelloworld.man
+ * xc/programs/xphelloworld/xphelloworld/Imakefile
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.c
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.html
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.man
+ * xc/programs/xphelloworld/xphelloworld/xphelloworld.sgml
+ * xc/programs/xphelloworld/xpsimplehelloworld/Imakefile
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.c
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.html
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.man
+ * xc/programs/xphelloworld/xpsimplehelloworld/xpsimplehelloworld.sgml
+ * xc/programs/xphelloworld/xpxmhelloworld/Imakefile
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.c
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.html
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.man
+ * xc/programs/xphelloworld/xpxmhelloworld/xpxmhelloworld.sgml
+ * xc/programs/xphelloworld/xpxthelloworld/Imakefile
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.c
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.html
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.man
+ * xc/programs/xphelloworld/xpxthelloworld/xpxthelloworld.sgml
+ * xc/programs/xplsprinters/Imakefile
+ * xc/programs/xplsprinters/xplsprinters.c
+ * xc/programs/xplsprinters/xplsprinters.html
+ * xc/programs/xplsprinters/xplsprinters.man
+ * xc/programs/xplsprinters/xplsprinters.sgml
+ Bugzilla #530: Land XPRINT branch on XORG-CURRENT
+
+2004-04-17 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/config/cf/sun.cf
+ * xc/config/cf/Imake.tmpl
+ * xc/programs/Xserver/os/Imakefile
+ * xc/programs/Xserver/os/access.c
+ Bugzilla #495: LocalClientCred should use getpeerucred on Solaris 10
+
+ * xc/lib/GL/glx/Imakefile
+ * xc/lib/GL/mesa/src/Imakefile
+ LargePICTable required for Solaris SPARC builds
+
+ * xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_accel.c
+ * xc/programs/Xserver/hw/xfree86/common/xf86Events.c
+ Add != NULL to if statements to get past syntax error reported
+ by Sun Forte 6.1 cc.
+
+ * xc/config/imake/imake.c
+ * xc/config/cf/sun.cf
+ * xc/config/cf/sunLib.tmpl
+ Allow compiling with Sun compilers installed somewhere other than
+ /opt/SUNWspro
+
+ * xc/programs/Xserver/hw/xfree86/common/compiler.h
+ * xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h
+ Check for defined(sparc) as well as defined(__sparc__) since Sun
+ compilers don't define __sparc__
+
+2004-04-15 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_mouse.c
+ Solaris mouse enhancements, including autoprobe support,
+ VUID wheel mouse events, and streams module pushing.
+ Bugzilla #434. (Russ Blaine & Alan Coopersmith, Sun Microsystems)
+
+ * xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_init.c
+ Xorg doesn't reset console to text mode on Solaris x86 8 and later
+ Bugzilla #469.
+
+2004-04-15 Egbert Eich <eich-at-freedesktop-org>
+ Merged changes from RELEASE-1 branch:
+
+ 2004-04-10 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
+ Fix mis-spelling of Roland Mainz's name.
+
+ 2004-04-07 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/doc/BUILD:
+ * programs/Xserver/hw/xfree86/doc/README:
+ * programs/Xserver/hw/xfree86/doc/Versions:
+ Updating formatted docs.
+
+ 2004-04-07 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent:
+ Changing release tags to upper case again - like the
+ original version was.
+
+ 2004-04-06 Keith Packard <keithp@keithp.com>
+
+ * BUILD:
+ * README:
+ * RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/BUILD
+ * programs/Xserver/hw/xfree86/doc/DESIGN
+ * programs/Xserver/hw/xfree86/doc/Install
+ * programs/Xserver/hw/xfree86/doc/LICENSE
+ * programs/Xserver/hw/xfree86/doc/OS2.Notes
+ * programs/Xserver/hw/xfree86/doc/README
+ * programs/Xserver/hw/xfree86/doc/README.DECtga
+ * programs/Xserver/hw/xfree86/doc/README.Darwin
+ * programs/Xserver/hw/xfree86/doc/README.I128
+ * programs/Xserver/hw/xfree86/doc/README.LynxOS
+ * programs/Xserver/hw/xfree86/doc/README.NetBSD
+ * programs/Xserver/hw/xfree86/doc/README.OpenBSD
+ * programs/Xserver/hw/xfree86/doc/README.SCO
+ * programs/Xserver/hw/xfree86/doc/README.SiS
+ * programs/Xserver/hw/xfree86/doc/README.Solaris
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Config
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Enhancing
+ * programs/Xserver/hw/xfree86/doc/README.apm
+ * programs/Xserver/hw/xfree86/doc/README.ati
+ * programs/Xserver/hw/xfree86/doc/README.chips
+ * programs/Xserver/hw/xfree86/doc/README.cyrix
+ * programs/Xserver/hw/xfree86/doc/README.dps
+ * programs/Xserver/hw/xfree86/doc/README.fonts
+ * programs/Xserver/hw/xfree86/doc/README.i740
+ * programs/Xserver/hw/xfree86/doc/README.i810
+ * programs/Xserver/hw/xfree86/doc/README.mouse
+ * programs/Xserver/hw/xfree86/doc/README.newport
+ * programs/Xserver/hw/xfree86/doc/README.r128
+ * programs/Xserver/hw/xfree86/doc/README.rendition
+ * programs/Xserver/hw/xfree86/doc/README.s3virge
+ * programs/Xserver/hw/xfree86/doc/RELNOTES
+ * programs/Xserver/hw/xfree86/doc/Versions
+ Update formatted docs
+
+ 2004-04-06 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/README.sgml:
+ Oops. Filenames are X11R6.7.0.tar.gz
+ Update date
+
+ 2004-04-06 Keith Packard <keithp@keithp.com>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Oops. File names for .tgz were missing the 'R'.
+ WORLDOPTS is "" by default now. Switch sense
+ of the documentation to match.
+
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent
+ Hah! CVS fight. I prefer lower case tags,
+ so I've changed the documentation to use the
+ original name (xo_6_7_0) and tagged the tree.
+ Note that the branch still isn't created; we'll want
+ to do that soon somehow.
+
+ 2004-04-06 Egbert Eich <eich-at-freedesktop-org>
+
+ * RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/BUILD:
+ * programs/Xserver/hw/xfree86/doc/README:
+ * programs/Xserver/hw/xfree86/doc/Versions:
+ * programs/xkbcomp/README.config:
+ * programs/xkbcomp/README.enhancing:
+ Updating formatted docs.
+
+ 2004-04-07 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/doc/sgml/defs.ent:
+ Fixing release/branch tag names.
+
+ 2004-04-06 Egbert Eich <eich-at-freedesktop-org>
+
+ * programs/Xserver/hw/xfree86/common/xf86Init.c:
+ (ddxProcessArgument):
+ made server also accept -xf86config
+
+ 2004-04-06 Keith Packard <keithp@keithp.com>
+
+ * BUILD:
+ * README:
+ * RELNOTES:
+ * config/cf/lnxdoc.rules:
+ * config/cf/lnxdoc.tmpl:
+ * programs/Xserver/hw/xfree86/doc/BUILD:
+ * programs/Xserver/hw/xfree86/doc/DESIGN:
+ * programs/Xserver/hw/xfree86/doc/Install:
+ * programs/Xserver/hw/xfree86/doc/LICENSE:
+ * programs/Xserver/hw/xfree86/doc/OS2.Notes:
+ * programs/Xserver/hw/xfree86/doc/README:
+ * programs/Xserver/hw/xfree86/doc/README.DECtga:
+ * programs/Xserver/hw/xfree86/doc/README.Darwin:
+ * programs/Xserver/hw/xfree86/doc/README.I128:
+ * programs/Xserver/hw/xfree86/doc/README.LynxOS:
+ * programs/Xserver/hw/xfree86/doc/README.NetBSD:
+ * programs/Xserver/hw/xfree86/doc/README.OpenBSD:
+ * programs/Xserver/hw/xfree86/doc/README.SCO:
+ * programs/Xserver/hw/xfree86/doc/README.SiS:
+ * programs/Xserver/hw/xfree86/doc/README.Solaris:
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Config:
+ * programs/Xserver/hw/xfree86/doc/README.XKB-Enhancing:
+ * programs/Xserver/hw/xfree86/doc/README.apm:
+ * programs/Xserver/hw/xfree86/doc/README.ati:
+ * programs/Xserver/hw/xfree86/doc/README.chips:
+ * programs/Xserver/hw/xfree86/doc/README.cyrix:
+ * programs/Xserver/hw/xfree86/doc/README.dps:
+ * programs/Xserver/hw/xfree86/doc/README.fonts:
+ * programs/Xserver/hw/xfree86/doc/README.i740:
+ * programs/Xserver/hw/xfree86/doc/README.mouse:
+ * programs/Xserver/hw/xfree86/doc/README.newport:
+ * programs/Xserver/hw/xfree86/doc/README.r128:
+ * programs/Xserver/hw/xfree86/doc/README.rendition:
+ * programs/Xserver/hw/xfree86/doc/README.s3virge:
+ * programs/Xserver/hw/xfree86/doc/RELNOTES:
+ * programs/Xserver/hw/xfree86/doc/Versions:
+ * programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml:
+ Add 'BUILD' and 'README' to top level.
+ Fix Id lines in generated documentation to reference
+ source document.
+
+ 2004-04-06 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixed version number glitches in modules.
+
+ 2004-04-06 Harold L Hunt II <harold@codeweavers.com>
+
+ * ChangeLog
+ Fix some duplicate entries from Alexander Gottwald's merges
+ from XORG-RELEASE-1 to CYGWIN.
+
+ 2004-04-06 Keith Packard <keithp@keithp.com>
+
+ * ChangeLog
+ * CHANGELOG-CURRENT:
+ * CHANGELOG-RELEASE-1:
+ * CHANGELOG-RELEASE-1-TM:
+ * INSTALL.TXT:
+ * RELNOTES.TXT:
+ * RELNOTES.XORG:
+ * bug-report:
+ * doc/misc/INSTALL.ms:
+ * doc/misc/RELNOTES.ms:
+ Remove stale documentation.
+ Replace CHANGELOG-* with ChangeLog, change to
+ date-based ordering. I didn't attempt
+
+ 2004-04-05 Keith Packard <keithp@freedesktop.org>
+
+ * Fix sgml doc Imakefile to compute same manual suffixes as man
+ page template. (Keith Packard)
+
+ 2004-04-05 Keith Packard <keithp@freedesktop.org>
+
+ * Fix mkhtmlindex.pl to accept upper or lower case html tags.
+ (Keith Packard)
+
+ 2004-04-05 Keith Packard <keithp@freedesktop.org>
+
+ * Update documentation index file prefix content (index.pre) (Keith Packard)
+
+ 2004-04-02 Egbert Eich <eich-at-freedesktop-org>
+
+ * Merging in the TM branch (Egbert Eich).
+
+ 2004-04-02 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixed glitches that occured during build of bindist tarballs (Egbert Eich).
+
+ 2004-04-02 Egbert Eich <eich-at-freedesktop-org>
+
+ * Mark PLT table executable on OSes that don't allow to execute data
+ areas by default (Bugzilla 395, John Dennis).
+
+ 2004-04-01 Keith Packard <keithp@freedesktop.org>
+
+ * Update formatted docs (I hope I got everything) (Keith Packard)
+
+ 2004-03-30 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fix the GLLibraryVersion string allocation to accomodate for the
+ terminating \0 character which would otherwise corrupt the malloc
+ heap (Bugzilla 385, John Dennis).
+
+ 2004-03-29 Keith Packard <keithp@freedesktop.org>
+
+ * Update xterm termcap/terminfo files, changing -xfree86 to -xorg
+ and making aliases for the old names (Keith Packard).
+
+ 2004-03-29 Egbert Eich <eich-at-freedesktop-org>
+
+ * Changed vendor string on xfs (Egbert Eich).
+ * Removed some more TM related things from getconfig (Egbert Eich).
+
+ 2004-03-29 Keith Packard <keithp@freedesktop.org>
+
+ * Updates to SGML and SGML-generated documentation
+ (Jim Gettys, with minor hacks by Keith Packard)
+
+ 2004-03-28 Keith Packard <keithp@freedesktop.org>
+
+ * TM fixes for hw/xwin -- Harold will merge to CYGWIN. (Keith Packard)
+
+ 2004-03-28 Keith Packard <keithp@freedesktop.org>
+
+ * TM fixes for remaining man pages. Also fixes broken
+ CVS ident lines in many video driver man pages. (Keith Packard)
+
+ 2004-03-28 Keith Packard <keithp@freedesktop.org>
+
+ * TM fixes for input driver man pages (Keith Packard)
+
+ 2004-03-28 Keith Packard <keithp@freedesktop.org>
+
+ * TM fixes for xf86cfg (which has become xorgcfg) (Keith Packard)
+
+ 2004-03-28 Keith Packard <keithp@freedesktop.org>
+
+ * TM fixes for .man files in lib directory (Keith Packard)
+
+ 2004-03-28 Torrey Lyons <torrey@freedesktop.org>
+
+ * Change XDarwin man page to refer to X.Org Foundation and point to Xorg
+ man page (Torrey T. Lyons).
+
+ 2004-03-27 Keith Packard <keithp@freedesktop.org>
+
+ * Add xorg.conf.man, Xorg.man, remove XF86Config.man and XFree86.man
+ (yes, this trashes revision history, but I think it's better
+ than breaking CVS). (Keith Packard)
+
+ 2004-03-27 Keith Packard <keithp@freedesktop.org>
+
+ * TM fixes for VESA general timing formula mode line program
+ (hw/xfree86/etc/gtf). (Keith Packard)
+
+ 2004-03-27 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Prevent segfault if LISTEN specified with no hosts in xdm access
+ control file. (Reported by Peter Breitenlohner to devel@xfree86.org)
+ * Typo in Xau.man reported by Peter Breitenlohner to devel@xfree86.org
+
+ 2004-03-27 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * Add Leon's xorg.xpm and xorg-bw.xpm files to xdm/config. (Kaleb KEITHLEY
+ for Leon Shiman)
+
+ 2004-03-27 Keith Packard <keithp@freedesktop.org>
+
+ * Add some temporary xorg.xpm and xorg-bw.xpm files to xdm/config
+ (Keith Packard)
+
+ 2004-03-26 Keith Packard <keithp@freedesktop.org>
+
+ * Fix TM issues in all video driver manual pages.
+ (Keith Packard)
+
+ 2004-03-26 Keith Packard <keithp@freedesktop.org>
+
+ * Add new MANDEFS to cover XServerName, et al. Move
+ XCONFIGFILE XCONFIGDIR et al from xorg.tmpl to X11.tmpl
+ so they can be used in building non-server manual pages
+ (Keith Packard)
+
+ 2004-03-26 Egbert Eich <eich-at-freedesktop-org>
+
+ * Enabling Chisato's optimatization for freetype2 when fonts contain both
+ bitmapped and outline glyphs when the internal version of freetype2 is
+ used. This should be replaced with a solution which doesn't require to
+ use an internal API. (Egbert Eich).
+
+ 2004-03-26 Egbert Eich <eich-at-freedesktop-org>
+
+ * Allow XF86Config as a fallback config file (Egbert Eich).
+ * Fixed more TM issues especially xterm, getconfig and some default files
+ (Egbert Eich).
+
+ 2004-03-26 Keith Packard <keithp@freedesktop.org>
+
+ * Patch RenderAddGlyphs to handle multiple glyphs and avoid memory error.
+ Bugzilla #349. (Stephen McCamant, applied by Keith Packard)
+
+ 2004-03-26 Keith Packard <keithp@freedesktop.org>
+
+ * Fix TM issues in doc/man/general (Keith Packard)
+
+ 2004-03-26 Keith Packard <keithp@freedesktop.org>
+
+ * xkbcomp/rules/Imakefile was using InstallCreateLink backwards
+ when attempting to install a symlink from xorg to xfree86 for
+ compatibility (Keith Packard)
+
+ 2004-03-26 Keith Packard <keithp@freedesktop.org>
+
+ * Fix Xlib manual pages to refer to XFree86 as a separate entity
+ (Keith Packard)
+
+ 2004-03-26 Keith Packard <keithp@freedesktop.org>
+
+ * TM issues in config/util (rman, makedef, mkhtmlindex) (Keith Packard)
+
+ 2004-03-25 Egbert Eich <eich-at-freedesktop-org>
+
+ * Propagating fix 19 to FSlibInt.c (Egbert Eich).
+
+ 2004-03-25 Torrey Lyons <torrey@freedesktop.org>
+
+ * Updated XDarwin's Japanese localization for X.Org release
+ (Toshimitsu Tanaka).
+ * Fixed TM issues in XDarwin UI (Torrey T. Lyons).
+
+ 2004-03-25 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixed typo that prevented the changelog date to be set correctly in
+ xf86Build.h (Egbert Eich).
+
+ 2004-03-25 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixing some occurances of hard coded version numbers in applications
+ like twm, xrx, proxymgr, xmh (Bugzilla #369, Egbert Eich).
+
+ 2004-03-25 Torrey Lyons <torrey@freedesktop.org>
+
+ * Work around bug in Mac OS X 10.1's AppKit that causes rootless XDarwin
+ to lock up when creating windows (Torrey T. Lyons).
+
+ 2004-03-24 Egbert Eich <eich-at-freedesktop-org>
+
+ * Removed fontstosfnt from build as it is not ready and working, yet
+ (Egbert Eich).
+ * Fixed error checking in the unix socket creation code so it
+ doesn't mistakenly always send an EADDRINUSE (Bugzilla #363, Jeremy Katz).
+
+ 2004-03-24 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixing X.Org version numbers (Egbert Eich).
+
+ 2004-03-24 Egbert Eich <eich-at-freedesktop-org>
+
+ * Updated xf86 6PciStdIds.h (Egbert Eich).
+
+ 2004-03-24 Alan Coopersmith <alanc@freedesktop.org>
+
+ * -terminate option crashes Xserver. Bugzilla #367. (Alan Coopersmith)
+
+ 2004-03-23 Egbert Eich <eich-at-freedesktop-org>
+
+ * Upgrade Xft to 2.1.6 to solve BDF/PCF loading problems (Keith Packard).
+
+ 2004-03-23 Egbert Eich <eich-at-freedesktop-org>
+
+ * Moving Xft update to RELEASE-1 (Egbert Eich).
+
+ 2004-03-23 Egbert Eich <eich-at-freedesktop-org>
+
+ * Made config file and server name in xf86cfg build time configurable
+ (Egbert Eich).
+
+ 2004-03-23 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixed TM issues in xf86config, app-defaults/Xvidtune, create link
+ rules/xfree86 > rules/xorg (Egbert Eich).
+
+ 2004-03-22 Alexander Gottwald <ago@freedesktop.org>
+
+ * Fix build of os/access.c if IPv6 is disabled. Bug #345. (Alexander
+ Gottwald)
+
+ 2004-03-21 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * Fix XDarwin so it builds on Mac OS X 10.2 and earlier. Bug #357. (Kaleb
+ KEITHLEY) Merged down from -RELEASE-1-TM
+
+ 2004-03-21 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * fix XDarwin to build on Mac OS X 10.2 and earlier. Bug #357 (Kaleb
+ KEITHLEY)
+
+ 2004-03-20 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * fix lib/freetype2/Imakefile for Mac OS X. Bug #352 Merged from
+ XORG-RELEASE-1-TM (Kaleb KEITHLEY)
+
+ 2004-03-20 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * fix lib/freetype2/Imakefile for Mac OS X. Bug #352 (Kaleb KEITHLEY)
+
+ 2004-03-19 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * Restore "credit" edits in the hw/darwin ddx that were deleted in
+ -CURRENT. RTF may or may not be "human readable," but it's no less
+ human readable, IMNOHO, than, e.g., SGML. It just takes a little bit
+ of effort.
+
+ 2004-03-19 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * hw/darwin: merge working left and right meta, alt, ctrl, and shift keys
+ from -RELEASE-1-TM
+
+ 2004-03-19 Kaleb Keithley <kaleb@freedesktop.org>
+
+ * merge working left and right meta, alt, ctrl, and shift keys from
+ -CURRENT
+ * Add changes from the CURRENT branch (Egbert Eich).
+
+ 2004-03-19 Egbert Eich <eich-at-freedesktop-org>
+
+ * fixed gtf + man pages (Xserver name and config file name configurable
+ in Imake config files) (Egbert Eich).
+ * Fixed xinit/startx man pages (server name and config file configurable)
+ (Egbert Eich).
+ * Fixed fontstosfnt (project and support address configurable) (Egbert Eich).
+ * Fixed pswrap (relaced XFree86 with X11) (Egbert Eich).
+ * fixed rman (added Xorg as system name) (Egbert Eich).
+ * Fixed mkhtml (Egbert Eich).
+ * Fixed default keyboard rules file in servers and setxkb (configurable)
+ (Egbert Eich).
+ * Fixed XawVendor (configurable) (Egbert Eich).
+
+ 2004-03-19 Egbert Eich <eich-at-freedesktop-org>
+
+ * Prevent Sig11 in RenditionProbe() when no PCI bus present (Lee Olsen).
+
+ 2004-03-18 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fix xdpyinfo to deal with Xorg version strings (Egbert Eich).
+ * Changed config file to xorg.cfg (Egbert Eich).
+ * Fixed ABI versions, support address pointers, message in configuration
+ file generated with -configure (Egbert Eich).
+
+ 2004-03-18 Egbert Eich <eich-at-freedesktop-org>
+
+ * Protect removeOverlapsWithBrides() from NULL pointer in target
+ (Egbert Eich).
+
+ 2004-03-18 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Merge fixes required to build and run on Solaris x86 with Sun
+ compilers from XORG-CURRENT branch. (Alan Coopersmith)
+
+ 2004-03-17 Harold L Hunt II <harold@freedesktop.org>
+
+ * Allow printver program to fail to build, which is required by
+ distributions that do not include the Xserver/hw/xfree86
+ directory (Harold L Hunt II).
+
+ 2004-03-17 Harold L Hunt II <harold@freedesktop.org>
+
+ * Fix Xaw shared lib build on Cygwin (Ralf Habacker).
+
+ 2004-03-17 Harold L Hunt II <harold@freedesktop.org>
+
+ * Can now build XLOAD under Cygwin (Earle F. Philhower III).
+
+ 2004-03-17 Egbert Eich <eich-at-freedesktop-org>
+
+ * Some initial TM changes:
+ name of the binary: Xorg
+ name of the lob file: Xorg.?.log
+ name of the config file XorgConfig
+ created: xorg.cf, xorg.tmpl
+ Internal changes XFree86Version, XFree86VersionString, XF86Server
+ to XorgVersion, XorgVersionString, XorgServer.
+ Attempted not to delete XFree86 stuff but add Xorg stuff and make
+ it the default (Egbert Eich).
+
+ 2004-03-17 Egbert Eich <eich-at-freedesktop-org>
+
+ * Readding Monitor information obtained by DDC to the config file
+ in commented out form (Egbert Eich).
+ * Making a log message by the mouse driver more meaningful (Egbert Eich).
+
+ 2004-03-17 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Incorporate ServerInterpreted address family authentication from IPv6
+ second public review. (Alan Coopersmith)
+
+ 2004-03-17 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Use system version of FreeType on Solaris 10 and provide instructions
+ on using it if it's installed on previous releases.
+
+ 2004-03-17 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fix for insufficient allocation of a list in
+ GetDeviceDontPropagateList() on 64bit machines (Andreas Luik).
+
+ 2004-03-16 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Update SHAPE extension protocol spec to version 1.0.1, fixing
+ freedesktop.org bugzilla #282 (old X.org defect #9453) (Alan Coopersmith)
+
+ 2004-03-15 Egbert Eich <eich-at-freedesktop-org>
+
+ * Preparing branch for TMc (Egbert Eich).
+
+ 2004-03-15 Egbert Eich <eich-at-freedesktop-org>
+
+ * Backing out patch 27 as it was inappropriate for the RELEASE branch
+ and bogus anyway (see bugzilla #303) (Egbert Eich).
+ * backing out 30.: the sleep() exists to bring the log message to the
+ attention of the user which points to a problem elsewhere. Therefore
+ the problem should be fixed where it originates. To be strict we could
+ make the function fail instead of just trying to point the user at
+ the problem (Egbert Eich).
+
+ 2004-03-14 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Fix linker flags & library dependencies for libXfont and freetype
+ font module on Solaris builds. (Alan Coopersmith)
+
+ 2004-03-12 Egbert Eich <eich-at-freedesktop-org>
+
+ * Added a hack to fc-lang and fc-list to prevent installation if
+ define InstallFontconfigLibrary NO (Egbert Eich).
+ * Updated Xft to 2.1.5 (Egbert Eich).
+ * Make ELF loader work on systems with non-exec stack/heaps (bugzilla #296,
+ John Dennis, Mike Harris).
+ * Fix for xdm to work on a non-IPv6 system when built with IPv6 support
+ (bugzilla #287, Peter Breitenlohner) (confirmed by: Alan Coopersmith).
+ * Fix Xi XselectExtensionEvent for 64 bit machines (bugzilla #285,
+ Andreas Luik) (confirmed by: Paul Anderson, Alan Coopersmith).
+
+ 2004-03-11 Mike A. Harris <mharris@freedesktop.org>
+
+ * Remove pointless calls to sleep(5) in xtrans, which cause unnecessary
+ delays in libICE (Bugzilla #297) (Mike A. Harris).
+
+ 2004-03-11 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixing glitches in the Imake rules, Adding a
+ '#define InstallFontconfigLibrary YES/NO' to allow to disable
+ installation of fontconfig (Egbert Eich).
+ * Updating fontconfig to 2.2.2 and Xft to 2.1.4 (Egbert Eich).
+
+ 2004-03-11 Mike A. Harris <mharris@freedesktop.org>
+
+ * Added initial support for PowerPC 64 (ppc64) architecture.
+ (Mike A. Harris, Elliot Lee, SuSE)
+
+ 2004-03-11 Mike A. Harris <mharris@freedesktop.org>
+
+ * Fixed AGP/PCI card detection in Radeon driver, by walking the PCI
+ capabilities list in PCI config space (Bugzilla #255) (Mike A. Harris).
+
+ 2004-03-09 Egbert Eich <eich-at-freedesktop-org>
+
+ * Updating Xcursor, Xrender, Xft (Egbert Eich).
+
+ 2004-03-08 Alan Coopersmith <alanc@freedesktop.org>
+
+ * X server crashes when X-Resource has to byte-swap. Sun bug #5007488.
+ freedesktop.org bugzilla #267. (Alan Coopersmith)
+
+ 2004-03-08 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Update Sun Microsystems postal addresses in xc/registry
+
+ 2004-03-08 Alan Coopersmith <alanc@freedesktop.org>
+
+ * Update license for Xinerama code from DEC to the version requested
+ by Compaq for X11R6.5.1 that allows redistribution without written
+ permission from DEC. Originally X.org Defect #9263.
+ freedesktop.org bugzilla #283. (Alan Coopersmith)
+
+ 2004-03-05 Egbert Eich <eich-at-freedesktop-org>
+
+ * Integrated Freetype 2.1.7 (Egbert Eich).
+
+ 2004-03-05 Egbert Eich <eich-at-freedesktop-org>
+
+ * Porting over Kaleb's fixes to support 3 level version numbers from
+ XORG-CURRENT branch (Egbert Eich).
+
+ 2004-03-04 Egbert Eich <eich-at-freedesktop-org>
+
+ * Merging in Kaleb's changes to XlibInt.c which reflect Keith's fix
+ to version 3.41 in the Xlib repository (Egbert Eich).
+
+2004-03-04 Egbert Eich <eich-at-freedesktop-org>
+
+ * Merged in XFree86 code up to 4.4.0 including changes to files that
+ had a changed license. There was only one change which happened to
+ be from me (Egbert Eich).
+
+2004-03-04 Egbert Eich <eich-at-freedesktop-org>
+
+ * Fixed Freetype2 compile glitches with different versions of freetype.
+ The build has been tested with Freetyp 2.1.4 and 2.1.7 (Egbert Eich).
+ * Changed default font renderer for TrueType that is loaded by the
+ Xserver to freetype (Egbert Eich).
+ * Removed dependecy of freetype Xserver module into freetype internals
+ (Keith Packard).
+ * Flagged mailing addresses that still need to be decided upon
+ with &&&&& to allow for easy tracking (Egbert Eich).
+ * Fixed keyboard rate setting thru ioctls on linux (Egbert Eich).
+
+2004-03-02 Harold L Hunt II <harold@freedesktop.org>
+
+ * Replace a handful of calls to ErrorF and exit(1) in Xserver/os/
+ files with a single call to FatalError, making it possible to
+ do ddx-specific tasks. (Harold L Hunt II)
+
+2004-03-02 Egbert Eich <eich-at-freedesktop-org>
+
+ * Modified freetype driver module build rule to allow using the
+ system provided shared library. The caveat is that it still
+ requires one declaration from a header file which doesn't get
+ shipped (at least with freetype 2.1.4). I would like to see
+ widespread testing on many platforms. If this causes problems
+ I'll back it out. (Egbert Eich).
+
+2004-03-02 Egbert Eich <eich-at-freedesktop-org>
+
+ * Made use system supplied Expat and Freetype2 library the default
+ on Linux (documented in the release notes) (Bugzilla #218,#219)
+ (Egbert Eich).
+ * Patched __AMD64__ flags to __amd64__ (Egbert Eich).
+ * Added RELNOTES.XORG to collect bits for release notes for this
+ release (Egbert Eich).
+ * Removed leftovers from libxml2 (Bugzilla #220)(Egbert Eich).
+ * Removing Kdrive (Bugzilla #222) (Egbert Eich).
+ * Reversed Xinerama changes (Egbert Eich).
+ * Reversed Xutf8* to XFree86utf8* function name changes for the release
+ (Egbert Eich).
+ * Removed sources for patch which were included when patch had a bad bug
+ (Egbert Eich).
+ * Removed unnecessary fonts (Egbert Eich).
+ * Removed XIE and PEX extension files from release tree.
+ The build environment has been gone already (Egbert Eich).
diff --git a/doc/_attic_/XOrg69_documentation_files/LABEL b/doc/_attic_/XOrg69_documentation_files/LABEL
new file mode 100644
index 000000000..09ee8933c
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/LABEL
@@ -0,0 +1,265 @@
+ X Window System, Version 11
+ Release 6.9
+
+ Portions Copyright by:
+
+ 2d3d Inc.
+ Adam de Boor
+ Adam Jackson
+ Adobe Systems Inc.
+ After X-TT Project
+ AGE Logic Inc.
+ Alan Hourihane
+ Andreas Monitzer
+ Andrew C Aitchison
+ Andy Ritger
+ Ani Joshi
+ Anton Zioviev
+ Apollo Computer Inc.
+ Apple Computer Inc.
+ Ares Software Corp.
+ ATI Technologies Inc.
+ AT&T Inc.
+ Bigelow & Holmes
+ Bill Reynolds
+ Bitstream Inc.
+ Brian Fundakowski Feldman
+ Brian Goines
+ Brian Paul
+ Bruno Haible
+ Charles Murcko
+ Chen Xiangyang
+ Chris Constello
+ Cognition Corp.
+ Compaq Computer Corporation
+ Concurrent Computer Corporation
+ Conectiva S.A.
+ Corin Anderson
+ Craig Struble
+ Daewoo Electronics Co. Ltd.
+ Dale Schumacher
+ Damien Miller
+ Daniel Borca
+ Daniver Limited
+ Daryll Strauss
+ Data General Corporation
+ David Bateman
+ David Dawes
+ David E. Wexelblat
+ David Holland
+ David J. McKay
+ David McCullough
+ David Mosberger-Tang
+ David S. Miller
+ David Turner
+ David Wexelblat
+ Davor Matic
+ Digital Equipment Corporation
+ Dirk Hohndel
+ Dmitry Golubev
+ Doug Anson
+ Edouard TISSERANT
+ Eduardo Horvath
+ Egbert Eich
+ Eric Anholt
+ Eric Fortune
+ Eric Sunshine
+ Erik Fortune
+ Erik Nygren
+ Evans & Sutherland Computer Corporation
+ Felix Kuehling
+ Finn Thoegersen
+ Francesco Zappa Nardelli
+ Frederic Lepied
+ Free Software Foundation Inc.
+ Fujitsu Limited
+ Fujitsu Open Systems Solutions Inc.
+ Fuji Xerox Co. Ltd.
+ Geert Uytterhoeven
+ Gerrit Jan Akkerman
+ Gerry Toll
+ Glenn G. Lai
+ Go Watanabe
+ Gregory Mokhin
+ Greg Parker
+ GROUPE BULL
+ Hans Oey
+ Harald Koenig
+ Harm Hanemaayer
+ Harry Langenbacher
+ Henry A. Worth
+ Hewlett-Packard Company
+ Hitachi Ltd
+ Holger Veit
+ Hummingbird Communications Ltd
+ IBM Corporation
+ Intel Corporation
+ INTERACTIVE Systems Corporation
+ International Business Machines Corp.
+ Itai Nahshon
+ Jakub Jelinek
+ James Tsillas
+ Jason Bacon
+ Jean-loup Gailly
+ Jeff Kirk
+ Jeffrey Hsu
+ Jim Tsillas
+ J. Kean Johnston
+ Jon Block
+ Jon Tombs
+ Jorge Delgado
+ Joseph Friedman
+ Joseph V. Moss
+ Juliusz Chroboczek
+ Jyunji Takagi
+ Kaleb S. Keithley
+ Kazushi (Jam) Marukawa
+ Kazuyuki (ikko-) Okamoto
+ Keith Packard
+ Keith Whitwell
+ Kevin E. Martin
+ Larry Wall
+ Lawrence Berkeley Laboratory
+ Lennart Augustsson
+ Lexmark International Inc.
+ Linus Torvalds
+ Loïc Grenié
+ Machine Vision Holdings Inc.
+ Manfred Brands
+ Marc Aurele La France
+ Mark Adler
+ Mark J. Kilgard
+ Mark Leisher
+ Mark Smulders
+ Massachusetts Institute Of Technology
+ Matrox Graphics
+ Matthew Grossman
+ Matthieu Herrb
+ Metro Link Inc.
+ Michael H. Schimek
+ Michael P. Marking
+ Michael Schimek
+ Michael Smith
+ Ming Yu
+ MIPS Computer Systems Inc.
+ National Semiconductor
+ NCR Corporation Inc.
+ Netscape Communications Corporation
+ Network Computing Devices Inc.
+ Nicholas Miell
+ Noah Levitt
+ Novell Inc.
+ Nozomi YTOW
+ NTT Software Corporation
+ Number Nine Computer Corp.
+ Number Nine Visual Technologies
+ NVIDIA Corp.
+ Olivier Danet
+ Oki Technosystems Laboratory Inc.
+ OMRON Corporation
+ Open Software Foundation
+ Orest Zborowski
+ Pablo Saratxaga
+ Panacea Inc.
+ Panagiotis Tsirigotis
+ Paolo Severini
+ Pascal Haible
+ Patrick Lecoanet
+ Patrick Lerda
+ Paul Elliott
+ Peter Kunzmann
+ Peter Trattler
+ Philip Homburg
+ Precision Insight Inc.
+ Prentice Hall
+ Quarterdeck Office Systems
+ Randy Hendry
+ Ranier Keller
+ Red Hat Inc.
+ Regents of the University of California
+ Rene Cougnenc
+ Régis Cridlig
+ Richard A. Hecker
+ Richard Burdick
+ Rich Murphey
+ Rickard E. Faith
+ Robert Baron
+ Robert Chesler
+ Robert V. Baron
+ Robert Wilhelm
+ Robin Cutshaw
+ Roland Mainz
+ S3 Graphics Inc.
+ Sam Leffler
+ SciTech Software
+ Scott Laird
+ Sebastien Marineau
+ Shigehiro Nomura
+ ShoGraphics Inc.
+ Shunsuke Akiyama
+ Silicon Graphics Computer Systems Inc.
+ Silicon Integrated Systems Corp Inc.
+ Silicon Motion Inc.
+ Simon P. Cooper
+ Snitily Graphics Consulting Services
+ Sony Corporation
+ SRI
+ Stanislav Brabec
+ Stephan Dirsch
+ Stephan Lang
+ Steven Lang
+ Sun Microsystems Inc.
+ SunSoft Inc.
+ SuSE Inc.
+ Sven Luther
+ Takis Psarogiannakopoulos
+ Takuya SHIOZAKI
+ Tektronix Inc.
+ The DOS-EMU-Development-Team
+ The Institute of Software Academia Sinica
+ The NetBSD Foundation
+ Theo de Raadt
+ Theodore Ts'o
+ The Open Group
+ The Open Software Foundation
+ The Regents of the University of California
+ The Santa Cruz Operation Inc.
+ The Unichrome Project
+ The Weather Channel Inc.
+ The X Consortium
+ The XFree86 Project Inc.
+ Thomas A. Phelps
+ Thomas E. Dickey
+ Thomas G. Lane
+ Thomas Mueller
+ Thomas Roell
+ Thomas Thanner
+ Thomas Winischhofer
+ Thomas Wolfram
+ Thorsten.Ohl
+ Tiago Gons
+ Todd C. Miller
+ Tomohiro KUBOTA
+ Torrey T. Lyons
+ TOSHIBA Corp.
+ Trolltech AS
+ Tungsten Graphics Inc.
+ UCHIYAMA Yasushi
+ Unicode Inc.
+ UniSoft Group Limited
+ University of Utah
+ UNIX System Laboratories Inc.
+ URW++ GmbH
+ VA Linux Systems
+ VIA Technologies Inc.
+ Video Electronics Standard
+ VMware Inc.
+ Vrije Universiteit
+ Werner Lemberg
+ Wittawat Yamwong
+ Wyse Technology Inc.
+ X Consortium
+ Xi Graphics Inc.
+ X-Oz Technologies
+ X-TrueType Server Project
+ X.Org Foundation, LLC
diff --git a/doc/_attic_/XOrg69_documentation_files/README b/doc/_attic_/XOrg69_documentation_files/README
new file mode 100644
index 000000000..d3dddc78f
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/README
@@ -0,0 +1,180 @@
+ README for X11R6.9 and X11R7.0
+
+ The X.Org Foundation
+
+ 21 December 2005
+
+ Abstract
+
+ X11R6.9 and X11R7.0 are Open Source versions of the X Window System
+ that supports many UNIX(R) and UNIX-like operating systems (such as
+ Linux, FreeBSD, NetBSD, OpenBSD and Solaris x86) on Intel and other
+ platforms. This version is compatible with X11R6.8 and other X
+ window system implementations which support the X11R6 standard.
+
+1. What are X11R6.9 and X11R7.0?
+
+X11R6.9 is the ninth and final full release in the X11R6 series, and X11R7.0
+is the first release in the new X11R7 series.
+
+The 6.9 version is a new release that includes additional hardware support,
+functional enhancements and bug fixes. The 7.0 version is built from the
+same source code as the 6.9 so it contains the same additional hardware sup-
+port, functional enhancements and bug fixes; however, it has been split into
+logical modules that can be developed, built and maintained separately, but
+still fit together coherently into the larger source code base as they have
+in the 6.9 tree. Specific release enhancements can be viewed in the Release
+Notes.
+
+X11R6.9 and X11R7.0 are being released at the same time to assist in the
+transition from the older monolithic source tree to the new modular source
+tree. It will take time for everyone to make this transition, so we will
+maintain the older X11R6 series through update releases to both X11R6.9 and
+X11R6.8.
+
+Most modern PC video hardware is supported in both releases, and most PC
+video hardware that isn't supported explicitly can be used with the "vesa"
+driver. The Release Notes has a table showing the drivers provided with
+X11R6.9 and X11R7.0, and links to related documentation.
+
+The X.Org Foundation X releases are produced by the X.Org Foundation. The
+X.Org Foundation has been formed as a Delaware corporation organized to oper-
+ate as a scientific charity under IRS code 501(c)(3) chartered to develop and
+execute effective strategies which provide world-wide stewardship of the X
+Window System technology and standards. Membership in the X.Org Foundation is
+free to all participants. Applications for Membership are now being accepted,
+and active participants in the further development of the X Window Technology
+are invited to complete a membership application
+<URL:http://www.x.org/XOrg_Foundation_Membership.html>. The X11R6.9 and
+X11R7.0 codebase forms the fourth X Window System release since the formation
+of the X.Org Foundation and includes code from the X Consortium, the Open
+Group and the XFree86[tm] project. This release is dedicated to the greater
+X community, developers and users alike.
+
+2. Licensing
+
+X Window System source code is covered by many licenses. All of these
+licenses have in common the fact that they do not impose significant condi-
+tions on the modification or redistribution or either source code or binaries
+beyond requiring one or more of the following:
+
+ 1. Copyright and/or license notices are left intact.
+
+ 2. Copyright and/or license notices are reproduced verbatim in documenta-
+ tion accompanying binary distributions.
+
+ 3. Attributions are included with documentation accompanying binaries.
+
+Most of these licenses are based on the MIT, X Consortium, or BSD (original
+and revised) licenses. All of them are consistent with the Open Source Defi-
+nition, and most are consistent with the Free Software Foundation's Free
+Software Definition.
+
+Copyright and Licensing information for X, including the reproduction of
+copyright and/or license notices and attributions required by some of the
+licenses for binary distributions, can be found in the License Document. If
+you find any omissions in that document, please contact us with details at
+<xf_board@x.org>. While the current licenses are all open source licenses,
+the X.Org Foundation is attempting, with time, to bring as much as possible
+of the code's licenses in the distribution into compliance with the Debian
+Free Software Guidelines.
+
+3. Pointers to additional information
+
+The documentation for this release can be found online at the X.Org web site
+<URL:http://wiki.x.org/>. Information about binary distributions and the
+attendant installation instructions can be found in the Installation Docu-
+ment.
+
+The X11 version numbering system (including historical information) can be
+found in the Versions Document.
+
+Additional information may be available at the X.Org Foundation Wiki
+<URL:http://wiki.x.org/>.
+
+4. The Public Mailing Lists
+
+Current information about the X.Org Foundation public mailing lists is avail-
+able on the X.Org mailing list page <URL:http://lists.x.org/mail-
+man/listinfo/> and related desktop technology mailing lists can be found on
+Freedesktop.org's mailing list page <URL:http://freedesktop.org/mail-
+man/listinfo>.
+
+5. Contributing to the X.Org Foundation's X efforts.
+
+If you have any new work or enhancements/bug fixes for existing work, please
+send them to <xorg@freedesktop.org> or to our bug tracking system
+<URL:https://bugs.freedesktop.org/> using the xorg component. This will help
+ensure that they are included in future releases.
+
+6. How to get the release
+
+Information about X11R6.9 and X11R7.0 can be found from the X.Org Foundation
+wiki at <URL:http://wiki.x.org>, and at mirrors of this server. Information
+about obtaining and installing binary distributions of this release can be
+found in the Installation Document.
+
+Note that both X11R6.9 and X11R7.0 are being released simultaneously but only
+one source tree is required to build the release. Information about obtain-
+ing the release in source form is given below.
+
+6.1 X11R6.9
+
+The source for version 6.9.0 is available as a single tarball:
+
+ X11R6.9.0-src.tar.gz
+
+and also is available split into seven separate tarballs:
+
+ X11R6.9.0-src1.tar.gz
+ X11R6.9.0-src2.tar.gz
+ X11R6.9.0-src3.tar.gz
+ X11R6.9.0-src4.tar.gz
+ X11R6.9.0-src5.tar.gz
+ X11R6.9.0-src6.tar.gz
+ X11R6.9.0-src7.tar.gz
+
+The first three of the separate tarballs contain everything except the fonts
+and general X11 documentation. Those three are sufficient for building
+X11R6.9 if you already have a set of fonts. The fourth and fifth contain the
+fonts. The sixth contains the source for the general X11 documentation. The
+seventh contains the general X11 documentation in hardcopy format.
+
+6.2 X11R7.0
+
+This is the first release of the new modular source code tree. The souce
+code has been split into nine logical modules: app, data, doc, driver, font,
+lib. proto, util and xserver. Each of these modules contain one or more
+packages that can be configured, built and installed separately. Please see
+an X11R7.0 release site for a complete list of the tarballs.
+
+For information on how to build the modular tree packages see the Modular
+Developer's Guide <URL:http://wiki.x.org/wiki/ModularDevelopersGuide>. This
+guide also contains information for developers who want to help improve the
+modular build system and modular code base.
+
+6.3 The current development tree
+
+The X source code for this and all releases/snapshots as well as development
+versions can also be accessed via the Freedesktop.org CVS repository. It's
+also possible to browse the freedesktop CVS repository
+<URL:http://cvs.freedesktop.org/xorg/>. The CVS tag for the 6.9 version is
+"XORG-6_9_0" and the CVS tag for the 7.0 version is "XORG-7_0_0". The CVS
+tag for the stable branch for the %relvers; release is "XORG-6_9-branch".
+
+To check out the latest development version, don't specify any tag.
+
+7. Reporting Bugs
+
+Bugs should be reported to bug tracking system <URL:https://bugs.freedesk-
+top.org/> using the xorg component. Before reporting bugs, please check the
+server log file, which can be found at /var/log/Xorg.0.log on most platforms.
+If you can't resolve the problem yourself, send the entire log file with your
+bug report but not the operating system core dump. Do not edit the log file
+as our developers use it to reproduce and debug your problem. Please attach
+it to your bug report.
+
+ Generated from Id: README.sgml,v 1.6 alanc Exp $.
+
+
+$XdotOrg: xc/README,v 1.4 2005/12/21 05:39:04 kem Exp $
diff --git a/doc/_attic_/XOrg69_documentation_files/README.crypto b/doc/_attic_/XOrg69_documentation_files/README.crypto
new file mode 100644
index 000000000..f41c62fd1
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/README.crypto
@@ -0,0 +1,64 @@
+Export Requirements.
+
+You may not export or re-export this software or any copy or
+adaptation in violation of any applicable laws or regulations.
+
+Without limiting the generality of the foregoing, hardware, software,
+technology or services provided under this license agreement may not
+be exported, reexported, transferred or downloaded to or within (or to
+a national resident of) countries under U.S. economic embargo
+including the following countries:
+
+Cuba, Iran, Libya, North Korea, Sudan and Syria. This list is subject
+to change.
+
+Hardware, software, technology or services may not be exported,
+reexported, transferred or downloaded to persons or entities listed on
+the U.S. Department of Commerce Denied Persons List, Entity List of
+proliferation concern or on any U.S. Treasury Department Designated
+Nationals exclusion list, or to parties directly or indirectly
+involved in the development or production of nuclear, chemical,
+biological weapons or in missile technology programs as specified in
+the U.S. Export Administration Regulations (15 CFR 744).
+
+By accepting this license agreement you confirm that you are not
+located in (or a national resident of) any country under U.S. economic
+embargo, not identified on any U.S. Department of Commerce Denied
+Persons List, Entity List or Treasury Department Designated Nationals
+exclusion list, and not directly or indirectly involved in the
+development or production of nuclear, chemical, biological weapons or
+in missile technology programs as specified in the U.S. Export
+Administration Regulations.
+
+The X distribution contains cryptography and is
+therefore subject to US government export control under the
+U.S. Export Administration Regulations ("EAR"). EAR Part 740.13(e)
+allows the export and reexport of publicly available encryption source
+code that is not subject to payment of license fee or royalty
+payment. Object code resulting from the compiling of such source code
+may also be exported and reexported under this provision if publicly
+available and not subject to a fee or payment other than reasonable
+and customary fees for reproduction and distribution. This kind of
+encryption source code and the corresponding object code may be
+exported or reexported without prior U.S. government export license
+authorization provided that the U.S. government is notified about the
+Internet location of the software.
+
+The open source software available distributed by X.org is publicly
+available without license fee or royalty payment, and all binary
+software is compiled from the source code. The U.S. government has
+been notified about the location site for the source
+code. Therefore, the source code and compiled object code may be
+downloaded and exported under U.S. export license exception (without a
+U.S. export license) in accordance with the further restrictions
+outlined above regarding embargoed countries, restricted persons and
+restricted end uses.
+
+Local Country Import Requirements. The software you are about to
+download contains cryptography technology. Some countries regulate the
+import, use and/or export of certain products with cryptography. The
+X.org Foundation makes no claims as to the applicability of local
+country import, use and/or export regulations in relation to the
+download of this product. If you are located outside the U.S. and
+Canada you are advised to consult your local country regulations to
+insure compliance.
diff --git a/doc/_attic_/XOrg69_documentation_files/RELNOTES b/doc/_attic_/XOrg69_documentation_files/RELNOTES
new file mode 100644
index 000000000..253c8319e
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/RELNOTES
@@ -0,0 +1,1091 @@
+ Release Notes for X11R6.9 and X11R7.0
+
+ The X.Org Foundation
+ The XFree86 Project, Inc.
+
+ 21 December 2005
+
+ Abstract
+
+ These release notes contains information about features and their
+ status in the X.Org Foundation X11R6.9/X11R7.0 release. It is
+ based on the XFree86 4.4RC2 RELNOTES document published by The
+ XFree86[tm] Project, Inc. There are significant updates and dif-
+ ferences in the X.Org release as noted below.
+
+1. Introduction to the X11R6.9/X11R7.0 Release
+
+This release constitutes the first major version release of the X Window Sys-
+tem in over a decade. The main reasons for the major version bump from 6 to
+7 is that we have moved from what has traditionally been a source codebase
+comprised of many different components brought together into a single mono-
+lithic tree to a source codebase where each of those same components found in
+the monolithic tree are now split into logical modules that can be developed,
+built and maintained separately, but still fit together coherently into the
+larger project. At the same time, we have moved away from the imake build
+system to an autotools build system. By making these changes we have opened
+the source code up to a new generation of developers that can continue to
+build upon the long tradition of the X Window System.
+
+The reason for having simultaneous releases for both the monolithic and modu-
+lar trees is to allow for a transition period as developers, builders and
+vendors incorporate the significant changes to how the tree is built and
+developed into their products and to allow time for additional platforms to
+be supported the modular tree. This initial modular release has support for
+Linux and Solaris. During the transition period, we expect both the mono-
+lithic and modular trees to coexist. For the monolithic tree, we expect that
+there will be maintenance releases in the X11R6.8.x and X11R6.9.x series as
+needed. However, the main development effort will move over to the new modu-
+lar tree.
+
+The X11R7.0 release is the first in the modular series. One of the advan-
+tages of the modular tree is that it allows for more rapid and independent
+updates of module components, so full maintenance releases will no longer be
+required for simple bug fixes. Rather, each module component maintainer can
+prepare new releases as needed. These module component releases will then be
+periodically "rolled up" into official X.Org Foundation releases. The next
+official release will be X11R7.1 and is expected in mid 2006.
+
+For more information on the modularization effort see the Modularization Pro-
+posal <URL:http://wiki.x.org/wiki/ModularizationProposal>, and for help with
+how to build and develop in the new modular tree see Modular Developer's
+Guide <URL:http://wiki.x.org/wiki/ModularDevelopersGuide>.
+
+We encourage you to submit bug fixes and enhancements to freedesktop.org's
+bug tracking system <URL:https://bugs.freedesktop.org/> using the xorg prod-
+uct, and to discuss them on <xorg@lists.freedesktop.org>.
+
+The release numbering is based on the original MIT X numbering system. X11
+refers to the version of the network protocol that the X Window system is
+based on: Version 11 was first released in 1988 and has been stable for 17
+years, with only upward compatible additions to the core X protocol, a record
+of stability envied in computing. Formal releases of X started with X ver-
+sion 9 from MIT; the first commercial X products were based on X version 10.
+The MIT X Consortium and its successors, the X Consortium, the Open Group X
+Project Team, and the X.Org Group released versions X11R3 through X11R6.6,
+before the founding of the X.Org Foundation in early 2004.
+
+The next section describes what is new in the latest version (6.9/7.0) com-
+pared with the previous full release (6.8). The other sections below
+describe some of the new features and changes between 3.3.x and 4.0. There
+are lots of new features, and we definitely don't have enough space to cover
+them all here.
+
+2. Summary of new features in X11R6.9 and X11R7.0
+
+This is a sampling of the new features in X11R6.9/X11R7.0. A more complete
+list of changes can be found in the ChangeLog file that is part of the X
+source tree.
+
+ o EXA support included
+
+ EXA is a new accleration architecture to replace XAA, the current archi-
+ tecture. It is largely based upon KAA in KDrive, and is far more effi-
+ cient at accelerating typical workloads on modern hardware, particularly
+ involving the RENDER extension.
+
+ o FreeType was updated to version 2.1.9. But installing FreeType from X
+ distributions would often or usually result in the replacement or use of
+ "stale" versions of FreeType. On Linux, FreeBSD, Solaris 10, and SCO5,
+ therefore, X11R6.9 will by default use the version of FreeType2 that is
+ installed on the system. If your system doesn't come with an installed
+ FreeType2 and you wish to use the version supplied with this distribu-
+ tion, please add:
+
+ #define HasFreetype2 NO
+
+ to config/cf/host.def.
+
+ o Updated Mesa and DRI from upstream sources
+
+ o More OpenGL extensions
+
+ o Support for Radeon r3xx/r4xx and PCI-Express chips
+
+ o Support for mixed 32-bit and 64-bit clients on 64-bit machines.
+
+ o Individual extensions may be enabled or disabled on the command line
+ using the -extension flag
+
+ o Improved chipset probing for IA64
+
+ o SecureRPC enabled on Linux by default
+
+ o Updated XRX support
+
+ o Fixes to rootless mode for Cygwin and Darwin ports
+
+ o Numerous K&R-to-ANSI C conversions
+
+ o Many Darwin fixes
+
+ o Updated XvMC support, enabling generic loading of hardware-specific
+ drivers
+
+ o Added wsfb video driver for OpenBSD and NetBSD framebuffer consoles
+
+ o Numerous ATI driver updates from the GATOS project, including TV input
+ support
+
+ o Improved ProPolice support
+
+ o Improved module loader support for Alpha chips
+
+ o Added mingw port for native Win32 builds
+
+ o Updated PCI scanning
+
+ o Experimental DRI support for Radeon 9500 and above
+
+ o Updated xterm to #207 from Thomas Dickey's xterm project
+ <URL:http://dickey.his.com/xterm/xterm.html>
+
+ o Added evdev input driver for generic input handling on Linux
+
+ o Switched to libdl-based module loader
+
+ o MMX blending routines for the Render extension
+
+ o Initial support for running the Xorg server without root privileges
+
+ o Add DragonFly BSD support
+
+ o SGI Altix support
+
+ o Support for FreeBSD/powerpc
+
+ o Enhanced software Render core
+
+ o Support for more than 12 buttons in the generic mouse driver
+
+ o Better support for DRI on 64-bit platforms
+
+ o Solaris support updates:
+
+ o enhanced mouse driver
+
+ o agpgart support
+
+ o experimental AMD64 support
+
+ o kbd support
+
+ o /dev/audio keyboard bell option
+
+ o Output-only windows
+
+ o Non-rectangular mergedfb desktops
+
+ o Update bundled fontconfig to 2.3.2
+
+ o Added gradient, solid fill, and convolution filter operations to Render
+
+ o Support for XGI chipsets in SiS video driver
+
+ o Xft updated to 2.1.7
+
+ o Include stack backtraces in logfiles when server crashes on glibc and
+ Solaris systems
+
+ o Multiseat support
+
+ o xload made compatible with 64-bit kernels on Solaris
+
+ o Bundled Mesa upgraded to 6.4.1
+
+ o CAN-2005-2495 security fixes
+
+ o Shared libraries now built for libXau and libXdmcp
+
+ o GNU/kFreeBSD support
+
+2.1 Updated keyboard mappings
+
+The requirement for XKB data can, in the modular tree, be satisfied either by
+the traditional data set (the 'xkbdata' module), or by the dataset from the
+xkeyboard-config project (the 'xkbdesc' module). xkbdesc has numerous
+improvements relative to xkbdata: layouts have been cleaned up for consis-
+tency and universal multi-layout support, some new layouts have added, and
+some layouts have changed names to be more straightforward and ISO compliant.
+Some setups will need adjustments in order to use xkbdesc.
+
+2.2 New loader mechanism
+
+The loader now uses the standard libdl-based loader, instead of implementing
+its own ELF loading and parsing mechanism. This extends loadable server sup-
+port to many platforms where it was not previously possible, such as MIPS,
+Motorola 68000, HP PA/RISC, et al. The core loader itself has also been sig-
+nificantly optimised.
+
+2.3 Video driver enhancements
+
+ o SiS driver updates include
+
+ o Support for EXA acceleration
+
+ o Support for non-rectangular MergedFB, including RandR
+
+ o Support for XGI chipsets
+
+ o New sisusb driver for USB-attached video
+
+ o ATI driver updates
+
+ o Mach64 TV out support
+
+ o Rage 128 driver updates
+
+ o Added dualhead support
+
+ o Radeon driver updates
+
+ o Support for non-rectangular MergedFB
+
+ o Support for EXA acceleration
+
+ o Full 3D support for r3xx/r4xx series, and PCI-Express
+
+ o Support for RN50/ES1000 chips
+
+ o VIVO support merged from the GATOS project
+
+ o Hostdata blit support for Xv videos and RENDER images
+
+ o BIOS hotkey support
+
+ o Tiled framebuffer support
+
+ o MGA driver updates
+
+ o New BIOS parsing
+
+ o i810 driver updates
+
+ o i915GM, i945G and E7221 support
+
+ o Linux power management support (ACPI)
+
+ o BIOS hotkey support
+
+ o ShadowFB support
+
+ o Improved DDC support
+
+ o SunFFB driver updates
+
+ o XAA acceleration
+
+ o Savage driver updates
+
+ o Support for PCI Savages
+
+ o Added dualhead and DRI support
+
+ o Newport driver updates
+
+ o XAA acceleration
+
+ o VIA driver updates
+
+ o Unichrome Pro support
+
+ o DRI support
+
+ o NV driver updates
+
+ o DPMS support for GeForce4 and greater laptops
+
+ o VMWare driver updates
+
+ o RandR support
+
+3. Drivers
+
+3.1 Video Drivers
+
+X11R6.9/X11R7.0 includes the following video drivers:
+
++--------------+--------------------------+---------------------------------------------+
+|Driver Name | Description | Further Information |
++--------------+--------------------------+---------------------------------------------+
+|apm | Alliance Pro Motion | README.apm |
+|ark | Ark Logic | |
+|ati | ATI | README.ati, README.r128, r128(4), radeon(4) |
+|chips | Chips & Technologies | README.chips, chips(4) |
+|cirrus | Cirrus Logic | |
+|cyrix (*) | Cyrix MediaGX | README.cyrix |
+|fbdev | Linux framebuffer device | fbdev(4) |
+|glide | Glide2x (3Dfx) | glide(4) |
+|glint | 3Dlabs, TI | glint(4) |
+|i128 | Number Nine | README.I128, i128(4) |
+|i740 | Intel i740 | README.i740 |
+|i810 | Intel i8xx | README.i810, i810(4) |
+|imstt | Integrated Micro Solns | |
+|mga | Matrox | mga(4) |
+|neomagic | NeoMagic | neomagic(4) |
+|newport (-) | SGI Newport | README.newport, newport(4) |
+|nsc | National Semiconductor | nsc(4) |
+|nv | NVIDIA | nv(4) |
+|rendition | Rendition | README.rendition, rendition(4) |
+|s3 | S3 (not ViRGE or Savage) | |
+|s3virge | S3 ViRGE | README.s3virge, s3virge(4) |
+|savage | S3 Savage | savage(4) |
+|siliconmotion | Silicon Motion | siliconmotion(4) |
+|sis | SiS | README.SiS, sis(4) |
+|sisusb | SiS USB | sisusb(4) |
+|sunbw2 (+) | Sun bw2 | |
+|suncg14 (+) | Sun cg14 | |
+|suncg3 (+) | Sun cg3 | |
+|suncg6 (+) | Sun GX and Turbo GX | |
+|sunffb (+) | Sun Creator/3D, Elite 3D | |
+|sunleo (+) | Sun Leo (ZX) | |
+|suntcx (+) | Sun TCX | |
+|tdfx | 3Dfx | tdfx(4) |
+|tga | DEC TGA | README.DECtga |
+|trident | Trident | trident(4) |
+|tseng | Tseng Labs | |
+|vesa | VESA | vesa(4) |
+|vga | Generic VGA | vga(4) |
+|via | VIA | via(4) |
+|vmware | VMware guest OS | vmware(4) |
++--------------+--------------------------+---------------------------------------------+
+
+Drivers marked with (*) are present in a preliminary form in this release,
+but are not complete and/or stable yet.
+
+Drivers marked with (+) are for Linux/Sparc only.
+
+Drivers marked with (-) are for Linux/mips only.
+
+Darwin/Mac OS X uses IOKit drivers and does not use the module loader drivers
+listed above. Further information can be found in README.Darwin.
+
+3.2 Input Drivers
+
+X11R6.9/X11R7.0 includes the following input drivers:
+
+ +------------+----------------------------------+---------------------+
+ |Driver Name | Description | Further Information |
+ +------------+----------------------------------+---------------------+
+ |aiptek(*) | Aiptek USB tablet | aiptek(4) |
+ |calcomp | Calcomp | |
+ |citron | Citron | citron(4) |
+ |digitaledge | DigitalEdge | |
+ |dmc | DMC | dmc(4) |
+ |dynapro | Dynapro | |
+ |elographics | EloGraphics | |
+ |evdev(*) | EvDev | |
+ |fpit | Fujitsu Stylistic Tablet PCs | fpit(4) |
+ |hyperpen | Aiptek HyperPen 6000 | |
+ |js_x | JamStudio pentablet | js_x(4) |
+ |kbd | generic keyboards (alternate) | kbd(4) |
+ |keyboard | generic keyboards | keyboard(4) |
+ |microtouch | MicroTouch | |
+ |mouse | most mouse devices | mouse(4) |
+ |mutouch | MicroTouch | |
+ |palmax | Palmax PD1000/PD1100 | palmax(4) |
+ |penmount | PenMount | |
+ |spaceorb | SpaceOrb | |
+ |summa | SummaGraphics | |
+ |tek4957 | Tektronix 4957 tablet | tek4957(4) |
+ |ur98(*) | Union Reality UR-F98 headtracker | ur98(4) |
+ |void | dummy device | void(4) |
+ |wacom(-) | Wacom tablets | wacom(4) |
+ +------------+----------------------------------+---------------------+
+
+Drivers marked with (*) are available for Linux only.
+
+Drivers marked with (-) are available for X11R6.9 only.
+
+4. Overview of X11R6.9 and X11R7.0
+
+On most platforms, X11R6.9/X11R7.0 has a single X server binary called Xorg.
+This binary can either have one or more video and input drivers linked in
+statically, or more usually, dynamically, and in that manner load the video
+drivers, input drivers, and other modules that are needed.
+
+X11R6.9 has X server support for most UNIX and UNIX-like operating systems
+on Intel/x86 platforms, plus support for Linux and some BSD OSs on Alpha,
+PowerPC, IA-64, AMD64, Sparc, and Mips platforms, and for Darwin on PowerPC.
+X11R7.0 has X server currently has support for Linux and Solaris, and is
+expected to have other platform support in X11R7.1.
+
+4.1 Loader and Modules
+
+The X server has a built-in run-time loader, which can load normal object
+files and libraries in most of the commonly used formats. The loader does
+not rely on an operating system's native dynamic loader support and it works
+on platforms that do not provide this feature. This allows for the modules
+to be operating system independent (although not, of course, CPU architecture
+independent) which means that a module compiled on Linux/x86 can be loaded by
+an X server running on Solaris/x86, or FreeBSD, or even OS/2.
+
+A main benefit of this, is that when modules are updated, they do not need to
+be recompiled for every different operating system. The loader in version
+6.9/7.0 has support for Intel (x86), Alpha and PowerPC platforms. It also
+has preliminary support for Sparc platforms.
+
+The X server makes use of modules for video drivers, X server extensions,
+font rasterisers, input device drivers, framebuffer layers (like mfb, cfb,
+etc), and internal components used by some drivers (like XAA),
+
+The module interfaces (both API and ABI) used in this release are subject to
+change without notice. While we will attempt to provide backward compatibil-
+ity for the module interfaces as of the 4.0 release (meaning that 4.0 modules
+will work with future core X server binaries), we cannot guarantee this.
+Compatibility in the other direction is explicitly not guaranteed because new
+modules may rely on interfaces added in new releases.
+
+Note about module security
+
+ The X server runs with root privileges, i.e., the X server loadable
+ modules also run with these privileges. For this reason we recom-
+ mend that all users be careful to only use loadable modules from
+ reliable sources, otherwise the introduction of viruses and con-
+ taminated code can occur and wreak havoc on your system. We hope
+ to have a mechanism for signing/verifying the modules that we pro-
+ vide available in a future release.
+
+4.2 Configuration File
+
+The X server uses a configuration file as the primary mechanism for providing
+configuration and run-time parameters. The configuration file format is
+described in detail in the xorg.conf(5) manual page.
+
+This release comes with a graphical configuration tool called "xorgcfg",
+which also has a text mode interface and can be used to create an initial
+configuration file. It can also be used to customise existing configurations.
+
+Next in the order of configuration preferences is to use the Xorg server's
+ability to create a starting configuration file. Run as root:
+
+ Xorg -configure
+
+ and follow the instructions.
+
+Finally, if all else fails, the trusty old standby text-based tool "xorgcon-
+fig" can also be used for generating X server config files.
+
+At least one, and hopefully, all of these configuration options will give you
+a reasonable starting point for a suitable configuration file. With the
+automatic mechanism you might even find that you don't need one!
+
+If you do need to customize the configuration file, see the xorg.conf manual
+page. You can also check the driver-specific manual pages and the related
+documentation (found at tables below (section , page ) also.
+
+4.3 Command Line Options
+
+Command line options can be used to override some default parameters and
+parameters provided in the configuration file. These command line options
+are described in the Xorg(1) manual page.
+
+4.4 XAA
+
+The XFree86 Acceleration Architecture (XAA) was completely rewritten from
+scratch for XFree86 4.x and is used in X11R6.9/X11R7.0. Most drivers imple-
+ment acceleration by making use of the XAA module. The Xorg server will
+accept modules built either for XFree86 4.4 servers or its own.
+
+4.5 Multi-head
+
+Some multi-head configurations are supported in X11R6.9/X11R7.0, primarily
+with multiple PCI/AGP cards.
+
+One of the main problems is with drivers not sufficiently initialising cards
+that were not initialised at boot time. This has been improved somewhat with
+the INT10 support that is used by most drivers (which allows secondary card
+to be "soft-booted", but in some cases there are other issues that still need
+to be resolved. Some combinations can be made to work better by changing
+which card is the primary card (either by using a different PCI slot, or by
+changing the system BIOS's preference for the primary card).
+
+4.6 Xinerama
+
+Xinerama is an X server extension that allows multiple physical screens to
+behave as a single screen. With traditional multi-head in X11, windows can-
+not span or cross physical screens. Xinerama removes this limitation. Xin-
+erama does, however, require that the physical screens all have the same root
+depth, so it isn't possible, for example, to use an 8-bit screen together
+with a 16-bit screen in Xinerama mode.
+
+Xinerama is not enabled by default, and can be enabled with the +xinerama
+command line option for the X server.
+
+Xinerama was included with X11R6.4. The version included in X11R6.9/X11R7.0
+was completely rewritten for improved performance and correctness.
+
+Known problems:
+
+ o Most window managers are not Xinerama-aware, and so some operations like
+ window placement and resizing might not behave in an ideal way. This is
+ an issue that needs to be dealt with in the individual window managers,
+ and isn't specifically an X server problem.
+
+4.7 DGA version 2
+
+DGA 2.0 is included in 6.9/7.0. Documentation for the client libraries can
+be found in the XDGA(3) man page. A good degree of backwards compatibility
+with version 1.0 is provided.
+
+4.8 DDC
+
+The VESA Display Data Channel (DDC[tm]) standard allows the monitor to tell
+the video card (or on some cases the computer directly) about itself; partic-
+ularly the supported screen resolutions and refresh rates.
+
+Partial or complete DDC support is available in most of the video drivers.
+DDC is enabled by default, but can be disabled with a "Device" section entry:
+Option "NoDDC". We have support for DDC versions 1 and 2; these can be dis-
+abled independently with Option "NoDDC1" and Option "NoDDC2".
+
+At startup the server prints out DDC information from the display, and can
+use this information to set the default monitor parameters, or to warn about
+monitor sync limits if those provided in the configuration file don't match
+those that are detected.
+
+4.8.1 Changed behavior caused by DDC.
+
+Several drivers uses DDC information to set the screen size and pitch. This
+can be overridden by explicitly resetting it to the and non-DDC default value
+75 with the -dpi 75 command line option for the X server, or by specifying
+appropriate screen dimensions with the "DisplaySize" keyword in the "Monitor"
+section of the config file.
+
+4.9 GLX and the Direct Rendering Infrastructure (DRI)
+
+Direct rendered OpenGL support is provided for several hardware platforms by
+the Direct Rendering Infrastructure (DRI). Further information about DRI can
+be found at the DRI Project's web site <URL:http://dri.sf.net/>. The 3D core
+rendering component is provided by Mesa <URL:http://www.mesa3d.org>.
+
+4.10 XVideo Extension (Xv)
+
+The XVideo extension is supported in X11R6.7.x. An XvQueryPortAttributes
+function has been added as well as support for XvImages. XvImages are XIm-
+ages in alternate color spaces such as YUV and can be passed to the server
+through shared memory segments. This allows clients to display YUV data with
+high quality hardware scaling and filtering.
+
+4.11 X Rendering Extension (Render)
+
+The X Rendering extension provides a 2D rendering model that more closely
+matches application demands and hardware capabilities. It provides a render-
+ing model derived from Plan 9 based on Porter/Duff image composition rather
+than binary raster operations.
+
+Using simple compositing operators provided by most hardware, Render can draw
+anti-aliased text and geometric objects as well as perform translucent image
+overlays and other image operations not possible with the core X rendering
+system.
+
+Unlike the core protocol, Render provides no font support for applications,
+rather it allows applications to upload glyphs for display on the screen.
+This allows the client greater control over text rendering and complete
+access to the available font information while still providing hardware
+acceleration. The Xft library provides font access for Render applications.
+
+4.11.1 The Xft Library
+
+On the client side, the Xft library provides access to fonts for applications
+using the FreeType library, version 2. One important thing to note is that
+Xft uses the vertical size of the monitor to compute accurate pixel sizes for
+provided point sizes; if your monitor doesn't provide accurate information
+via DDC, you may want to add that information to xorg.conf.
+
+To allow a graceful transition for applications moving from core text render-
+ing to the Render extension, Xft can use either the core rendering requests
+or the Render extension for text. See the section on FreeType support in Xft
+for instructions on configuring X11R6.9/X11R7.0 to use an existing FreeType
+installation.
+
+The Xft library uses configuration files, /etc/fonts/fonts.conf and
+/etc/fonts/local.conf, which contains information about which directories
+contain font files and also provides a sophisticated font aliasing mechanism.
+Documentation for that file is included in the Xft(3) man page.
+
+4.11.2 Application Support For Anti-Aliased Text
+
+Only four applications have been modified in X11R6.9/X11R7.0 to work with the
+Render extension and the Xft and FreeType libraries to provide anti-aliased
+text: xterm, xditview, x11perf and xclock. Migration of other applications
+may occur in future releases.
+
+By default, xterm uses core fonts through the standard core API. It has a
+command line option and associated resource to direct it to use Xft instead:
+
+ o -fa family / .VT100.faceName: family. Selects the font family to use.
+
+Xditview will use Xft instead of the core API by default. X11perf includes
+tests to measure the performance of text rendered in three ways, anti-
+aliased, anti-aliased with sub-pixel sampling and regular chunky text, but
+through the Render extension, a path which is currently somewhat slower than
+core text.
+
+Xclock uses the Render extension to draw the analog face and shares the -fa
+option and faceName resources with xterm to select a font for the digital
+mode.
+
+4.12 Other extensions
+
+The XFree86-Misc extension has not been fully ported to the new server archi-
+tecture yet. This should be completed in a future release.
+
+The XFree86-VidModeExtension extension has been updated, and mostly ported to
+the new server architecture. The area of mode validation needs further work,
+and the extension should be used with care. This extension has support for
+changing the gamma setting at run-time, for modes where this is possible.
+The xgamma utility makes use of this feature. Compatibility with the 3.3.x
+version of the extension is provided. The missing parts of this extension
+and some new features should be completed in a future release.
+
+4.13 xedit
+
+Xedit has several new features, including:
+
+ o An embedded lisp interpreter that allows easier extension of the editor.
+
+ o Several new syntax highlight modes, and indentation rules for C and
+ Lisp.
+
+ o Flexible search/replace interface that allows regex matches.
+
+ o Please refer to xedit(1) for more details.
+
+ o XPrint support.
+
+4.14 Font support
+
+Details about the font support in X11R6.9.x/X11R7.0.x can be found in the
+README.fonts document.
+
+4.15 TrueType support
+
+X11R6.7 came with two TrueType backends. The functionality from the `X-True-
+Type' backend has been integrated into the `FreeType' backend which is
+designed to transparently support all of the functionality from the `X-True-
+Type' backend with the exception of the font encoding libraries; the
+`FreeType' backend uses only the fontenc-based encoding system .
+
+4.16 CID font support
+
+Support for CID-keyed fonts is included in X11R6.9/X11R7.0 The CID-keyed font
+format was designed by Adobe Systems <URL:http://www.adobe.com> for fonts
+with large character sets. The CID-keyed font support in X11R6.9/X11R7.0 was
+donated by SGI <URL:http://www.sgi.com>. See the LICENSE document for a copy
+of the CID Font Code Public License.
+
+4.17 Internationalisation of the scalable font backends
+
+X11R6.9/X11R7.0 has a ``fontenc'' layer to allow the scalable font backends
+to use a common method of font re-encoding. This re-encoding makes it possi-
+ble to uses fonts in encodings other than their their native encoding. This
+layer is used by the Type1 and FreeType backends.
+
+4.18 Large font optimisation
+
+The glyph metrics array, which all the X clients using a particular font have
+access to, is placed in shared memory, so as to reduce redundant memory con-
+sumption. For non-local clients, the glyph metrics array is transmitted in a
+compressed format.
+
+4.19 Unicode/ISO 10646 support
+
+What is included in X11R6.9/X11R7.0
+
+ o All ``-misc-fixed-*'' BDF fonts are now available in the ISO10646-1
+ encoding and cover at least the 614 characters found in ISO
+ 8859-{1-5,7-10,14,15}, CP1252, and MES-1. The non-bold fonts also cover
+ all Windows Glyph List 4 (WGL4) characters, including those found in all
+ 8-bit MS-DOS/Windows code pages. The 8-bit variants of the ``-misc-
+ fixed-*'' BDF fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
+ automatically generated from the new ISO10646-1 master fonts.
+
+ o Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a comprehensive
+ Unicode repertoire of over 3000 characters including all Latin, Greek,
+ Cyrillic, Armenian, Gregorian, Hebrew, IPA, and APL characters, plus
+ numerous scientific, typographic, technical, and backwards-compatibility
+ symbols. Some of these fonts also cover Arabic, Ethiopian, Thai,
+ Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13 font there is
+ now a 12x13ja Kanji extension and for the 9x18 font there is a 18x18ja
+ Kanji/Han/Hangul extension, which covers all ISO-2022-JP-2 (RFC 1554)
+ characters. The 9x18 font can also be used to implement simple combining
+ characters by accent overstriking. For more information, read Markus
+ Kuhn's UTF-8 and Unicode FAQ <URL:http://www.cl.cam.ac.uk/~mgk25/uni-
+ code.html>.
+
+ o Mark Leisher's ClearlyU proportional font (similar to Computer Modern).
+
+ o ISO 10646/Unicode UTF-8 Level 1 support added to xterm (enabled with the
+ -u8 option).
+
+ o The Freetype backend (the "freetype" module) supports Unicode-encoded
+ fonts.
+
+4.20 Xlib Compose file support and extensions
+
+A more flexible Compose file processing system was added to Xlib in
+X11R6.9/X11R7.0. The compose file is searched for in the following order:
+
+ 1. If the environment variable $XCOMPOSEFILE is set, its value is used as
+ the name of the Compose file.
+
+ 2. If the user's home directory has a file named ".XCompose", it is used
+ as the Compose file.
+
+ 3. The old method is used, and the compose file is "<xlocaledir>/<locale-
+ name>/Compose".
+
+Compose files can now use an "include" instruction. This allows local modi-
+fications to be made to existing compose files without including all of the
+content directly. For example, the system's iso8859-1 compose file can be
+included with a line like this:
+
+ include "/usr/X11R6/lib/X11/locale/iso8859-1/Compose"
+
+There are two substitutions that can be made in the file name of the include
+instruction. %H expands to the user's home directory (the $HOME environment
+variable), and %L expands to the name of the locale specific Compose file
+(i.e., "<xlocaledir>/<localename>/Compose").
+
+For example, you can include in your compose file the default Compose file by
+using:
+
+ include "%L"
+
+and then rewrite only the few rules that you need to change. New compose
+rules can be added, and previous ones replaced.
+
+Finally, it is no longer necessary to specify in the right part of a rule a
+locale encoded string in addition to the keysym name. If the string is omit-
+ted, Xlib figures it out from the keysym according to the current locale.
+I.e., if a rule looks like:
+
+ <dead_grave> <A> : "\300" Agrave
+
+the result of the composition is always the letter with the "\300" code. But
+if the rule is:
+
+ <dead_grave> <A> : Agrave
+
+the result depends on how Agrave is mapped in the current locale.
+
+4.21 Bitstream Vera fonts
+
+X11R6.9 includes the Bitstream Vera family of typefaces in TrueType format.
+This family includes the ``Bitstream Vera Sans'', ``Bitstream Vera Sans
+Mono'' and ``Bitstream Vera Serif'' in Roman and Bold varients as well as the
+``Bitstream Vera Sans'' and ``Bitstream Vera Sans Mono'' in Oblique and Bold
+Oblique. These fonts include all of the glyphs needed for ISO 8859 parts 1
+9 and 15.
+
+The license terms for the Vera fonts are inclued in the file COPYRIGHT.Vera>.
+
+4.22 Luxi fonts from Bigelow and Holmes
+
+The X distribution includes the ``Luxi'' family of Type 1 fonts and TrueType
+fonts. This family consists of the fonts ``Luxi Serif'', ``Luxi Sans'' and
+``Luxi Mono'' in Roman, oblique, bold and bold oblique variants. The True-
+Type version have glyphs covering the basic ASCII Unicode range, the Latin 1
+range, as well as the Extended Latin range and some additional punctuation
+characters. In particular, these fonts include all the glyphs needed for
+ISO 8859 parts 1, 2, 3, 4, 9, 13 and 15, as well as all the glyphs in the
+Adobe Standard encoding and the Windows 3.1 character set.
+
+The glyph coverage of the Type 1 versions is somewhat reduced, and only cov-
+ers ISO 8859 parts 1, 2 and 15 as well as the Adobe Standard encoding.
+
+The Luxi fonts are original designs by Kris Holmes and Charles Bigelow from
+Bigelow and Holmes Inc., who developed the Luxi typeface designs in Ikarus
+digital format. URW++ Design and Development GmbH converted the Ikarus for-
+mat fonts to TrueType and Type 1 font programs and implemented the grid-fit-
+ting "hints" and kerning tables in the Luxi fonts.
+
+The license terms for the Luxi fonts are included in the file `COPYRIGHT.BH',
+as well as in the License document. For further information, please contact
+<design@bigelowandholmes.com> or <info@urwpp.de>, or consult the URW++ web
+site <URL:http://www.urwpp.de>.
+
+5. Miscellaneous
+
+This section describes other items of note for the X11R6.9/X11R7.0 release.
+
+5.1 Legacy keyboard driver phase-out
+
+The legacy keyboard driver is no longer compiled into the X server by default
+on certain platforms (including Linux). The newer kbd driver replaces the
+older built-in driver. It is suggested that, if the X server says that it
+cannot load the keyboard driver, then the xorg.conf file should be updated to
+use the new kbd driver, which can be done by changing the Driver line in the
+InputDevice section. For example,
+
+ Section "InputDevice"
+ Identifier "Keyboard0"
+ Driver "kbd"
+ EndSection
+
+Note that the driver name is case-sensitive.
+
+5.2 Socket directory ownership and permissions
+
+The socket directories created in /tmp are now required to be owned by root
+and have their sticky-bit set. If the permissions are not set correctly, the
+component using this directory will print an error message and fail to start.
+Common socket directories that are known to be affected include:
+
+ /tmp/.font-unix
+ /tmp/.ICE-unix
+ /tmp/.X11-unix
+
+These directories are used by the font server, xfs, applications using the
+Inter-Client Exchange protocol (ICE) and the X server, respectively.
+
+There are several solutions to the problem of when to create these directo-
+ries. They could be created at install time by the system's installer if the
+/tmp dir is persistent. They could be created at boot time by the system's
+boot scripts (e.g., the init.d scripts). Or, they could be created by PAM
+modules at service startup or user login time.
+
+The solution chosen is platform dependent, and the system administrator
+should be able to handle creating those directories on any systems that do
+not have the correct ownership or permissions.
+
+5.3 Composite exposes extra visuals
+
+When the Composite extension is enabled via xorg.conf or the command line, a
+new visual is created. This visual is different from the other visuals used
+by X applications in that it includes an alpha component. It is used by the
+compositing manager and other Composite aware applications.
+
+Most X applications ignore this visual since it is not useful to them; how-
+ever some applications mistakenly try to use it, which will cause them to
+fail. An environment variable, XLIB_SKIP_ARGB_VISUALS, was added to the X11
+library to hide this visual from applications that mistakenly try to use it.
+If an application fails only when the Composite is enabled, try setting this
+environment variable before starting the application.
+
+Since Composite is not enabled by default, it is not expected that this issue
+will be visible to most users.
+
+6. Deprecated components and removal plans
+
+This section lists current plans for removal of obsolete or deprecated compo-
+nents in the X.Org releases. As our releases are open source, users who con-
+tinue to require these can find the source in previous releases and continue
+to use these, but the X.Org Foundation and its volunteers have decided the
+burden of continued maintenance and distribution in the core X11 releases
+outweighs the benefits of doing so. In some cases, this is simply because no
+one has volunteered to do continued maintenance, so if software is listed
+here that you need, you can contact <xorg@lists.freedesktop.org> to volunteer
+to take over maintainership, either inside or outside of the Xorg release
+process.
+
+ Display Postscript (DPS)
+ The DPS software is included and built by default (except as
+ noted in README.dps) in the X.Org X11R6.8 release series. The
+ software will be included, but not built unless specifically con-
+ figured by the builder, in the X.Org X11R6.9 release series. At
+ this time, X.Org does not plan to include any of the DPS software
+ in X11R7.0 or later releases. For more information, see xc/pro-
+ grams/Xserver/hw/xfree86/doc/README.dps in the X.Org source
+ release.
+
+7. Attributions/Acknowledgements/Credits
+
+This section lists the credits for the X11R6.9/X11R7.0 release. For a more
+detailed breakdown, refer to the ChangeLog file in the X.Org source tree, the
+ChangeLog's in or the 'cvs log' information for individual source files."
+
+ These people contributed in some way to X11R6.9/X11R7.0
+ Kenneth Aafly, Dave Airlie, Andrew C. Aitchison, Antti Ajanki,
+ Stuart Anderson, Eric Anholt, Xavier Bachelot, Joshua Baergen,
+ Terry Barnaby, Jesse Barnes, Michael Banck, Olivier Baudron,
+ Dominik Behr, J. Scott Berg, Cedric Berger, Donnie Berkholz,
+ Thomas Biege, Billy Biggs, Jrg Billeter, Dmitry Bolkhovitanov,
+ Andy Bowers, Peter Breitenlohner, Kevin Brosius, Rob Brown, Jan
+ Brunner, Andy Burrows, Lennert Buytenhek, Neil Campbell, Pierre
+ Chifflier, Juliusz Chroboczek, Andrew Church, David M. Clay,
+ James Cloos, Alan Coopersmith, Jay Cotton, Bill Crawford, Grze-
+ gorz Dbrowski, Michel Dnzer, Kevin DeKorte, Leif Delgass,
+ Vladimir Dergachev, Alex Deucher, Stefaan DeRoeck, Bogdan Dia-
+ conescu, Thomas Dickey, Fabio M. Di Nitto, Stefan Dirsch, Dima
+ Dorfman, Egbert Eich, Hannes Eriksson, Chris Evans, Mike Fabian,
+ Helmut Fahrion, Micha Feigin, Werner Fink, Jordan Frank, Fabian
+ Franz, Matthias Frlich, George Fufutos, Bdale Garbee, Jim Get-
+ tys, Chris Gilbert, Jerome Glisse, Ortwin Glck, Shelley Gong,
+ Michael Gor, Alexander Gottwald, Peter Grehan, Nicolai Haehnle,
+ Bruno Haible, Miroslav Halas, Mike A. Harris, Colin Harrison,
+ John Harper, Olli Helenius, Bjorn Helgaas, Thomas Hellstrm, Olaf
+ Hering, Matthieu Herrb, Benjamin Herrenschmidt, Ivor Hewitt,
+ Masakazu HIGAKI, Leon Ho, Jay Hobson, Kristian Hgsberg, Fredrick
+ Hglund, Gerte Hoogewerf, Matthias Hopf, Tony Houghton, Alan
+ Hourihane, Jeremy Huddleston, Falk Hueffner, Adam Jackson, Kean
+ Johnston, Nicolas Joly, Dave Jones, Anders Kaseorg, Egmont
+ Koblinger, Greg Kroah-Hartman, Felix Kuehling, Markus Kuhn, Klaus
+ Kusche, Vladimir Kushnir, Marc Aurele La France, Julien Lafon,
+ Pierre Lalet, Philip Langdale, Sam Lau, Nolan Leake, Germain Le-
+ Chapelain, Chris Lee, Allen Leinwand, Vincent Le Ligeour,
+ Jonathan Lennox, Dejan Lesjak, Terry Lewis, Sophia Li, Vedran
+ Ljubovic, Andreas Luik, Lubos Lunak, Torrey T. Lyons, Stephen
+ Kennedy, Mark Kettenis, Mark Kilgard, Min Sik Kim, Lars Knoll,
+ Egmont Koblinger, David Krause, Stuart Kreitman, Tomohiro
+ KUBOITA, Eric Kunze, Paul Mackerras, Roland Mainz, Stephane
+ Marchesin, Kevin E. Martin, David Martnez Moreno, Ferris
+ McCormick, Mark McLoughlin, Dan McNichol, Marcus Meissner, Fred-
+ erico Mena-Quintero, Robert Millan, David S. Miller, Srgio
+ Montero Basto, Thomas J. Moore, Jeff Muizelaar, Shrijeet Mukher-
+ jee, ISHIKAWA Mutsumi, Gustavo Noronha Silva, Krzysztof Nowicki,
+ Mike Owens, Keith Packard, Drew Parsons, Brian Paul, Diego Pet-
+ ten, Sren Sandmann Pedersen, Pieter Peers, Hong Bo Peng, Rune
+ Petersen, Daphne Pfister, Andrew Pimlott, Aaron Plattner, Bill
+ Randle, Joris van Rantwijk, Anuradha Ratnaweera, Jeremy C. Reed,
+ Thomas Reifferscheid, Alex Reisen, Bernhard Reiter, Andreas
+ Robinson, Branden Robinson, Felipe Rodriguez, Ian Romanick, Alex
+ Romosan, Bernhard Rosenkraenzer, Jeroen Ruigrok, Zack Rusin, Leo
+ Savernik, Christophe Saout, Marcus Schaefer, Roland Scheidegger,
+ David Schleef, Michael Schroeder, Andreas Schuldei, Andreas
+ Schwab, Stanislaw Skowronek, Jon Smirl, Jeff Smith, Jakub Sta-
+ chowshi, Sam Stephenson, Tobis Stoeckmann, Daniel Stone, Aivils
+ Stoss, James Su, Ienup Sung, Alan Swanson, Aapo Tahkola,
+ Hidetoshi Tajima, Owen Taylor, Bob Terek, Samuel Thibault, Sergey
+ Tikhonov, Simon Toedt, Yuri Vasilevski, Luc Verhaegen, Mike
+ Verona, Ronny V. Vindenes, Mark Vojkovich, Detlef Vollman,
+ Stphane VOLTZ, Jochen Voss, Derek Wang, Tim Waugh, Keith
+ Whitwell, Nathan J. Williams, Alex Williamson, Thomas Winis-
+ chhofer, David Wong, David Woodhouse, Carl Worth, Michael
+ Yaroslavtsev, Tim Yamin, Cha Young-Ho, Hui Yu, Austin Yuan, Henry
+ Zhao
+
+The X Window System has been a collaborative effort from its inception. Our
+apologies for anyone or organization inadvertently overlooked. Many individ-
+uals (including major contributors) who worked on X are represented by their
+employers in this list.
+
+ This product includes software developed by:
+ Paul Anderson, Michael Bax, Jehan Bing, Peter Breitenlohner, Alan
+ Coopersmith, Egbert Eich, John Dennis, Fabrizio Gennari, Jim Get-
+ tys, Alexander Gottwald, Ralf Habacker Mike Harris, Matthieu
+ Herrb, Alan Hourihane, Harold L Hunt II, Elliot Lee, Jeremy Katz,
+ Kaleb Keithley, Stuart Kreitman, Andreas Luik, Torrey Lyons,
+ Roland Mainz, Kevin E. Martin, Takuma Murakami, Kensuke Mat-
+ suzaki, Keith Packard, Ivan Pascal, Earle F. Philhower III, Ben-
+ jamin Rienfenstahl, Leon Shiman, Toshimitsu Tanaka, Nicholas
+ Wourms.
+
+ 2d3d Inc., 3Dlabs Inc. Ltd., Aaron Plattner, Adam de Boor, Adam
+ Jackson, Adobe Systems Inc., After X-TT Project, AGE Logic Inc.,
+ Alan Coopersmith, Alan Cox, Alan Hourihane, Alexander Gottwald,
+ Alex Deucher, Anders Carlsson, Andreas Luik, Andreas Monitzer,
+ Andreas Robinson, Andrew C Aitchison, Andy Ritger, Angus Lees,
+ Ani Joshi, Anton Zioviev, Apollo Computer Inc., Apple Computer
+ Inc., Ares Software Corp., AT&T Inc., ATI Technologies Inc., BEAM
+ Ltd., Ben Skeggs, Benjamin Herrenschmidt, Benjamin Rienfenstahl,
+ Bigelow and Holmes, Bill Reynolds, Bitstream Inc., Bogdan Dia-
+ conescu, Branden Robinson, Brian Fundakowski Feldman, Brian
+ Goines, Brian Paul, Bruno Haible, Bryan Stine, Catharon Produc-
+ tions Inc., Charles Murcko, Chen Xiangyang, Chisato Yamauchi,
+ Chris Constello, Christian Zietz, Cognition Corp., Compaq Com-
+ puter Corporation, Concurrent Computer Corporation, Conectiva
+ S.A., Corin Anderson, Craig Struble, Daewoo Electronics Co. Ltd.,
+ Dale Schumacher, Damien Miller, Daniel Berrange, Daniel Borca,
+ Daniel Stone, Daniver Limited, Daryll Strauss, Data General Cor-
+ poration, Dave Airlie, David Bateman, David Dawes, David E. Wex-
+ elblat, David Holland, David J. McKay, David McCullough, David
+ Mosberger-Tang, David S. Miller, Davor Matic, Deron Johnson,
+ Digeo Inc., Digital Equipment Corporation, Dirk Hohndel, Doug
+ Anson, Dmitry Golubev, Earle F. Philhower III, Edouard TISSERANT,
+ Eduardo Horvath, Egbert Eich, Elliot Lee, Eric Anholt, Eric For-
+ tune, Eric Sunshine, Erik Fortune, Erik Nygren, Evans & Suther-
+ land Computer Corporation, Fabio Massimo Di Nitto, Fabrizio Gen-
+ nari, Felix Kuehling, Finn Thoegersen, Francesco Zappa Nardelli,
+ Frank C. Earl, Frederic Lepied, Free Software Foundation Inc.,
+ Fujitsu Limited, Fujitsu Open Systems Solutions Inc., Fuji Xerox
+ Co. Ltd., Geert Uytterhoeven, Gerrit Jan Akkerman, Gerry Toll,
+ Glenn G. Lai, GNOME Foundation, Go Watanabe, Greg Kroah-Hartman,
+ Greg Parker, Gregory Mokhin, GROUPE BULL, Guy Martin, Hans Oey,
+ Harald Koenig, Harm Hanemaayer, Harold L Hunt II, Harry Langen-
+ bacher, Henry A. Worth, Hewlett-Packard Company, Hitachi Ltd,
+ Holger Veit, Howard Greenwell, Hummingbird Communications Ltd.,
+ IBM Corporation, Intel Corporation, INTERACTIVE Systems Corpora-
+ tion, International Business Machines Corp., Itai Nahshon, Ivan
+ Kokshaysky, Ivan Pascal, Jakub Jelinek, James Tsillas, Jason
+ Bacon, Jean-loup Gailly, Jeff Hartmann, Jeff Kirk, Jeffrey Hsu,
+ Jehan Bing, Jeremy Katz, Jerome Glisse, Jim Gettys, Jim Tsillas,
+ John Dennis, John Harper, John Heasley, Jon Block, Jon Smirl, Jon
+ Tombs, Jorge Delgado, Jos Fonseca, Joseph Friedman, Joseph V.
+ Moss, Juliusz Chroboczek, Jyunji Takagi, Kaleb Keithley, Kazushi
+ (Jam) Marukawa, Kazuyuki (ikko-) Okamoto, Kean Johnston, Keith
+ Packard, Keith Whitwell, Kensuke Matsuzaki, Kristian Hgsberg,
+ Larry Wall, Lawrence Berkeley Laboratory, Leif Delgass, Lennart
+ Augustsson, Leon Shiman, Lexmark International Inc., Linus Tor-
+ valds, Luc Verhaegen, Machine Vision Holdings Inc., Manfred
+ Brands, Marc Aurele La France Mark Adler, Mark J. Kilgard, Mark
+ Leisher, Mark Smulders, Mark Vojkovich, Marvin Solomon, Mas-
+ sachusetts Institute Of Technology, Matrox Graphics, Matthew
+ Grossman, Matthieu Herrb, Metro Link Inc., Michael Bax, Michael
+ H. Schimek, Michael P. Marking, Michael Schimek, Michael Smith,
+ Michel Daenzer, Mike A. Harris, Ming Yu, MIPS Computer Systems
+ Inc., National Semiconductor, NCR Corporation Inc., Netscape Com-
+ munications Corporation, Network Computing Devices Inc., Nicholas
+ Miell, Nicholas Wourms, Nicolai Haehnle, Noah Levitt, Nolan
+ Leake, Novell Inc., Nozomi YTOW, NTT Software Corporation, Number
+ Nine Computer Corp., Number Nine Visual Technologies, NVIDIA
+ Corp., Oivier Danet, Oki Technosystems Laboratory Inc., OMRON
+ Corporation, Open Software Foundation, Orest Zborowski, Owen Tay-
+ lor, Pablo Saratxaga, Panacea Inc., Panagiotis Tsirigotis, Paolo
+ Severini, Pascal Haible, Patrick Lecoanet, Patrick Lerda, Paul
+ Anderson, Paul Elliott, Paul Mackerras, Peter Breitenlohner,
+ Peter Kunzmann, Peter Trattler, Philip Homburg, Precision Insight
+ Inc., Prentice Hall, Quarterdeck Office Systems, Ralf Habacker
+ Randy Hendry, Ranier Keller, Red Hat Inc., Regents of the Univer-
+ sity of California, Regis Cridlig, Rene Cougnenc, Richard A.
+ Hecker, Richard Burdick, Rich Murphey, Rickard E. Faith, Rik
+ Faith, Robert Chesler, Robert Millan, Robert V. Baron, Robin Cut-
+ shaw, Roland Mainz, Ronny Vindenes, Russ Blaine, Ryan Breen, Ryan
+ Lortie, Ryan Underwood, S3 Graphics Inc., Sam Leffler, SciTech
+ Software, Scott Laird, Sebastien Marineau, Shigehiro Nomura, Sho-
+ Graphics Inc., Shunsuke Akiyama, Silicon Graphics Computer Sys-
+ tems Inc., Silicon Integrated Systems Corp Inc., Silicon Motion
+ Inc., Simon P. Cooper, Snitily Graphics Consulting Services, Sony
+ Corporation, Sren Sandmann, SRI, Stanislav Brabec, Stefan
+ Dirsch, Stephan Lang, Stephane Marchesin, Steven Lang, Stuart
+ Kreitman, Sun Microsystems Inc., SunSoft Inc., SuSE Inc, Sven
+ Luther, T. A. Phelps, Takis Psarogiannakopoulos, Takuma Murakami,
+ Takuya SHIOZAKI, Tektronix Inc., The DOS-EMU-Development-Team,
+ The Institute of Software Academia Sinica, The NetBSD Foundation,
+ Theo de Raadt, Theodore Ts'o, The Open Group, The Open Software
+ Foundation, The Regents of the University of California, The
+ Santa Cruz Operation Inc., The Weather Channel Inc., The X Con-
+ sortium, The XFree86 Project Inc., Thomas E. Dickey, Thomas G.
+ Lane, Thomas Hellstrm, Thomas Mueller, Thomas Roell, Thomas
+ Thanner, Thomas Winischhofer, Thomas Wolfram, Thorsten.Ohl, Tiago
+ Gons, Todd C. Miller, Tomohiro KUBOTA, Torrey Lyons, Torrey T.
+ Lyons, TOSHIBA Corp., Toshimitsu Tanaka, Travis Tilley, Trolltech
+ AS, Tungsten Graphics Inc., Tuomas J. Lukka, Ty Sarna, UCHIYAMA
+ Yasushi, Unicode Inc., UniSoft Group Limited, University of Utah,
+ University of Wisconsin, UNIX System Laboratories Inc., URW++
+ GmbH, VA Linux Systems, VIA Technologies Inc., Video Electronics
+ Standard, VMware Inc., Vrije Universiteit, Wittawat Yamwong, Wyse
+ Technology Inc., X Consortium, Xi Graphics Inc., X-Oz Technolo-
+ gies, X-TrueType Server Project and their contributors, Yu Shao.
+
+ This product includes software developed by The XFree86 Project,
+ Inc (http://www.xfree86.org/) and its contributors.
+
+ This produce includes software that is based in part of the work
+ of the FreeType Team (http://www.freetype.org).
+
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+
+ This product includes software developed by Christopher G.
+ Demetriou.
+
+ This product includes software developed by the NetBSD Founda-
+ tion, Inc. and its contributors.
+
+ This product includes software developed by the X-Oz Technologies
+ and its contributors.
+
+
+$XdotOrg: xc/RELNOTES,v 1.10 2005/12/21 05:39:04 kem Exp $
diff --git a/doc/_attic_/XOrg69_documentation_files/nx-X11_extras_README b/doc/_attic_/XOrg69_documentation_files/nx-X11_extras_README
new file mode 100644
index 000000000..295910e73
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/nx-X11_extras_README
@@ -0,0 +1,17 @@
+This directory (xc/extras) contains packages that are maintained outside
+of XFree86, but which are included with the base XFree86 distribution.
+Each such package should be imported on its own vendor branch (see
+the README.XFree86 file in each subdirectory for specific 'cvs import'
+details). 'XFree86' RCS ident lines should only be added to files that
+have XFree86-specific changes. Binary files should not normally be
+imported.
+
+Packages included here must be redistributable under conditions compatible
+with the XFree86 redistribution conditions (see
+xc/programs/Xserver/hw/xfree86/doc/COPYRIGHT for examples of compatible
+licences).
+
+
+
+$XFree86: xc/extras/README,v 1.1 1998/08/29 08:01:42 dawes Exp $
+
diff --git a/doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_COPYRIGHT b/doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_COPYRIGHT
new file mode 100644
index 000000000..ccc162664
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_COPYRIGHT
@@ -0,0 +1,39 @@
+This notice applies to the files in this directory. They are taken from
+the libiconv-1.1 package, which is covered by the LGPL license. The files
+in this directory have been placed under the following copyright, with
+permission from the Free Software Foundation.
+
+
+Copyright (c) 1999-2000 Free Software Foundation, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+FREE SOFTWARE FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the Free Software Foundation
+shall not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization from the
+Free Software Foundation.
+
+
+Notes:
+
+1. This copyright applies only to the files in this directory, and not to
+the remaining files in libiconv.
+
+2. The Free Software Foundation does not encourage the use of the above
+license for newly written software.
+
diff --git a/doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_README b/doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_README
new file mode 100644
index 000000000..5ea4f0566
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/nx-X11_lib_X11_lcUniConv_README
@@ -0,0 +1,12 @@
+$XFree86$
+
+The files in this directory are taken from the libiconv-1.1 package.
+
+The *.h files were generated from tables (mostly from ftp.unicode.org) using
+the programs '8bit_tab_to_h.c' and 'cjk_tab_to_h.c'. On some of them, further
+optimizations were applied by hand.
+
+If you find a bug in these files, instead of modifying them in XFree86
+and let it diverge from libiconv, please notify the libiconv maintainer
+(currently <bruno@clisp.org>) so he can fix both in synch.
+
diff --git a/doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_BuiltInAtoms b/doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_BuiltInAtoms
new file mode 100644
index 000000000..910c62706
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_BuiltInAtoms
@@ -0,0 +1,329 @@
+File: .../x11/server/dix/BuiltInAtoms
+
+This file is of a fixed format and is used to generate both the file
+include/XAtom.h and dix/initatoms.c. Neither of those files should be
+edited directly. Changing the atoms in this file, or even the order in
+which they occur, is equivalent to forcing a new (minor) version number
+on the server. Take care.
+
+The format of the file is that each built in atom starts in column 1
+with no text, other than spaces and tabs, on that line other than a
+mandatory trailing "@" at the end of the line. For each atom (Foo)
+below the defines will be of the form
+ #define XA_Foo <n>
+and the string value of the atom will be "Foo".
+
+The comment lines in this file are not guaranteed to be accurate. To see the
+current truth, look at the Xlib documentation as well as the protocol spec.
+
+Atoms occur in five distinct name spaces within the protocol. Any particular
+atom may or may not have some client interpretation within each of the name
+spaces. For each of the built in atoms, the intended semantics and the space
+within which it is defined is indicated.
+
+Those name spaces are
+ Property names
+ Property types
+ Selections
+ Font properties
+ Type of a ClientMessage event (none built into server)
+
+For the font properties mentioned here, see the spec for more information.
+
+ -- Selections --
+
+PRIMARY @
+ Selection.
+SECONDARY @
+ Selection.
+
+ -- Property types and names --
+
+ARC @
+ Property type:
+ x, y: INT16
+ width, height: CARD16,
+ angle1, angle2: INT16
+ATOM @
+ Property type:
+ atom: ATOM
+BITMAP @
+ Property type:
+ bitmap: PIXMAP
+ This is asserted to be of depth 1.
+CARDINAL @
+ Property type:
+ card: CARD32 or CARD16 or CARD8
+ the datum size is dependent on the property format
+COLORMAP @
+ Property type:
+ colormap: COLORMAP
+CURSOR @
+ Property type:
+ cursor: CURSOR
+CUT_BUFFER0 @
+CUT_BUFFER1 @
+CUT_BUFFER2 @
+CUT_BUFFER3 @
+CUT_BUFFER4 @
+CUT_BUFFER5 @
+CUT_BUFFER6 @
+CUT_BUFFER7 @
+ Property name: (type: STRING)
+ Used to implement cut buffer ring, in particular Andrew uses
+ this mechanism. Anyone else using this sort of IPC mechanism
+ should use these properties.
+
+ Data is normally fetched and stored out of CUT_BUFFER0; the
+ RotateProperties request is used to rotate these buffers.
+DRAWABLE @
+ Property type:
+ drawable: DRAWABLE
+FONT @
+ Property type:
+ font: FONT
+INTEGER @
+ Property type:
+ card: INT32 or INT16 or INT8
+ the datum size is dependent on the property format
+PIXMAP @
+ Property type:
+ pixmap: PIXMAP
+POINT @
+ Property type:
+ x, y: INT16
+RECTANGLE @
+ Property type:
+ x, y: INT16
+ width, height: CARD16
+RESOURCE_MANAGER @
+ Property name: (type: STRING)
+ Contents of the user's resource manager data base.
+RGB_COLOR_MAP @
+ Property type:
+ colormap: COLORMAP
+ red-max: CARD32
+ red-mult: CARD32
+ green-max: CARD32
+ green-mult: CARD32
+ blue-max: CARD32
+ blue-mult: CARD32
+ base-pixel: CARD32
+
+ The fields `red_max', `green_max', and `blue_max' give the maximum
+ red, green, and blue values, respectively. Each color
+ coefficient ranges from 0 to its max, inclusive. For example,
+ a common colormap allocation is 3/3/2: 3 planes for red, 3
+ planes for green, and 2 planes for blue. Such a colormap would
+ have red_max == 7, green_max = 7, and blue_max = 3. An alternate
+ allocation that uses only 216 colors is red_max = 5, green_max =
+ 5, and blue_max = 5.
+
+ The fields `red_mult', `green_mult', and `blue_mult' give the
+ scale factors used to compose a full pixel value. (See next
+ paragraph.) For a 3/3/2 allocation red_mult might be 32,
+ green_mult might be 4, and blue_mult might be 1. For a
+ 6-colors-each allocation, red_mult might be 36, green_mult might
+ be 6, and blue_mult might be 1.
+
+ The field `base_pixel' gives the base pixel value used to
+ compose a full pixel value. Normally base_pixel is obtained
+ from a call to XAllocColorPlanes(). Given integer red, green,
+ and blue coefficients in their appropriate ranges, one can
+ compute a corresponding pixel value with the expression:
+
+ r * red_mult + g * green_mult + b * blue_mult + base_pixel
+
+ For gray-scale colormaps, only the colormap, red_max, red_mult,
+ and base_pixel fields are defined; the other fields are
+ ignored. To compute a gray-scale pixel value, use:
+
+ gray * red_mult + base_pixel
+
+ This is provided to allow applications to share color maps.
+
+RGB_BEST_MAP @
+RGB_BLUE_MAP @
+RGB_DEFAULT_MAP @
+RGB_GRAY_MAP @
+RGB_GREEN_MAP @
+RGB_RED_MAP @
+ Property name: (type: RGB_COLOR_MAP)
+ The needs of most applications can be met with five colormaps.
+ Polite applications may need only a small RGB space, and can
+ use a portion of the default color map. Applications doing
+ high-quality RGB rendering will need an entire colormap,
+ filled with as large an RGB space as possible, e.g. 332. For
+ color separations, an application may need maximum device
+ resolution for each of red, green, and blue, even if this
+ requires three renderings with three colormaps.
+
+ Each of the above five names would be used for sharing color
+ maps.
+STRING @
+ Property type:
+ sequence of Bytes
+VISUALID @
+ Property type:
+ visual: VISUALID
+WINDOW @
+ Property type:
+ window: WINDOW
+WM_COMMAND @
+ Property name: (type: STRING)
+ Command line arguments used to invoke this application. The
+ arguments are delimited by null characters (ASCII 0).
+WM_HINTS @
+ Property type:
+ flags: CARD32
+ input: BOOL32
+ initial-state: CARD32
+ icon-pixmap: PIXMAP
+ icon-window: WINDOW
+ icon_mask: BITMAP
+ icon-x, icon-y: INT32
+ flags contains the following bits
+ 0x00000001 input hint
+ 0x00000002 state hint
+ 0x00000004 icon pixmap hint
+ 0x00000008 icon window hint
+ 0x00000010 icon position hint
+ values for initial-state
+ 0 unspecified -> application does not
+ care and WM should pick one.
+ 1 normal
+ 2 zoomed
+ 3 iconic
+ 4 inactive -> application believes
+ itself to be seldomly used. WM may wish to
+ place it on an inactive menu.
+ This type is potentially extensible. The order is critical;
+ append to the end only.
+ Property name: (type: WM_HINTS)
+ Additional hints set by the client for use by the window
+ manager.
+WM_CLIENT_MACHINE @
+ Property name: (type: STRING)
+ used to communicate with the window manager. The host name
+ of the machine the client is running on may be set here.
+WM_ICON_NAME @
+ Property name: (type: STRING)
+ what the application would like the label to be for
+ the iconic form of the window.
+WM_ICON_SIZE @
+ Property type:
+ minWidth, min-height: CARD32
+ maxWidth, max-height: CARD32
+ widthInc, height-inc: CARD32
+ Property name: (type: ICON_SIZE)
+ The window manager may set this property on the root window
+ to specify the icon sizes it allows.
+WM_NAME @
+ Property name: (type: STRING)
+ used to communicate with the window manager. This is
+ what the application would like the label for the window.
+WM_NORMAL_HINTS @
+ Property name: (type: SIZE_HINTS)
+ used to communicate with the window manager. This is size
+ hints for a window in its "normal" state.
+WM_SIZE_HINTS @
+ Property type:
+ flags: CARD32
+ x, y: INT32
+ width, height: CARD32
+ min-width, min-height: CARD32
+ max-width, max-height: CARD32
+ width-inc, height-inc: CARD32
+ min-aspect-x, min-aspect-y: CARD32
+ max-aspect-x, max-aspect-y: CARD32
+ flags contains the following bits
+ 0x00000001 user specified x and y
+ 0x00000002 user specified width and height
+ 0x00000004 program specified position
+ 0x00000008 program specified size
+ 0x00000010 program specified minimum size
+ 0x00000020 program specified maximum size
+ 0x00000040 program specified resize increment
+ 0x00000080 program specified aspect ratio
+ This type is potentially extensible. The order is critical;
+ append to the end only.
+WM_ZOOM_HINTS @
+ Property name: (type: SIZE_HINTS)
+ used to communicate with the window manager. This is size
+ hints for a window in its "zoomed" state.
+
+ -- Font properties --
+
+MIN_SPACE @
+ Font property: CARD32
+NORM_SPACE @
+ Font property: CARD32
+MAX_SPACE @
+ Font property: CARD32
+END_SPACE @
+ Font property: CARD32
+SUPERSCRIPT_X @
+ Font property: INT32
+SUPERSCRIPT_Y @
+ Font property: INT32
+SUBSCRIPT_X @
+ Font property: INT32
+SUBSCRIPT_Y @
+ Font property: INT32
+UNDERLINE_POSITION @
+ Font property: INT32
+UNDERLINE_THICKNESS @
+ Font property: CARD32
+STRIKEOUT_ASCENT @
+ Font property: INT32
+STRIKEOUT_DESCENT @
+ Font property: INT32
+ITALIC_ANGLE @
+ Font property: INT32
+X_HEIGHT @
+ Font property: INT32
+QUAD_WIDTH @
+ Font property: INT32
+WEIGHT @
+ Font property: CARD32
+POINT_SIZE @
+ Font property: CARD32
+RESOLUTION @
+ Font property: CARD32
+
+The following optional properties on fonts have values that are atoms. The
+atom print name is the useful information.
+
+COPYRIGHT @
+ of the font distribution
+NOTICE @
+ trademark/copyright of the character shapes
+FONT_NAME @
+ name of this particular instance of a font
+FAMILY_NAME @
+ name of the 'font family' to which it belongs
+FULL_NAME @
+ full text name of the font
+
+The following aren't in order but putting them at the end avoids encoding
+changes.
+
+CAP_HEIGHT @
+ Font property: CARD32
+
+
+WM_CLASS @
+ Property name: (type: STRING)
+ Used (possibly by some window managers; definitely by
+ session managers) to look up resources in the resource
+ data base on behalf of the client who set this property.
+ There are 2 elements:
+ {char *resource_name; char *resource_class;}
+ delimited by a null character (ascii 0)
+
+WM_TRANSIENT_FOR @
+ Property name: (type: WINDOW)
+ Used by transient top-level windows, such as dialog
+ boxes, to point to their logical "parents". The window
+ manager can then take down the dialog boxes when the
+ "parent" gets iconified, for instance.
diff --git a/doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_CHANGES b/doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_CHANGES
new file mode 100644
index 000000000..d8fb7c31a
--- /dev/null
+++ b/doc/_attic_/XOrg69_documentation_files/nx-X11_programs_Xserver_dix_CHANGES
@@ -0,0 +1,17 @@
+The following changes have been made to this directory since R3 (for
+a full description, see doc/Server/r4.tbl.ms):
+
+ o Windows restructured (memory reduction, devPrivates and speedups)
+ o GCs restructured (memory reduction, devPrivates and wrappers)
+ o Screens restructured (window ops merged in, devPrivates)
+ o Pixmaps restructured (drawable changes mostly)
+ o Cursors restructured (shares glyph bits now)
+ o Visuals restructured (screen index removed, fields rearranged)
+ o Devices restructured (input extension changes)
+ o Out of memory changes. Many interfaces now return OutOfMemory
+ status.
+ o Synchronous grab code rewritten. Should conform to our
+ understanding of the protocol now. Be careful when time
+ stamping events (don't allow time to run backwards).
+ o Resource types redesigned and rewritten.
+ o Internal fake color allocation routine for software cursors.
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_CHANGELOG.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_CHANGELOG.X.original
new file mode 100644
index 000000000..085401dd9
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_CHANGELOG.X.original
@@ -0,0 +1,1088 @@
+--- ./nx-X11/CHANGELOG.X.original 2015-02-13 14:03:44.392448449 +0100
++++ ./nx-X11/CHANGELOG 2015-02-10 19:13:14.668653602 +0100
+@@ -0,0 +1,1085 @@
++ChangeLog:
++
++nx-X11-3.5.0-2
++
++- Fixed TR0202420. XKB utility functions wrote out of bounds.
++
++- Upgraded RandR server extension to version 1.2.
++
++nx-X11-3.5.0-1
++
++- Opened the 3.5.0 branch based on nx-X11-3.4.0-4.
++
++- Updated copyright to year 2011.
++
++nx-X11-3.4.0-4
++
++- Fixed TR06H02359. Removed compiler warnings.
++
++nx-X11-3.4.0-3
++
++- Updated copyright to year 2010.
++
++nx-X11-3.4.0-2
++
++- Fixed TR04G02208. Added a path to rgb file.
++
++nx-X11-3.4.0-1
++
++- Opened the 3.4.0 branch based on nx-X11-3.3.0-7.
++
++- Updated copyright to year 2009.
++
++nx-X11-3.3.0-7
++
++- Fixed TR08G02257. The maximum client condition was reached because
++ available fd exhausted. This bug was caused by a function in font
++ library not closing the file before a return on error breaking the
++ flow of normal execution.
++
++- Fixed TR06G02225. The implementation of Xvprintf() has been reviewed
++ to work on more platforms. Previous implementation caused a failure
++ in the build of keyboard map on some platform like Solaris 8 and 9.
++
++nx-X11-3.3.0-6
++
++- Fixed TR03G02198. Reimplemented Xvprintf() in Xserver/os to handle
++ the case in which vsnprintf returned -1.
++
++- Returning from _XSeqSyncFunction() and _XReply() if an I/O error is
++ detected.
++
++nx-X11-3.3.0-5
++
++- Fixed TR01G02163. Signals need to be blocked before the call to
++ fork() in the Popen() utility.
++
++- Fixed TR01G02164. Trapezoid data need to be validated before use.
++ This issue was the same of CVE-2007-2437.
++
++nx-X11-3.3.0-4
++
++- Enabled the code resetting the Xlib buffer if an IO error occured.
++
++nx-X11-3.3.0-3
++
++- Fixed the search path for the XKB base directory.
++
++nx-X11-3.3.0-2
++
++- Fixed TR10F02116. The X11 agent could enter an indefinite wait state
++ if connection to X display is broken and libX11 output buffer is not
++ empty.
++
++nx-X11-3.3.0-1
++
++- Opened the 3.3.0 branch based on nx-X11-3.2.0-2.
++
++nx-X11-3.2.0-2
++
++- Imported patch fixing issues from X.Org security advisory, June
++ 11th, 2008: Multiple vulnerabilities in X server extensions. CVE
++ IDs: CVE-2008-1377, CVE-2008-1379, CVE-2008-2360, CVE-2008-2361,
++ CVE-2008-2362.
++
++nx-X11-3.2.0-1
++
++- Opened the 3.2.0 branch based on nx-X11-3.1.0-6.
++
++nx-X11-3.1.0-6
++
++- Modified Xserver Imakefile to link the Xfixes library.
++
++nx-X11-3.1.0-5
++
++- Disabled the terminate action, just in case the TerminateServer
++ symbol is binded to a non default key sequence.
++
++nx-X11-3.1.0-4
++
++- Imported patch fixing issues from X.Org security advisory, January
++ 17th, 2008: Multiple vulnerabilities in the X server. CVE IDs:
++ CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428
++ CVE-2007-6429 CVE-2008-0006.
++
++nx-X11-3.1.0-3
++
++- Moved a variable definition placed in _mesa_make_current().
++
++nx-X11-3.1.0-2
++
++- Fixed TR10E01924. A crash could occur in _mesa_make_current().
++
++- Initialized after_ret variable in _XcmsGetProperty().
++
++nx-X11-3.1.0-1
++
++- Opened the 3.1.0 branch based on nx-X11-3.0.0-37.
++
++nx-X11-3.0.0-37
++
++- Changed the Xserver Imakefile to link against Xcomposite on the
++ Cygwin platform too.
++
++nx-X11-3.0.0-36
++
++- Fixed TR07E01806. Modified host.def to build GLX code with symbol
++ __GLX_ALIGN64 defined on Solaris platform.
++
++nx-X11-3.0.0-35
++
++- Flush explicitly the NX link before entering the select() in the
++ WaitForReadable() and WaitForWritable() routines.
++
++nx-X11-3.0.0-34
++
++- Changed the agent Imakefile to link to the Xcomposite library.
++
++nx-X11-3.0.0-33
++
++- Fix the NX_TRANS_WAKEUP stuff in WaitForSomething() to not over-
++ ride a valid timeout.
++
++- Check if the requesting client is gone in the XFixes functions
++ sending the cursor events.
++
++nx-X11-3.0.0-32
++
++- Define DDXOSVERRORF and DDXOSFATALERROR symbols on Sun.
++
++- Changed the copyright attribution from Medialogic to NoMachine.
++
++nx-X11-3.0.0-31
++
++- Make SmartScheduleStopTimer() visible outside Xserver/os/utils.c
++ so that it can be called by the agent. Export the declaration in
++ dixstruct.h.
++
++nx-X11-3.0.0-30
++
++- The OsVendorVErrorFFatal flag is set to 1 if the function pointed
++ by OsVendorVErrorFProc is called due to a fatal error.
++
++- Give the possibility to the agent to redirect the standard error
++ during a Popen() or a System() by setting the OsVendorStartRedir-
++ ectErrorFProc and OsVendorEndRedirectErrorFProc function pointers.
++
++nx-X11-3.0.0-29
++
++- Changed the default message printed on a fatal server error. The
++ new message is:
++
++ Error: Aborting session with 'Error text...'.
++
++- Hacked LogVWrite() to force all fatal error messages to have an
++ uppercase initial. Also remove the trailing newline and the full-
++ stop, if present.
++
++nx-X11-3.0.0-28
++
++- Corrected the typos in the ChangeLog.
++
++nx-X11-3.0.0-27
++
++- Fixed the cleanup of the X_RenderCompositeText16 padding bytes.
++
++- More code cleanup in the NX changes to the Xrender library.
++
++- Changed host.def to build the freetype and fontconfig libraries
++ if the agent server is also built. Freetype is built as a shared
++ library: this avoids the link error on 64 bit platforms.
++
++nx-X11-3.0.0-26
++
++- Applied the following security patches, from the X.Org security
++ advisory, April 3rd, 2007 "Multiple vulnerability in X server,
++ libXfont and libX11":
++
++ xorg-xserver-1.2.0-xcmisc.diff
++ xorg-libXfont-1.2.7-bdf-fontdir.diff
++ xorg-libX11-1.1.1-xinitimage.diff
++
++nx-X11-3.0.0-25
++
++- Added the missing *.X.original file for ChkIfEv.c and Xlib.h.
++
++nx-X11-3.0.0-24
++
++- Changed Xrender to clean up the padding bytes in XRenderComposite-
++ Text functions.
++
++- Added function XRenderCleanGlyphs() cleaning the padding bytes in
++ the data section of RenderAddGlyphs requests.
++
++nx-X11-3.0.0-23
++
++- Removed the additional parameter from the call to NXTransFlush()
++ in _XReply().
++
++- Call NXTransExit() on AbortServer() (called by FatalError()) to
++ give the proxy a chance to shut down the NX transport.
++
++nx-X11-3.0.0-22
++
++- Moved the replacement of XCheckIfEvent() ChkIfEv.c with the name
++ XCheckIfEventNoFlush().
++
++nx-X11-3.0.0-21
++
++- Set BUFSIZE to 8192 bytes. While the output buffer size can be
++ configured by setting the XLIBBUFFERSIZE in the environment (see
++ OpenDis.c), this constant is still used when reading from the
++ socket.
++
++nx-X11-3.0.0-20
++
++- If set, the handler pointed by _NXDisplayWriteFunction is called
++ after that more data is written to the display connection.
++
++nx-X11-3.0.0-19
++
++- Added a RejectWellKnownSockets() stub to make possible to compile
++ the agent when the NX transport is disabled.
++
++- Added more useful logs to _XWaitForWritable().
++
++nx-X11-3.0.0-18
++
++- Changed Imakefile of X11 and Xserver in order to build nxcompshad
++ just before the NX agent server.
++
++- Changed Imakefile in Xserver to add NXdamage.o to NXAGENTOBJS.
++
++nx-X11-3.0.0-17
++
++- Changed host.def in order to build Xdamage and Xrandr libraries.
++
++- Changed host.def in order not to build NXWin.
++
++nx-X11-3.0.0-16
++
++- Changed host.def in order to build Xtst as a shared library.
++
++nx-X11-3.0.0-15
++
++- Changes to comply with nxcompshad library.
++
++- Changed configuration to statically build Xtst library.
++
++- Restored parser directory under Xserver/hw/xfree86.
++
++nx-X11-3.0.0-14
++
++- Changed the LICENSE file to state that the software is only made
++ available under the version 2 of the GPL.
++
++- Added file COPYING.
++
++- In nx-X11/programs and nx-X11/programs/Xserver/hw/xfree86, removed
++ files and directories not needed to build servers.
++
++nx-X11-3.0.0-13
++
++- Changes aimed to link servers with static versions of Xdmcp and Xau
++ libraries.
++
++nx-X11-3.0.0-12
++
++- Added references to implented FR in the ChangeLog.
++
++- Removed nx-X11/fonts and nx-X11/doc directories. They are not needed
++ for building the NX components.
++
++nx-X11-3.0.0-11
++
++- Updated the copyright notices to year 2007.
++
++nx-X11-3.0.0-10
++
++- Applied the following security patches:
++
++ x11r6.9.0-cidfonts.diff
++ x11r6.9.0-dbe-render.diff
++ x11r6.9.0-geteuid.diff
++ x11r6.9.0-mitri.diff
++ x11r6.9.0-setuid.diff
++
++nx-X11-3.0.0-9
++
++- Merged the NX changes to X11 with the X11R6.9.0 version of X.org.
++
++nx-X11-3.0.0-8
++
++- Changes to build Xshadow library when building X11.
++
++- Changes to Xserver Imakefile to link Xshadow library.
++
++- Changes to host.def in order to build on old distributions.
++
++nx-X11-3.0.0-7
++
++- Imported changes up to nx-X11-2.1.0-2
++
++- Fixed TR08D01485. Updated rgb file paths validation in order to
++ support Ubuntu distribution.
++
++- Added Xtst to libraries to be linked by nxagent.
++
++- Changed Xpm Imakefile to build a shared library on Solaris.
++
++- Fixed build error on Solaris in xtrans.
++
++- Changed host.def not to build Xnest server.
++
++- Changed Xserver Imakefile to link nxaccess library.
++
++nx-X11-3.0.0-6
++
++- Added the path of nxaccess library to the server link command.
++
++nx-X11-3.0.0-5
++
++- Implemented FR10C01079 and FR10C01080. The merge of NX changes to
++ the X.org code is complete.
++
++- Merged changes in config/cf. The NX-*.def files have been dismissed.
++ Main platform dependent configurations have been moved to host.def.
++
++- Removed *.reference files from config/cf.
++
++- Fixed compilation for Cygwin platform.
++
++nx-X11-3.0.0-4
++
++- Imported all changes up to nx-X11-2.0.0-32.
++
++- Cleaned up lib/zlib directory.
++
++- Added missing file programs/Xserver/os/utils.c.NX.original.
++
++- Updated the copyright notice to year 2006.
++
++- The pointer to the display buffer is reset after an I/O error.
++ This prevents leaving the buffer in an inconsistent state if the
++ error occurs inside _XFlush().
++
++- Removed the modifications to the Xrender library. The cleanup of
++ the padding bytes is now performed by the NX transport.
++
++- NX uses the updated ZLIB from its build tree, so Imake.tmpl will
++ now assume that the platform as ZLIB unless otherwise stated.
++
++- The path of the SecurityPolicy file is searched and validated at
++ runtime.
++
++- Added the _X11TransSocketProxyConnInfo() function to Xtranssock.c
++ It returns the pointer to the XtransConnInfo private, if it is a
++ valid _NXProxyConnInfo structure.
++
++- The above function is used by OpenDis.c to detect if the NX trans-
++ port was requested on the display and avoid spurious error messa-
++ ges in the case of a connection failure.
++
++- Added NXmiwindow.o to the NXAGENTOBJS in the Xserver's Imakefile
++ and imported NXmiwindow.c in nxagent. This allows us to check the
++ pointer to the pOldClip region in miSetShape() before going on
++ freeing it.
++
++- The path of the XKB base directory and of the xkbcomp comand is
++ validated at runtime.
++
++- Also added a check to verify the validity of the rgb file path.
++
++- Added NXresource.o to NXAGENTOBJS in the Imakefile of nxagent. We
++ need this to a assign a resource to the pixmaps and other server
++ objects which need to be enumerated at reconnection. Some objects,
++ being created by the X server and not by the clients, don't pass
++ through the resource assignment process operated by the dix. To
++ ensure that all objects get a resource, we add a resource at the
++ time the object is created and temporarily assign the resource to
++ the server client. If the dix later assigns the resource to a va-
++ lid client, the resource is removed from the server client's list.
++
++- The display block handler registered by the client is called in
++ WaitForReadable() and WaitForWritable() before every select(),
++ not only upon entering the function. The reason is that more
++ data can be possibly produced for the NX link by the proxy it-
++ self and, when setting the flush policy to deferred, the client
++ may not have the chance of flushing the NX link.
++
++- Fixed a bug in XkbUseExtension() that caused Xlib to query the
++ presence of the XKEYBOARD extension multiple times. This partial-
++ ly implents the FR01D01275. The complete implementation required
++ modifications to the X11 agent, implemented in nxagent-2.0.0-33.
++
++- Updated to comply with the new NXTransFlush() interface.
++
++- Both nxwin and nxagent now read the X authority file by using an
++ fopen() instead of the system command 'cat'.
++
++- Removed NXmiwindow.o from the NXAGENTOBJ list. The agent will now
++ use the original miwindow.c.
++
++- Added some additional logs in Xtranssock.c to follow the creation
++ and removal of the X server's Unix listener.
++
++- Avoided the sleep of 5 seconds forced by Xtransutil.c if the dir-
++ ectory where the Unix listener is created is not owned by root.
++ This sleep is not executed on Cygwin (where the X socket can be
++ hardly owned by root) but may delay the startup of the agent if
++ the user chose a different NX_TEMP directory. Furthermore, it is
++ unclear what real benefits such sleeps are intended to bring to
++ the security of the X server. This can be controlled by defining
++ the NX_TRANS_SLEEP directive in Xserver/os/Imakefile.
++
++- Added NXmiexpose.o to the NXAGENTOBJ.
++
++- Ensured that _X11TransSocketCloseConnInfo() now initiates the NX
++ shutdown by calling NXTransClose().
++
++- Corrected a misplaced #else that made SocketUNIXConnect() skip a
++ block if the connection was not to the NX transport.
++
++- Updated to comply with the new NX function prototypes introduced
++ in nxcomp-2.0.0-31.
++
++- Moved the most important Xtranssock.c modifications into separate
++ functions.
++
++- Ensured that the modifications enabling the internal connections
++ to the proxy are compiled only when the TRANS_CLIENT directive is
++ defined.
++
++- Solved a bug that prevented the X11 socket to be deleted at the X
++ server shutdown. This needs further tests.
++
++- Added nxcompext to the link of nxagent, now that the dependency
++ of libX11 from nxcompext is removed.
++
++- Improved the Xtranssock routines to never loop through the array
++ of connection info.
++
++- Added a congestion flag to the connection info structure and a
++ function querying the transport and reporting if a change in the
++ congestion state has occurred. The code is currently not enabled,
++ because instead of polling the transport, we let the proxy notify
++ the changes in congestion state by using the callback. The code
++ can be used in future to extend the library, for example, by add-
++ ing some counters tracking the bandwidth usage of the socket con-
++ nection, so that we can make the congestion notifications work
++ even with a plain X11 connection.
++
++- Profiled the routines in XlibInt.c to reduce the number of calls
++ to the error predicate function provided by the client.
++
++- Fixed the nxcompext build problem that caused make World to fail.
++
++- Added a 'CONF' target to the X11 and Xext Imakefiles so that the
++ configure script is not run if the config.status exists.
++
++- Added the _NXDisplayBlockHandler hook. The function is called by
++ Xlib before blocking. The parameter says if Xlib is going to wait
++ for more input or because it needs to write to the display socket.
++ The client can use the hook to perform any internal operation that
++ may require some time to complete. The user, though, should not
++ try to read or write to the display inside the callback routine.
++
++- Removed the outdated NX_TRANS_PROCESS, NX_TRANS_THREAD and NX_TR-
++ ANS_INCLUDE defines.
++
++- Reverted the lib/Xext Imakefile to the original XF86 version and
++ moved the build of the nxcompext library among the libX11 depend-
++ encies.
++
++- Corrected the lib/X11 Imakefile so that a new build of nxcomp and
++ nxcompext is not attempted if the libraries are up-to-date.
++
++- Removed the unused display buffer and image cleanup functions.
++
++- Reverted the PutImage.c file to the original XF86 version.
++
++- Added the _NXDisplayErrorPredicate function in XlibInt.c. It is
++ actually a pointer to a function called whenever Xlib is going to
++ perform a network operation. If the function returns true, the
++ call will be aborted and Xlib will return the control to the ap-
++ plication. It is up to the application to set the XlibDisplayIO-
++ Error flag after the _NXDisplayErrorPredicate returns true. The
++ function can be used to activate additional checks, besides the
++ normal failures detected by Xlib on the display socket. For exam-
++ ple, the application can set the funciton to verify if an inter-
++ rupt was received or if any other event occurred mandating the
++ end of the session.
++
++- Modified XIfEvent(), XMaskEvent() and XPeekIfEvent() to check the
++ _NXDisplayErrorPredicate function and return immediately if the
++ function returns true.
++
++- Modified _XWaitForReadable() to never enter the loop if the dis-
++ play is broken.
++
++- Corrected a make problem on Windows that caused the nxcomp and
++ nxcompext libraries to be referred with the wrong name, with the
++ result that a new configure and make was attempted at each build
++ attempt.
++
++- Merged all the changes to os, Xext, xkb, dix.
++
++- Changed host.def to build only the agent server.
++
++- Merged the changes to Xtranssock.c
++
++nx-X11-3.0.0-3
++
++- Merged the changes to lib/X11. Restored original PutImage.c and
++ ClDisplay.c files.
++
++nx-X11-3.0.0-2
++
++- Created a directory named 'reference' to keep files that are chan-
++ ged during the development of nx-X11 since the 1.5.0-16 to 2.0.0-32
++ version. These files will be removed as long as the differences are
++ merged to the 3.0.0 version. When all differences are merged, this
++ directory will be removed.
++
++nx-X11-3.0.0-1
++
++- Opened the 3.0.0 branch based on the nx-X11-2.0.0-9. The 3.0.0
++ branch will now support the migration toward the X.org tree. Due
++ to time concerns, the 2.0.0 branch is going to be based on the
++ same nx-X11 as the 1.5.0.
++
++nx-X11-2.0.0-9
++
++- Modified the agent link arguments to explicitly include the NX
++ libraries.
++
++- Disabled the Xinerama extension to avoid further clashes with
++ the redefinition of GC in Xlib.
++
++- Added os/libos.a at the end of the agent link.
++
++nx-X11-2.0.0-8
++
++- Moved the declarations of _NXEnable* and related structures from
++ Xlibint.h to NXlibint.h.
++
++- Added provision for building the agent. This can be controlled by
++ setting NXAgentServer to YES in host.def.
++
++- Setting the NXUpgradeAgentServer variable to YES in the host.def
++ file will make the agent assume that it is being built in the new
++ environment. This variable is normally unset when building in the
++ 1.5.0 tree.
++
++nx-X11-2.0.0-7
++
++- Fixed a problem on AMD64 due to the size of the area pointed by
++ the argument of _X11TransBytesReadable(). BytesReadable_t is long,
++ at least on Linux, while the ioctl() requires a pointer to an int.
++ The original _X11TransBytesReadable() function simply calls the
++ ioctl() by passing the pointer that is provided. NXTransReadable(),
++ instead, was correctly returning the value assuming a pointer to
++ a long, but this crashes some applications, among them xterm. Now
++ NXTransReadable() follows the same schema of the ioctl() call and
++ stores the result assuming a pointer to an int.
++
++- Removed the outdated NX_TRANS_PROCESS and NX_TRANS_THREAD code.
++
++nx-X11-2.0.0-6
++
++- Made xterm work with the NX transport. This required small changes
++ to the Xt toolkit's and the xterm's files to let them use the NX
++ aware select(). This is useful to test the NX transport until the
++ nxagent server is integrated.
++
++- When the transport is gone _X11TransSocketBytesReadable() returns
++ EPIPE. This makes the client become aware of the closure of the
++ connection.
++
++- Added a call to NXTransDestroy() in XCloseDisplay().
++
++- The exit() function in XlibInt.c causes a call to NXTransExit().
++
++- Merged changes to dix/pixmap.c, xkb/xkbDflts.h, mi/Imakefile.
++
++- Removed unneeded changes and files containing patches already in
++ the latest X.org distribution: dix/dispatch.c, fb/fbcompose.c, fb/
++ fbgc.c, xkb/ddxList.c, font/fontfile/dirfile.c, font/fontfile/
++ encparse.c, font/fontfile/fontfile.c, font/FreeType/fttools.c,
++ Xrender/FillRect.c, Xrender/Picture.c.
++
++nx-X11-2.0.0-5
++
++- Changes to the lib/X11/Imakefile to cleanly build the tree. This
++ is obtained by creating a link to the Xcomp library in exports/lib
++ without having to modify the programs' Imakefiles.
++
++- Finished merging the NX changes in the lib/X11 files.
++
++- Merged the CHANGELOG with the one from the 1.5.0 tree.
++
++nx-X11-2.0.0-4
++
++- Merged the NX changes in most Xtrans and lib/X11 files.
++
++nx-X11-2.0.0-3
++
++- Temporarily disabled the use of the MMX extensions in the Xserver's
++ fb code to successfully compile with GCC 4.
++
++nx-X11-2.0.0-2
++
++- Imported the *.NX.reference and *.XF86.reference files that will
++ be needed for the merge. These files are the *.original from the
++ 1.5.0 tree. They will be removed as long as the merge advances.
++
++nx-X11-2.0.0-1
++
++- Created the 2.0.0 branch based on X.org the 6.8.99.16 snapshot.
++
++nx-X11-1.5.0-16
++
++- Added the missing *.XF86.original and *.NX.original files.
++
++nx-X11-1.5.0-15
++
++- Made the nxagent server use select() instead of poll() on Solaris
++ so that it can leverage the new NX transport.
++
++- Moved the NXTransFlush() call to _XReply().
++
++nx-X11-1.5.0-14
++
++- Added the 'synchronous' parameter in the _XWaitForReadable() call
++ to NXTransFlush().
++
++nx-X11-1.5.0-13
++
++- Removed the log entry in XlibInt.c on calling the NXTransFlush().
++
++nx-X11-1.5.0-12
++
++- Changed XlibInt.c and utils.c to call NXTransExit().
++
++nx-X11-1.5.0-11
++
++- Changed XlibInt.c to comply with the new NXTransFlush() interfa-
++ ce introduced in nxcomp-1.5.0-42.
++
++- Cosmetic changes to messages printed for debug.
++
++nx-X11-1.5.0-10
++
++- Ensured that all calls to _XIOError() are followed by a return.
++
++- Put exiting the client program in the case of an I/O error under
++ the control of the _NXContinueOnDisplayError flag. If set, the
++ I/O error routine will simply return, leaving to the application
++ the responsibility of checking the state of the XlibDisplayIOEr-
++ ror flag.
++
++- Added some checks whenever a read or write is performed on the X
++ connection, so that we can exit the I/O loop if the X channel is
++ gone. It is likely that more work will be needed when trying to
++ support XTHREADS enabled connections. This should not be a pro-
++ blem for now, as the default is still to quit the application un-
++ less the _NXContinueOnDisplayError flag is explicitly set.
++
++nx-X11-1.5.0-9
++
++- Removed the references to the cygipc library in NXWin. Now use the
++ cygserver daemon to provide the MIT-SHM extension.
++
++- Fixed an error in the UseCygIPC definition.
++
++- Changed the cygwin.cf file to avoid redefinition of the BuildGlxExt,
++ XWinServer and BuildGlxExt symbols.
++
++nx-X11-1.5.0-8
++
++- Added provision for deferred writes in the NX transport. When en-
++ tering _XWaitForReadable() we must ensure that data is flushed to
++ the proxy link.
++
++- Added the UseCygIPC define to NX-Cygwin.def.
++
++- Updated the NoMachine copyright notice on the modified files.
++
++nx-X11-1.5.0-7
++
++- Added the GLX extension in NX-Sun.def.
++
++- Added some more logs in WaitFor.c.
++
++nx-X11-1.5.0-6
++
++- Modified Xlibint.h and XlibInt.c to remove the _NXFlushSize para-
++ meter. New agents run the NX transport in-process, so we don't get
++ any benefit from increasing the display buffer size.
++
++- Modified NX-Darwin.def to not build the NXDarwin server. Since the
++ 1.4.0 version the NXDarwin server is unsupported and the NX client
++ for the Mac requires that the Apple X server is installed.
++
++- Changed NX-Linux.def to avoid the warning due to "SharedLibGLw"
++ being not defined.
++
++nx-X11-1.5.0-5
++
++- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs
++ and avoid including mfb/libmfb.a.
++
++- Added the GLX extension in NX-Linux.def. This provides unaccelera-
++ ted support in nxagent, with GLX operations translated into core X
++ protocol primitives.
++
++- Fixed x-X11/programs/Xserver/GL/dri/Imakefile to look in ../../hw/
++ /xfree86/os-support/bus for includes.
++
++nx-X11-1.5.0-4
++
++- Avoid calling NXTransSelect() if the transport is gone, so that we
++ don't have to wait until the timeout.
++
++- Added the "-fno-strict-aliasing" option to linux.cf when compiling
++ with a GCC version >= 4. In the words of Stefan Dirsch: "The opt-
++ ion, which is default since gcc 3.1, can result in wrong code when
++ the gcc warnings related to it are ignored. And as there are seve-
++ ral warnings in X11 related to it, it has been disabled for X11
++ from the beginning. This didn't change for gcc4, so it still needs
++ to be used."
++
++- Added more logs in XlibInt.c and utils.c. A warning is printed if
++ the SmartScheduler is initialized.
++
++nx-X11-1.5.0-3
++
++- Started integration of nxcomp with the X libraries. The Xtrans
++ code creates an internal connection to the nxcomp library instead
++ of a child proxy process.
++
++- Changed Xpoll.h and XlibInt.c to replace the standard Select
++ with a version giving NX a chance to check its own descriptors.
++
++- Implemented the NXTransReadVector() and the NXTransWriteVector()
++ functions to replace READV() and WRITEV().
++
++- Implemented memory-to-memory communication with the NX proxy by
++ making use of the NXTransAgent() interface.
++
++nx-X11-1.5.0-2
++
++- We think that the way LoadAuthorization() is working is wrong.
++ It doesn't reset the list of stored authorizations before reading
++ the new cookies. Our take is that if a new auth file is to be
++ read, the only cookies that are to be accepted are those that are
++ in the new file, not those in the file -plus- those that have
++ been in the file in the past. Furthermore, if the list can't be
++ read or it is empty, it should assume that it ignores which co-
++ okies are valid and thus it should disable any access. Your mile-
++ age can vary. A less draconian approach could be to leave the old
++ cookies if the file can't be read and remove them only if the
++ file is empty.
++
++ Adding the cookies without removing the old values for the same
++ protocol has an important implication. If an user shares the co-
++ okie with somebody and later wants to revoke the access to the
++ display, changing the cookie will not work. This is especially
++ important with NX. For security reasons, after reconnecting the
++ session to a different display, it is advisable to generate a
++ new set of cookies, but doing that it is useless with the current
++ code, as the old cookies are going to be still accepted. On the
++ same topic, consider that once an user has got access to the X
++ server, he/she can freely enable host authentication from any
++ host, so the safe behaviour should be to reset the host based
++ authenthication at least at reconnection, and keep as valid only
++ the cookies that are actually in the file. This behaviour would
++ surely break many applications, among them a SSH connection run
++ inside a NX session, as ssh -X reads the cookie for the display
++ only at session startup and does not read the cookies again
++ when the auth file is changed.
++
++ Another bug (or feature, depending on how you want to consider
++ it) is that if the authority file contains entries for different
++ displays (as it is the norm when the authority file is the default
++ .Xauthority in the user's home), the X server will match -any- of
++ the cookies, even cookies that are not for its own display. This
++ means that you have to be careful when passing an authority file
++ to nxagent and maybe keep separate files for letting nxagent find
++ the cookie to be used to connect to the remote display and for
++ letting it find what cookies to accept. If the file is the same,
++ clients will be able to connect to nxagent with both the cookies.
++ This bug obviously affects any X server, also the real X server
++ running on the workstation, so it is common to see nxagent being
++ able to connect to the X server even if no cookie matches the
++ real display.
++
++- Added a check in lib/Xau/AuRead.c to prevent the fread() call to
++ be interrupted by SIGCHLD while reading the auth file. Due to the
++ way the old code worked, this could lead to the server enabling
++ local host access to the display. This problem had been identified
++ in the past. We just found that all the code dealing with reading
++ the auth file was affected. The code calls sigprocmask() to block
++ the signal (though it leaves some other calls unprotected) but the
++ SIGCHLD was not included in the set.
++
++- Added SIGCHLD to the set of signals that are blocked when reading
++ the authorization file.
++
++- As I was at it, I changed the path to the SecurityPolicy file. A
++ few Linux ditributors ship the file in $LIBDIR/xserver, a few only
++ in /etc/X11/xserver, most others in both places. It seems that
++ those who ship in $LIBDIR/xserver do also in /etc/X11 but the op-
++ posite is not true, so I switched to /etc/X11.
++
++nx-X11-1.5.0-1
++
++- Opened the 1.5.0 branch.
++
++nx-X11-1.4.1-2
++
++- Set parameter UseCygIPC on cygwin conf file in order to force the
++ build of MIT-SHM estension.
++
++- Removed some spurius object file.
++
++nx-X11-1.4.1-1
++
++- Opened the 1.4.1 branch.
++
++nx-X11-1.4.0-8
++
++- Changed DefaultFontPath and DefaultRGBDatabase in
++ NX-Cygwin.def.
++
++nx-X11-1.4.0-7
++
++- Imported dispatch in nxdarwin package, in order to let
++ nxdarwin being able to detect new client connection.
++
++- Changed the Xpm Imakefile to make also .a static library
++ on Solaris. To link nxviewer and nxdestkop staticaly.
++
++nx-X11-1.4.0-6
++
++- XInput extension enabled on MacOSX.
++
++- Added some missing backup files of the original XFree86
++ package.
++
++nx-X11-1.4.0-5
++
++- Changed the mi Imakefile in order to let xfree86 servers use
++ the normal mi extension initialization for the XInput exten-
++ sion.
++
++- XInput extension enabled on Solaris.
++
++nx-X11-1.4.0-4
++
++- Removed the RejectWellKnownSocket for the cygwin and
++ MacOSX environments that doesn't use the Xtransport library.
++
++nx-X11-1.4.0-3
++
++- Changed the implementation of the reject method in the
++ Xtransport library, now close any new incoming connection
++ immediately without reading or writing to it.
++
++nx-X11-1.4.0-2
++
++- Implemented a reject method in the Xtransport library,
++ this function accept and close every connection attempt,
++ on the specified listening socket.
++
++- Added the new function RejectWellKnownSocket to the os
++ connection code.
++ This function use the new transport reject function on
++ all listening socket.
++
++nx-X11-1.4.0-1
++
++- Opened the 1.4.0 branch.
++
++- Removed forgotten nxagent-1.3.2-20 directory.
++
++nx-X11-1.3.2-9
++
++- Prevents NX Darwin server going through the reset. On Darwin
++ we found that the it is not possible to get the correct key-
++ board layout unless it is set on the local machine, before
++ the NX session is started, by using xmodmap. As we set the
++ keyboard locally, we must prevent the X server to reset, or
++ we would loose any local configuration.
++
++nx-X11-1.3.2-8
++
++- Removed action associated to keysym XK_Terminate_Server. This
++ could cause agent to be terminated when pressing shift + back-
++ space if using the default US keyboard mapping.
++
++- Disabled the remaining debug logs in lib/X11/PutImage.c
++
++nx-X11-1.3.2-7
++
++- Fixed the wrong programs/Xserver/Imakefile in 1.3.2-6 package.
++
++nx-X11-1.3.2-6
++
++- Changed the define from NX_CLEAN_IN_PLACE to NX_CLEAN_INPLACE.
++ Definition of symbol is now placed in the Imakefile.
++
++- The new _NXEnableCleanInplace Xlib variable does control which
++ algorithm is used to clean the images. Setting NX_IMAGEINPLACE
++ in the environment will activate the in-place cleanup.
++
++- The default value of _NXEnableCleanInplace is -1. Leaving it to
++ a value <= 0 disables use of CleanInplace.
++
++nx-X11-1.3.2-5
++
++- Patch in config/cf/sun.cf. Fix for libfontconfig compilation
++ during gmake Everything on Solaris.
++
++- Patch in lib/X11/Imakefile. Fix for nxcomp compilation during
++ gmake World on Solaris.
++
++nx-X11-1.3.2-4
++
++- Image cleanup is now performed by using NXCleanInPlaceImage from
++ nxcompext. This function saves a buffer copy by cleaning the
++ padding bytes in the same buffer provided by the caller. Note that
++ to prevent memory violations in the case the image was allocated
++ in a static buffer, the function will temporarily redefine the
++ SIGSEGV handler. The former handler is restored before returning
++ to the caller. This can potentially affect some multithreaded
++ clients. Is to be decided if the function is safe enough to be
++ included in the production release.
++
++nx-X11-1.3.2-3
++
++- More debug logs in programs/Xserver/xkb/ddxLoad.c.
++
++nx-X11-1.3.2-2
++
++- Added NXmiwindow.o to NXAGENTOBJS in programs/Xserver/Imakefile.
++ File was not linked into the resulting nxagent. This solves the
++ problem of missing repaints in CDE and other Xt applications.
++
++nx-X11-1.3.2-1
++
++- Added some debug logs in programs/Xserver/xkb/ddxLoad.c. Function
++ XkbDDXCompileKeymapByNames is called by OpenOffice to read the
++ keyboard configuration whenever a drop-down menu is accessed. It
++ seem to always fail with the following error:
++
++ The XKEYBOARD keymap compiler (xkbcomp) reports:
++ > Error: Can't find file "unknown" for geometry include
++ > Exiting
++ > Abandoning geometry file "default"
++
++- Opened the 1.3.2 development branch.
++
++nx-X11-1.3.1-12
++
++- Fixed a problem in xkb/ddxLoad.c on Solaris where Pclose was
++ always returning an error code despite the fact that command
++ was executed properly.
++
++nx-X11-1.3.1-11
++
++- Changed default GCC flags from '-O2 -fno-strength-reduce' to
++ -O3. No platform where NX is targeted is currently using a
++ GCC 2.x affected by the -fno-strength-reduce bug. Note also
++ that nxcomp is already compiled with -O3 since 1.1.1, so it
++ can be considered safe.
++
++nx-X11-1.3.1-10
++
++- Imported an updated fbcompose.c file from XFree86-4.3.99.902.
++ This fixes "uninitialized value" problems reported by Valgrind.
++
++- Fixed further buffer overflows by updating the following file
++ with recent versions coming from the XFree86-4.3.99.902 tree.
++
++ nx-X11/lib/font/fontfile/dirfile.c
++ nx-X11/lib/font/fontfile/encparse.c
++ nx-X11/lib/font/fontfile/fontfile.c
++
++- Fixed a possible buffer overflow in lib/font/FreeType/fttools.c.
++ Verified that the change is already in the XFree86 4.4.0 CVS.
++
++nx-X11-1.3.1-9
++
++- Fixed Xserver/Imakefile which was still referencing NXpixmap.o.
++
++nx-X11-1.3.1-8
++
++- Imported an updated fbgc.c from XFree86-4.3.99.902. This fixes
++ some minor problems reported by Valgrind.
++
++- A major problem was reported by Valgrind about reading after
++ the block allocated in fbCreatePixmap from AllocatePixmap. The
++ file pixmap.c has been modified so that 4 bytes are added to
++ the pixmap buffer at any new allocation. This quick hack should
++ solve the problem for both nxagent and the NXWin server. Further
++ investigation is planned for the next release.
++
++- Fixed Xtranssock.c to compile on Solaris where struct sigaction
++ doesn't have the sa_restorer member.
++
++nx-X11-1.3.1-5
++
++- Renamed the NX-sun.def configuration file to NX-Sun.def.
++
++- Renamed the non-standard NX_iPAQ_XServer and NX_Zaurus_XServer
++ symbols to NXiPAQXServer and NXZaurusXServer.
++
++- Added the missing sun.cf.XF86.original file in config/cf.
++
++- Added the missing empty file host.def.XF86.original in the
++ same directory.
++
++- Added initialization of sa.sa_mask when setting sigaction()
++ for SIGCHLD. The problem was reported by Valgrind running
++ nxagent.
++
++- Removed an unused block of code from WaitFor.c. The code had
++ been commented out in previous versions.
++
++- Removed the non-standard colon at the end of version in this
++ CHANGELOG.
++
++- Removed the spurious spaces in this CHANGELOG.
++
++nx-X11-1.3.1-4
++
++- Added a little workaround to the top Imakefile intended to
++ hide the makedepend warnings about non portable whitespaces
++ in sources.
++
++nx-X11-1.3.1-3
++
++- Fixed compilation problem with nxagent-1.3.1-13.
++
++nx-X11-1.3.1-2
++
++- Changes in NX-sun.def configuration file for Solaris to allow
++ compilation of the XKB extension.
++
++nx-X11-1.3.1-1
++
++- Opened the 1.3.1 development branch.
++
++nx-X11-1.3.0-6
++
++- Original output buffer size in stock XFree86 is 2048. We try
++ to reduce context switches and help stream compression by
++ increasing the maximum size of the buffer 8192. _NXFlushSize
++ determines when the display buffer is actually flushed. It is
++ set by default to 4096 but agents should set it to 0 if they
++ want to disable early flush.
++
++- Added the _NXLostSequenceFunction function pointer to let NX
++ agents suppress the error message and modify the default Xlib
++ behaviour when out-of-order sequence numbers are received.
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_cross.def.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_cross.def.X.original
new file mode 100644
index 000000000..907c5c850
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_cross.def.X.original
@@ -0,0 +1,33 @@
+--- ./nx-X11/config/cf/cross.def.X.original 2015-02-13 14:03:44.396448342 +0100
++++ ./nx-X11/config/cf/cross.def 2015-02-10 19:13:13.392701311 +0100
+@@ -16,16 +16,16 @@
+ #define StandardDefines -Dlinux -D__arm__ -D_POSIX_SOURCE \
+ -D_BSD_SOURCE -D_GNU_SOURCE -DX_LOCALE
+ #undef CcCmd
+-#define StdIncDir /skiff/local/arm-linux/include
++#define StdIncDir /opt/Embedix/tools/arm-linux/include
+ #define PreIncDir
+ #undef PostIncDir
+-#define PostIncDir /skiff/local/lib/gcc-lib/arm-linux/2.95.2/include
+-#define CcCmd /skiff/local/bin/arm-linux-gcc
++#define PostIncDir /opt/Embedix/tools/lib/gcc-lib/arm-linux/2.95.2/include
++#define CcCmd /opt/Embedix/tools/bin/arm-linux-gcc
+ #undef CplusplusCmd
+ #define HasCplusplus YES
+-#define CplusplusCmd /skiff/local/bin/arm-linux-g++
++#define CplusplusCmd /opt/Embedix/tools/bin/arm-linux-g++
+ #define DoRanlibCmd YES
+-#define RanlibCmd /skiff/local/bin/arm-linux-ranlib
++#define RanlibCmd /opt/Embedix/tools/bin/arm-linux-ranlib
+ #undef ExtraLoadFlags
+ #define ExtraLoadFlags
+ #define FbNoPixelAddrCode
+@@ -33,7 +33,7 @@
+ #define TermcapLibrary -ltermcap
+
+ #undef LdPostLib
+-#define LdPostLib -L/skiff/local/arm-linux/lib
++#define LdPostLib -L/opt/Embedix/tools/arm-linux/lib
+
+ #undef ExtensionOSDefines
+ #define ExtensionOSDefines
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_host.def.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_host.def.X.original
new file mode 100644
index 000000000..cd1b1fbf6
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_host.def.X.original
@@ -0,0 +1,1023 @@
+--- ./nx-X11/config/cf/host.def.X.original 2015-02-13 14:03:44.400448260 +0100
++++ ./nx-X11/config/cf/host.def 2015-02-13 14:03:44.400448260 +0100
+@@ -0,0 +1,1020 @@
++XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
++/******************************************************************************/
++/*
++ * This file is to provide a quick method for most people to change the
++ * behaviour of their Xorg installation without having to fully
++ * understand the workings of site.def and all the various '.cf' files.
++ *
++ * In the vast majority of cases, it should not be necessary to use this
++ * file at all or change it in any way.
++ *
++ * This file is divided into two sections. The first contains settings
++ * that end-users might reasonably change. The second contains settings
++ * that developers might want to change.
++ *
++ * IMPORTANT NOTE: In all cases changing the defaults may cause problems
++ * and/or unexpected side-effects. If you don't understand what a setting
++ * does, then it's best to not change it. If you make changes and have
++ * problems, verify that those problems are also present when using an
++ * empty host.def file and unchanged version of this file before reporting
++ * them.
++ *
++ * A good way to use this file is to copy it to host.def, and make the
++ * changes there. That way, future patches to this file won't fail.
++ * The host.def file will never be patched.
++ *
++ * The distributed version of this file MUST contain no uncommented
++ * definitions. Default definitions belong in xorg.cf, or <vendor>.cf
++ * files.
++ */
++/******************************************************************************/
++
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
++#if !defined(NXZaurusXServer) && !defined(NXiPAQXServer) && !defined(DarwinArchitecture)
++
++#if defined(SunArchitecture)
++#define ProjectRoot /usr/openwin
++#endif
++
++/*
++ * Enable use the Cygwin IPC libraries to get MIT-SHM support.
++ */
++#if defined(cygwinArchitecture)
++#define UseCygIPC YES
++#endif
++
++/*
++ * If you have build-specific modifications in your host.def file, but
++ * want an empty host.def file installed when doing 'make install',
++ * uncomment the following
++ *
++#define InstallEmptyHostDef
++ */
++
++/*
++ * Which servers to build. There is only Xorg server.
++ * It can be disabled by the following.
++ *
++#define XorgServer NO
++ */
++#define XorgServer NO
++
++/*
++ * To disable building the Xnest server, uncomment this.
++ *
++#define XnestServer NO
++ */
++#define XnestServer NO
++
++/*
++ * To disable building Xvfb, uncomment this.
++ *
++#define XVirtualFramebufferServer NO
++ */
++#define XVirtualFramebufferServer NO
++
++/*
++ * To enable building Xdmx, uncomment this.
++ *
++#define XdmxServer YES
++ */
++#define XdmxServer NO
++
++/*
++ * To disable building Xprt, uncomment this.
++ *
++#define XprtServer NO
++ */
++#define XprtServer NO
++
++/*
++ * Xprint is needed by Xprt. You can disable it if
++ * you are not going to build Xprt.
++ *
++#define BuildXprint NO
++ */
++#define BuildXprint NO
++
++/*
++ * Building libraries with NX enhancements is disabled
++ * by default. You should enable this in your host.def.
++ *
++#define NXLibraries YES
++ */
++#define NXLibraries YES
++
++/*
++ * Building the NX agent nested server is disabled
++ * by default. Enable this in your host.def.
++ *
++#define NXAgentServer YES
++ */
++#define NXAgentServer YES
++
++/*
++ * Assume the new build tree.
++ *
++#define NXUpgradeAgentServer NO
++ */
++#define NXUpgradeAgentServer YES
++
++#ifdef NXAgentServer
++#define BuildRenderLibrary YES
++#define SharedLibFreetype2 YES
++#define NormalLibFreetype2 YES
++#define FontLibSharedFreeType NO
++#endif
++
++/*
++ * Define this symbol to build the NX enhanced MS Windows
++ * X server for Cygnus environment.
++ *
++#define NXWinServer YES
++ */
++#if defined(cygwinArchitecture)
++#define NXWinServer NO
++#define XWinServer NO
++#endif
++
++/*
++ * Set the default server (ie the one that gets the sym-link to "X")
++ *
++#define ServerToInstall Xorg
++ */
++
++/*
++ * Force build of X libraries if any nested server is to be built.
++ *
++#define BuildLibraries YES
++ *
++ * If you just want libraries for NXAgentServer, this should be
++ * enough (never tested, although).
++ *
++#define BuildLibrariesForXServers YES
++ */
++#if XnestServer || NXAgentServer
++#define BuildLibraries YES
++#endif
++
++#define BuildDamageLibrary YES
++
++#define BuildXfixesLibrary YES
++
++#define BuildCompositeLibrary YES
++
++#define BuildRandRLibrary YES
++
++#define BuildDocs NO
++
++#define BuildComposite YES
++
++/*
++ * If you only run the X server under xdm the X servers don't need to be
++ * installed SetUID, and you may comment out the lines below. If you run
++ * the servers by hand (with xinit or startx), then they do need to be
++ * installed SetUID on most platforms.
++ *
++ * Consult your system administrator before making the X server setuid.
++ *
++#define InstallXserverSetUID NO
++ */
++
++
++/*
++ * Server configuration parameters. The defaults are shown here:
++ */
++
++/*
++ * Which drivers to build. When building a static server, each of these
++ * will be included in it. When building the loadable server each of these
++ * modules will be built.
++ *
++#define XF86CardDrivers mga glint nv tga s3virge sis rendition \
++ neomagic i740 tdfx savage \
++ cirrus vmware tseng trident chips apm \
++ GlideDriver fbdev i128 \
++ ati DevelDrivers ark cyrix \
++ siliconmotion \
++ vesa vga XF86OSCardDrivers XF86ExtraCardDrivers
++ */
++
++/*
++ * To add third party drivers to the standard driver list, set the
++ * following.
++ *
++#define XF86ExtraCardDrivers extradriver1 extradriver2 ...
++ */
++
++/*
++ * Select the XInput devices you want by uncommenting this.
++ *
++#define XInputDrivers mouse keyboard acecad calcomp citron \
++ digitaledge dmc dynapro elographics \
++ microtouch mutouch penmount spaceorb summa \
++ wacom void magictouch aiptek
++ */
++
++/* To enable building of development DRI drivers (insecure, or not
++ * useful on the chosen architecture, uncomment this define.
++#define BuildDevelDRIDrivers YES
++ */
++
++/*
++ * To use the deprecated, old keyboard driver, uncomment this. But
++ * even better, make the new keyboard driver (hw/xfree86/input/keyboard)
++ * work for your architechture. The old driver will be removed in the
++ * next release.
++ *
++#define UseDeprecatedKeyboardDriver YES
++ */
++
++/*
++ * There are three parameters that determine where and how the Matrox HAL
++ * library is used:
++ *
++ * HaveMatroxHal -- You have the HALlib.a binary library installed
++ * in xfree86/drivers/mga/HALlib, and you want it to
++ * be used.
++ * Default: NO
++ *
++ * BuildMatroxHal -- You have the source for the HALlib library (installed
++ * in xfree86/drivers/mga/hallib), and want to build and
++ * use it.
++ * Default: NO
++ *
++ * UseMatroxHal -- You want to build support for loading/using the HAL
++ * library into the mga driver. For module server builds
++ * you don't need to have the HALlib library to do this.
++ * but you want to build support for loading it and using
++ * it into the mga driver module.
++ * Default: YES for loadable server build
++ * (HaveMatroxHal || BuildMatroxHal) for static
++ */
++
++/*
++ * To disable use of the Matrox HAL library, uncomment this:
++ *
++#define UseMatroxHal NO
++ */
++
++/*
++ * If you have the HALlib.a binary installed in xfree86/drivers/mga/HALlib,
++ * uncomment this:
++ *
++#define HaveMatroxHal YES
++ */
++
++/*
++ * If you have the HALlib source code installed in xfree86/drivers/mga/hallib,
++ * uncomment this:
++#define BuildMatroxHal YES
++ */
++
++/*
++ * To disable building the font server, uncomment this.
++ *
++#define BuildFontServer NO
++ */
++#define BuildFontServer NO
++
++/*
++ * Speedo fonts have been disabled by default in this release.
++ * To re-enable support for Speedo fonts, uncomment this.
++ *
++#define BuildSpeedo YES
++ */
++
++/*
++ * To disable support for CID fonts, uncomment this.
++ *
++#define BuildCID NO
++ */
++
++/*
++ * To disable support for TrueType fonts, uncomment these.
++ *
++#define BuildFreeType NO
++ */
++
++/*
++ * To set non-default build options for the underlying FreeType libraries,
++ * add them here and uncomment.
++ *
++#define Freetype2BuildDefines -DFREETYPE_BUILD_DEFINES
++ */
++
++/*
++ * To build the FreeType libraries with the TrueType byte code interpreter
++ * enabled, uncomment this. Note that there are patent issues related to the
++ * TrueType byte code interpreter, and we only recommend you enabling this
++ * if you are sure that there are no legal impediments to you doing so. See
++ * <http://www.freetype.org/patents.html> for further information.
++ *
++#define Freetype2BuildDefines -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER
++ */
++
++/*
++ * Do you want to Build Fonts (Usually you only want to build and install
++ * fonts once, if this is a first time install you will want to build the
++ * fonts)
++ *
++#define BuildFonts NO
++ */
++#define BuildFonts NO
++
++/*
++ * To not build/install the 75dpi fonts, uncomment the following
++ *
++#define Build75DpiFonts NO
++ */
++
++/*
++ * To not build/install the 100dpi fonts, uncomment the following
++ *
++#define Build100DpiFonts NO
++ */
++
++/*
++ * To build/install the Speedo fonts, uncomment the following
++ * (see setting above about Speedo support as well)
++ *
++#define BuildSpeedoFonts YES
++ */
++
++/*
++ * To not build/install the Type1 fonts, uncomment the following
++ *
++#define BuildType1Fonts NO
++ */
++
++/*
++ * To not build/install the CID fonts, uncomment the following
++ *
++#define BuildCIDFonts NO
++ */
++
++/*
++ * To not build/install the True Type fonts, uncomment the following
++ *
++#define BuildTrueTypeFonts NO
++ */
++
++/*
++ * To not build/install the Cyrillic fonts, uncomment the following
++ *
++#define BuildCyrillicFonts NO
++ */
++
++/*
++ * To not install the local font directory, uncomment the following
++ *
++#define MakeLocalFontDir NO
++ */
++
++/*
++ * Include True Type Fonts to default font path. It is safe to do
++ * this by default as NX intaller carries only misc and TTF in the
++ * basic set of fonts installed under Windows.
++ *
++#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/75dpi/,$(FONTDIR)/100dpi/
++ */
++
++#if defined(LinuxArchitecture) || defined(SunArchitecture) || defined(FreeBSDArchitecture)
++#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/75dpi/,$(FONTDIR)/100dpi/,$(FONTDIR)/TTF/
++#endif /* #if defined(LinuxArchitecture) || defined(SunArchitecture) */
++
++#if defined(cygwinArchitecture)
++#define DefaultFontPath /mnt/NX/fonts/base/,/mnt/NX/fonts/misc/,/mnt/NX/fonts/Speedo/,/mnt/NX/fonts/Type1/,/mnt/NX/fonts/75dpi/,/mnt/NX/fonts/100dpi/,/mnt/NX/fonts/TTF/
++#define DefaultRGBDatabase /mnt/NX/fonts/rgb
++#endif /* #if defined(cygwinArchitecture) */
++
++/*
++ * To build only the servers with a cut-down source tree, uncomment
++ * this.
++ *
++#define BuildServersOnly YES
++ */
++#define BuildServersOnly YES
++
++/*
++ * By default, the sample config files for xinit, xdm and xfs are installed
++ * only when there is no pre-existing version installed. Uncommenting the
++ * following lines will force the sample versions to be installed even if
++ * it means over-writing existing versions.
++ *
++#define InstallXinitConfig YES
++#define InstallXdmConfig YES
++#define InstallFSConfig YES
++ */
++
++/*
++ * By default the application defaults files are always installed.
++ * Uncommenting the the following will prevent exising application
++ * defaults files from being over-written.
++ *
++#define InstallAppDefFiles NO
++ */
++
++/*
++ * Undefine the following if you don't want to have config files and
++ * app-defaults installed in a separate directory (i.e. /etc/X11).
++ *
++#define UseSeparateConfDir NO
++ */
++
++/*
++ * To enable building the glide driver, you need to define
++ * HasGlide2 to YES and set the Glide2IncDir variable.
++ * HasGlide2 is per default NO.
++ *
++#define HasGlide2 YES
++ */
++
++/*
++ * Set the path to your Glide include files.
++ *
++#define Glide2IncDir /usr/include/glide
++ */
++
++/*
++ * Have glide 3?
++ *
++#define HasGlide3 YES
++ */
++
++/*
++ * Set the path to your Glide 3 include files.
++ *
++#define Glide3IncDir /usr/include/glide3
++ */
++
++
++
++/*
++ * Unless you're a developer you shouldn't need to change anything
++ * beyond this point.
++ */
++
++/*
++ * If you want to enable some developer settings, like more verbose
++ * compiler warnings, uncomment this.
++ *
++#define XFree86Devel YES
++*/
++
++/*
++ * If using GCC 2.x on a system where it isn't the default, uncomment
++ * the following
++ *
++ */
++#if defined(SunArchitecture)
++#define HasGcc2 YES
++#define HasGcc YES
++#endif
++
++/*
++ * The default optimisation flags for GCC 2.x. -fno-strength-reduce is
++ * here to work around a bug in -O2 for GCC 2.x on i386 platforms.
++ * If you are using a version that doesn't have this bug, you can
++ * uncomment the following line, and remove '-fno-strength-reduce'
++ * If you are building binaries for a 486, it may be beneficial to add
++ * -m486
++ *
++#define DefaultGcc2i386Opt -O2 -fno-strength-reduce
++ */
++
++#if defined (LinuxArchitecture)
++#define DefaultGcc2i386Opt -g -O3
++#endif
++
++/*
++ * Enable all the optimizations on AMD64.
++ */
++
++#define DefaultGcc2AMD64Opt -g -O3 GccAliasingArgs
++
++/*
++ * This allows the GCC warning flags to be set. The default is shown here.
++ *
++#define GccWarningOptions -Wall -Wpointer-arith -Wstrict-prototypes \
++ -Wmissing-prototypes -Wmissing-declarations \
++ -Wredundant-decls -Wnested-externs
++ */
++
++/*
++ * Sun Compiler stuff..
++ *
++#define HasSunC YES
++#define HasSunCplusplus YES
++#define CplusplusCompilerMajorVersion 5
++#define CplusplusCompilerMinorVersion 0
++#define CCompilerMajorVersion 5
++#define CCompilerMinorVersion 0
++ */
++
++/*
++ * Optimized Sun Compiler Build.
++ *
++#define DefaultCDebugFlags -xO4 -xtarget=pentium_pro
++#define OptimizedCDebugFlags -xO4 -xtarget=pentium_pro
++ */
++
++/*
++ * Debuggable Sun Compiler Build.
++ * Note: This builds _EVERYTHING_ as debuggable
++ *
++#define DefaultCDebugFlags -g -xs
++#define OptimizedCDebugFlags -g -xs
++ */
++
++/*
++ * For Linux, this should match the Binutils version you have. This example
++ * is for 2.6.0.7. See linux.cf for the default setting.
++ *
++ * This should automatically get set correctly by imake.
++ *
++#define LinuxBinUtilsMajorVersion 26
++ */
++
++/*
++ * For Linux, these should match the libc version you have. This example
++ * is for libc.5.4.x. See linux.cf for the default setting.
++ *
++ * This should automatically get set correctly by imake.
++ *
++#define LinuxCLibMajorVersion 5
++#define LinuxClibMinorVersion 4
++ */
++
++/*
++ * If you want to use the GNU malloc library, uncomment this
++ *
++#define UseGnuMalloc YES
++ */
++
++/*
++ * Set this to whatever is required to access the GNU malloc library.
++ * The default is '-lgmalloc' unless is specified in the OS's .cf file.
++ *
++#define GnuMallocLibrary -L/usr/local/lib -lgmalloc
++ */
++
++/*
++ * To enable the internal Xserver malloc, uncomment this
++ *
++#define UseInternalMalloc YES
++ */
++
++/*
++ * Some Linux releases don't have a libtermcap. In this case you may need
++ * to uncomment the following
++ *
++#define TermcapLibrary -lncurses
++ */
++
++/*
++ * Build a server that dynamically loads the modules by setting
++ * this to YES. This defaults to YES on most platforms. A static server
++ * can be built by setting this to NO.
++ *
++#define DoLoadableServer NO
++ */
++
++/*
++ * This release defaults to building dlopen() style modules instead of the
++ * previously standard loader modules.
++ *
++ * Uncomment the following to return to the XFree86 custom loader modules.
++ *
++#define MakeDllModules NO
++ */
++
++/*
++ * Build XAA. This can be disabled with:
++ *
++#define XF86XAA NO
++ */
++
++/*
++ * Build vgahw. This can be disabled with:
++ *
++#define XF86VgaHw NO
++ */
++
++/*
++ * Build xf1bpp. This can be disabled with:
++ *
++#define XF1Bpp NO
++ */
++
++/*
++ * Build xf4bpp. This can be disabled with:
++ *
++#define XF4Bpp NO
++ */
++
++
++/*
++ * BSD Console driver support (for FreeBSD and NetBSD).
++ *
++ * By default, support is included for pccons and pcvt for NetBSD, and
++ * pccons, syscons and pcvt for FreeBSD.
++ *
++ * To change the list of supported drivers, set the following parameter.
++ * Possible values are -DPCCONS_SUPPORT, -DSYSCONS_SUPPORT, -DPCVT_SUPPORT.
++ * The following example includes support for syscons and pcvt only.
++ *
++#define XFree86ConsoleDefines -DSYSCONS_SUPPORT -DPCVT_SUPPORT
++ */
++
++/*
++ * To link the X server with a dynamic version of the Xfont library,
++ * uncomment this.
++ *
++#define XserverStaticFontLib NO
++ */
++
++/*
++ * To enable binary compatibility with previous versions of the font
++ * encoding support, uncomment this.
++ *
++#define FontencCompatibility YES
++ */
++
++/*
++ * To disable building XInput support, uncomment this
++ *
++#define BuildXInputExt NO
++ */
++#if defined(SunArchitecture)
++#define BuildXInputExt YES
++#endif
++
++/*
++ * Uncomment this for joystick support.
++ *
++ * Note: Joystick support is broken, so don't enable this.
++ *
++#define JoystickSupport YES
++ */
++
++/*
++ * To disable the ScreenSaver Extension, uncomment this line.
++ *
++#define BuildScreenSaverExt NO
++ */
++#define BuildScreenSaverExt NO
++
++/*
++ * If you don't want to build Xinerama support, uncomment this.
++ *
++#define BuildXinerama NO
++ */
++#define BuildXinerama NO
++
++/*
++ * If you don't want to build support for the GLX extension, uncomment this.
++ *
++#define BuildGlxExt NO
++ */
++#define BuildGlxExt YES
++
++/*
++ * Taken from xorg.cf.
++ */
++
++#if defined(SparcArchitecture) \
++ || defined (Sparc64Architecture) \
++ || defined(ia64Architecture) \
++ || defined(s390xArchitecture) \
++ || defined(AMD64Architecture)
++#define GlxExtraDefines -D__GLX_ALIGN64
++#endif
++
++/*
++ * If you want to build the xf86rush extension, uncomment this line.
++ * This isn't recommended.
++ *
++#define BuildXF86RushExt YES
++ */
++#define BuildXF86RushExt NO
++
++/*
++ * If you want to build the client library for the xf86rush extension,
++ * uncomment this line. This isn't recommended.
++ *
++#define BuildXF86RushLibrary NO
++ */
++#define BuildXF86RushLibrary NO
++
++/*
++ * We should never need LBX in a NX enabled environment...
++ *
++#define BuildLBX NO
++ */
++#define BuildLBX NO
++
++#define BuildXKB YES
++#define BuildXKBlib YES
++
++#define SharedLibXau NO
++
++/*
++ * If you are running NetBSD 0.9C or later, and have the aperture driver
++ * installed, uncomment this.
++ *
++#define HasNetBSDApertureDriver YES
++ */
++
++/*
++ * If you are running SVR3 and have the mmap driver installed (for linear
++ * framebuffer access) uncomment this.
++ *
++#define HasSVR3mmapDrv YES
++ */
++
++/*
++ * If you are using an SVR3 (like ISC 4.x) which supports long file names,
++ * you can uncomment this to have manual pages installed under their
++ * full names
++ *
++#define ExpandManNames YES
++ */
++
++/*
++ * For a POSIXized build on Interactive uncomment this
++ * Could be used with gcc 'till Version 2.6.3
++ * Should be used with gcc 2.7.2.
++ *
++#define UsePosix YES
++ */
++
++/*
++ * If you don't want XDMAUTH support (if you don't have Wraphelp.c),
++ * comment this out.
++ *
++ */
++#if defined(LinuxArchitecture)
++#define HasXdmAuth YES
++#endif /* #if defined(LinuxArchitecture) */
++
++/*
++ * If you have Linux DECnet support, and want to build XFree86 with support
++ * for connections over DECnet, uncomment this.
++ *
++#define HasDECnet YES
++ */
++
++/*
++ * To build static and shared libraries with debugging information, uncomment
++ * this. Assumes you have Gcc2.
++ * (If you don't have Gcc2, you can use the DebugLib{X11,...} variables
++ * to build debugging versions of the libraries separately.)
++ *
++#define DebuggableLibraries YES
++*/
++#if defined(LinuxArchitecture)
++#define DebuggableLibraries YES
++#endif /* #if defined(LinuxArchitecture) */
++/*
++ * To forceably build static libraries in addition to shared libraries,
++ * uncomment this.
++ *
++#define ForceNormalLib YES
++ */
++
++/*
++ * Uncomment this if your default tools (eg, gcc, ld, as, etc) are
++ * not the Linux ELF versions.
++ *
++#define LinuxElfDefault NO
++ */
++
++/*
++ * To use ELF format shared libraries for supported OSs, uncomment this.
++ *
++ * For Linux the default setting of this is the same as the setting of
++ * LinuxElfDefault.
++ *
++ * For FreeBSD this should automatically be set correctly by imake. Only
++ * change it here if you need to override the automatic setting.
++ *
++#define UseElfFormat YES
++ */
++
++/*
++ * For FreeBSD/ELF (FreeBSD 3.0) it is possible to also build and install
++ * a.out compatibility libraries. To enable that, uncomment this.
++ *
++#define BuildAoutLibraries YES
++ */
++
++/*
++ * If you have trouble with make bombing out in Xlib, try uncommenting this.
++ * You will not get dependencies as a result, but better than nothing.
++ *
++#define MakeHashTableBug YES
++ */
++
++/*
++ * If you do not want your man pages compress under SVR3 systems that
++ * support it, uncomment this.
++ *
++#define CompressManPages NO
++ */
++
++/*
++ * If you have sgmlfmt (the XFree86 doctools package) and want to build
++ * formatted docs from the SGML source, uncomment this.
++ *
++#define HasSgmlFmt YES
++ */
++
++/*
++ * To disable building some document formats, uncomment some of these.
++ *
++#define BuildLinuxDocText NO
++#define BuildLinuxDocHtml NO
++#define BuildLinuxDocPS NO
++ */
++
++/*
++ * To install Japanese versions of the documentation uncomment this.
++ * Note: The Japanese documentation consists of a subset of the
++ * XFree86 3.1 docs.
++ *
++#define InstallJapaneseDocs YES
++ */
++
++/*
++ * To build/install X specs docs, uncomment the following.
++ * The SpecsDocDirs setting here is recommended because it covers
++ * the docs that XFree86 has changed or added.
++ *
++#define BuildSpecsDocs YES
++#define SpecsDocDirs CTEXT GL ICCCM X11 Xext Xmu Xv XvMC i18n
++ */
++
++/*
++ * To build all specs docs, not just those listed in SpecsDocDirs, uncomment
++ * the following.
++ *
++#define BuildAllSpecsDocs YES
++ */
++
++/*
++ * If your system doesn't support vm86() mode and you have
++ * libx86emu set library path here
++ *
++#define X86EMU_LIBPATH /usr/local/lib
++ */
++
++/*
++ * Most platforms default to using an already installed FreeType 2 library.
++ * To use the one included in this release instead, uncomment the following.
++ *
++#define HasFreetype2 NO
++ */
++#define HasFreetype2 NO
++
++/*
++ * To use a FreeType library already installed outside the default search
++ * paths, uncomment the following and set the path as needed.
++ *
++#define HasFreetype2 YES
++#define Freetype2Dir /usr/local
++ */
++
++
++/*
++ * Most platforms default to using an already installed Fontconfig library.
++ * To use the one included in this release instead, uncomment the following.
++ *
++#define HasFontconfig NO
++ */
++#define HasFontconfig NO
++
++/*
++ * To use a Fontconfig library already installed outside the default search
++ * paths, uncomment the following and set the path as needed.
++#define HasFontconfig YES
++#define FontconfigDir /usr/local
++ */
++
++
++/*
++ * Most platforms default to using an already installed Expat library.
++ * To use the one included in this release instead, uncomment the following.
++ *
++#define HasExpat NO
++ */
++#define HasExpat NO
++
++/*
++ * To use a Expat library already installed outside the default search
++ * paths, uncomment the following and set the path as needed.
++#define HasExpat YES
++#define ExpatDir /usr/local
++ */
++
++
++/*
++ * Most platforms default to using an already installed PNG library.
++ * To use the one included in this release instead, uncomment the following.
++ *
++#define HasLibpng NO
++ */
++
++/*
++ * To use a PNG library already installed outside the default search
++ * paths, uncomment the following and set the path as needed.
++#define HasLibpng YES
++#define LibpngDir /usr/local
++ */
++
++
++/*
++ * Most platforms default to using an already installed xterm program.
++ * To use the one included in this release instead, uncomment the following.
++ *
++#define BuildXterm YES
++ */
++
++#define SharedLibXau NO
++
++#define SharedLibXdmcp NO
++
++#define BuildXaw7 YES
++
++#else /* #if !defined(NXZaurusXServer) && !defined(NXiPAQXServer) && !defined(DarwinArchitecture) */
++
++#if defined(DarwinArchitecture) && !defined(NXZaurusXServer) && !defined(NXiPAQXServer)
++#define NXDarwinServer NO
++#define BuildServersOnly YES
++#define DefaultFontPath /usr/NX/share/fonts/misc/,/usr/NX/share/fonts/TTF/
++#define DefaultRGBDatabase /usr/NX/share/rgb
++#define XprtServer NO
++#define BuildXprint NO
++#define XnestServer NO
++#define XVirtualFramebufferServer NO
++#define BuildFontServer NO
++#define BuildFreeType NO
++#define BuildXTrueType NO
++#define FontLibSharedFreeType NO
++#endif
++
++#if !defined(NXZaurusXServer) && defined(NXiPAQXServer)
++#define KDriveXServer YES
++#define XiPAQH3500Server YES
++#define BuildServersOnly YES
++#define NXEmbeddedXServer YES
++#define KdriveServerExtraDefines -DITSY -DMAXSCREENS=1
++#define TinyXServer YES
++#define CrossCompiling YES
++#define TouchScreen YES
++#define ItsyCompilerBug YES
++#undef BuildRandR
++#define BuildRandR YES
++#define BuildXInputLib YES
++#define BuildXTrueType YES
++#define ServerXdmcpDefines
++#define XipaqServer YES
++#endif
++
++#if !defined(NXiPAQXServer) && defined(NXZaurusXServer)
++#define KDriveXServer YES
++#define XiPAQH3500Server YES
++#define BuildServersOnly YES
++#define ZaurusXServer YES
++#define NXEmbeddedXServer YES
++#define KdriveServerExtraDefines -DITSY -DMAXSCREENS=1
++#define TinyXServer YES
++#define CrossCompiling YES
++#define TouchScreen YES
++#define ItsyCompilerBug YES
++#undef BuildRandR
++#define BuildRandR YES
++#define BuildXInputLib YES
++#define BuildXTrueType YES
++#define ServerXdmcpDefines
++#define XipaqServer YES
++#define XfbdevServer YES
++#endif
++
++#endif /* #if !defined(NXZaurusXServer) && !defined(NXiPAQXServer) && !defined(DarwinArchitecture) */
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_iPAQH3600.cf.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_iPAQH3600.cf.X.original
new file mode 100644
index 000000000..ab93486c4
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_iPAQH3600.cf.X.original
@@ -0,0 +1,112 @@
+--- ./nx-X11/config/cf/iPAQH3600.cf.X.original 2015-02-13 14:03:44.400448260 +0100
++++ ./nx-X11/config/cf/iPAQH3600.cf 2015-02-13 14:03:44.400448260 +0100
+@@ -0,0 +1,109 @@
++/* $XFree86: xc/config/cf/iPAQH3600.cf,v 1.2 2000/10/10 14:05:48 tsi Exp $ */
++/*
++ * This configuration file contains additional configuration needed
++ * to cross compile X for the Compaq iPAQ H3600 PocketPC.
++ * To use this, add the following to host.def:
++ #define KDriveXServer YES
++ #define XiPAQH3500Server YES
++ */
++
++#define CrossCompiling YES
++
++#undef i386Architecture
++#define Arm32Architecture
++
++#undef OptimizedCDebugFlags
++#define OptimizedCDebugFlags -O2
++#define ServerCDebugFlags -O2
++#undef StandardDefines
++#define StandardDefines -Dlinux -D__arm__ -D_POSIX_SOURCE \
++ -D_BSD_SOURCE -D_GNU_SOURCE -DX_LOCALE
++#undef CcCmd
++#define StdIncDir /opt/Embedix/tools/arm-linux/include
++#define PreIncDir
++#undef PostIncDir
++#define PostIncDir /opt/Embedix/tools/lib/gcc-lib/arm-linux/2.95.2/include
++#define CcCmd /opt/Embedix/tools/bin/arm-linux-gcc
++#define DoRanlibCmd YES
++#define RanlibCmd /opt/Embedix/tools/bin/arm-linux-ranlib
++#undef ExtraLoadFlags
++#define ExtraLoadFlags
++#define FbNoPixelAddrCode
++#undef TermcapLibrary
++#define TermcapLibrary -ltermcap
++
++#undef LdPostLib
++#define LdPostLib -L/opt/Embedix/tools/arm-linux/lib
++
++#undef XfbdevServer
++#define XfbdevServer YES
++#undef BuildXprint
++#define BuildLBX NO
++#define BuildFonts NO
++#define BuildAppgroup NO
++#define BuildRECORD NO
++#define BuildDBE NO
++#define BuildXCSecurity NO
++#define ItsyCompilerBug YES
++#define FontServerAccess NO
++#define ServerXdmcpDefines /**/
++
++#undef ExtensionOSDefines
++#define ExtensionOSDefines
++
++#define ProjectRoot /usr/X11R6
++
++#define GzipFontCompression YES
++
++#define KdriveServerExtraDefines -DITSY -DMAXSCREENS=1
++
++#define HostLinkRule(target, flags, src, libs) cc -I$(BUILDINCDIR) -o target src
++
++/* ComplexHostProgramTarget - Compile a program such that we can run
++ * it on this host, i.e., don't use the default cross compiler.
++ */
++#ifndef ComplexHostProgramTarget
++#define ComplexHostProgramTarget(program) @@\
++ CC=cc @@\
++ STD_INCLUDES= @@\
++ CFLAGS=$(TOP_INCLUDES) $(INCLUDES) $(BOOTSTRAPCFLAGS) @@\
++EXTRA_LOAD_FLAGS= @@\
++ PROGRAM = program @@\
++ @@\
++AllTarget(program) @@\
++ @@\
++program: $(OBJS) $(DEPLIBS) @@\
++ RemoveTargetProgram($@) @@\
++ HostLinkRule($@,$(_NOOP_),$(OBJS),$(DEPLIBS) $(LOCAL_LIBRARIES)) @@\
++ @@\
++DependTarget() @@\
++ @@\
++LintTarget() @@\
++ @@\
++clean:: @@\
++ RemoveFile(ProgramTargetName(program))
++#endif /* ComplexHostProgramTarget */
++
++#ifndef SimpleHostProgramTarget
++#define SimpleHostProgramTarget(program) @@\
++ SRCS = program.c @@\
++ @@\
++ CC=cc @@\
++ STD_INCLUDES= @@\
++ CFLAGS=$(TOP_INCLUDES) $(INCLUDES) $(BOOTSTRAPCFLAGS) @@\
++EXTRA_LOAD_FLAGS= @@\
++ PROGRAM = program @@\
++ @@\
++AllTarget(program) @@\
++ @@\
++program: program.o $(DEPLIBS) @@\
++ RemoveTargetProgram($@) @@\
++ HostLinkRule($@,$(_NOOP_),program.o,$(DEPLIBS) $(LOCAL_LIBRARIES)) @@\
++ @@\
++DependTarget() @@\
++ @@\
++LintTarget() @@\
++ @@\
++clean:: @@\
++ RemoveFile(ProgramTargetName(program))
++#endif /* SimpleHostProgramTarget */
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sun.cf.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sun.cf.X.original
new file mode 100644
index 000000000..444c142be
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sun.cf.X.original
@@ -0,0 +1,50 @@
+--- ./nx-X11/config/cf/sun.cf.X.original 2015-02-13 14:03:44.400448260 +0100
++++ ./nx-X11/config/cf/sun.cf 2015-02-13 14:03:44.400448260 +0100
+@@ -299,7 +299,12 @@
+
+ #if OSMajorVersion == 4
+ # if OSMinorVersion == 1
++/*
++ * Currently the NX transport only works with select().
++ *
+ # define HasPoll YES
++ */
++# define HasPoll NO
+ # endif
+ # if OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1)
+ /* You ALSO need this if you have Sun ld patch 100170-06 or later to 4.1.1 */
+@@ -359,10 +364,12 @@
+ # endif
+ #endif
+
+-#define ServerOSDefines XFree86ServerOSDefines IncludeCG2HeaderDefine
++#define ServerOSDefines XFree86ServerOSDefines IncludeCG2HeaderDefine \
++ -DPIXPRIV
+ #define ServerExtraDefines AllocateLocalDefines XFree86ServerDefines \
+ CompilerServerExtraDefines \
+- OSServerExtraDefines ArchServerExtraDefines
++ OSServerExtraDefines ArchServerExtraDefines \
++ -DPIXPRIV
+
+ #ifndef HasPerl
+ /* Solaris 8 comes with perl. Earlier versions don't. */
+@@ -384,7 +391,8 @@
+ #endif
+
+ #if OSMajorVersion > 4
+-# define ConnectionFlags -DTCPCONN -DUNIXCONN -DLOCALCONN
++/* #define ConnectionFlags -DTCPCONN -DUNIXCONN -DLOCALCONN */
++#define ConnectionFlags -DUNIXCONN -DTCPCONN
+ # if HasSunC
+ # ifdef DefaultSunProCCompilerDir
+ # ifndef CcCmd
+@@ -452,7 +460,8 @@
+ # endif
+ # define ToolkitStringsABIOptions -intelabi SolarisABIFlag
+ # else
+-# define StandardDefines -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ LargefileDefines
++# define StandardDefines -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ LargefileDefines \
++ -DPIXPRIV
+ # define ToolkitStringsABIOptions -sparcabi SolarisABIFlag
+ # endif
+ # define ExtraLibraries -lsocket -lnsl
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sunLib.tmpl.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sunLib.tmpl.X.original
new file mode 100644
index 000000000..17f858440
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_sunLib.tmpl.X.original
@@ -0,0 +1,122 @@
+--- ./nx-X11/config/cf/sunLib.tmpl.X.original 2015-02-13 14:03:44.400448260 +0100
++++ ./nx-X11/config/cf/sunLib.tmpl 2015-02-13 14:03:44.400448260 +0100
+@@ -45,119 +45,6 @@
+
+ #else /* else it's Solaris */
+
+-/* Solaris uses single digit library versions, and versions of libraries
+- * defined in SVID specs should match the versions specified there.
+- */
+-
+-#ifndef SharedX11Rev
+-# define SharedX11Rev 4
+-#endif
+-#ifndef SharedOldXRev
+-# define SharedOldXRev 6
+-#endif
+-#ifndef SharedXextRev
+-# define SharedXextRev 0
+-#endif
+-#ifndef SharedXauRev
+-# define SharedXauRev 6
+-#endif
+-#ifndef SharedXdmcpRev
+-# define SharedXdmcpRev 6
+-#endif
+-#ifndef SharedXmuRev
+-# define SharedXmuRev 4
+-#endif
+-#ifndef SharedXmuuRev
+-# define SharedXmuuRev 1
+-#endif
+-#ifndef SharedXpRev
+-# define SharedXpRev 1
+-#endif
+-#ifndef SharedXpmRev
+-# define SharedXpmRev 4
+-#endif
+-#ifndef SharedXtRev
+-# define SharedXtRev 4
+-#endif
+-#ifndef SharedXaw6Rev
+-# define SharedXaw6Rev 5
+-#endif
+-#ifndef SharedXiRev
+-# define SharedXiRev 5
+-#endif
+-#ifndef SharedXtstRev
+-# define SharedXtstRev 1
+-#endif
+-#ifndef SharedFSRev
+-# define SharedFSRev 5
+-#endif
+-#ifndef SharedICERev
+-# define SharedICERev 6
+-#endif
+-#ifndef SharedSMRev
+-# define SharedSMRev 6
+-#endif
+-#ifndef SharedXcursor
+-# define SharedXcursorRev 1
+-#endif
+-#ifndef SharedXdamageRev
+-# define SharedXdamageRev 1
+-#endif
+-#ifndef SharedXevieRev
+-# define SharedXevieRev 1
+-#endif
+-#ifndef SharedXfixesRev
+-# define SharedXfixesRev 1
+-#endif
+-#ifndef SharedXftRev
+-# define SharedXftRev 2
+-#endif
+-#ifndef SharedXineramaRev
+-# define SharedXineramaRev 1
+-#endif
+-#ifndef SharedXrenderRev
+-# define SharedXrenderRev 1
+-#endif
+-#ifndef SharedXResRev
+-# define SharedXResRev 1
+-#endif
+-#ifndef SharedXvRev
+-# define SharedXvRev 1
+-#endif
+-#ifndef SharedXvMCRev
+-# define SharedXvMCRev 1
+-#endif
+-#ifndef SharedXrandrRev
+-# define SharedXrandrRev 2
+-#endif
+-#ifndef SharedXssRev
+-# define SharedXssRev 1
+-#endif
+-#ifndef SharedFontconfigRev
+-# define SharedFontconfigRev 1
+-#endif
+-#ifndef SharedGlxRev
+-# define SharedGlxRev 1
+-#endif
+-#ifndef SharedGluRev
+-# define SharedGluRev 1
+-#endif
+-#ifndef SharedGLwRev
+-# define SharedGLwRev 1
+-#endif
+-#ifndef SharedOSMesaRev
+-# define SharedOSMesaRev 4
+-#endif
+-#ifndef SharedxkbfileRev
+-# define SharedxkbfileRev 5
+-#endif
+-#ifndef SharedXxf86miscRev
+-# define SharedXxf86miscRev 1
+-#endif
+-#ifndef SharedXxf86vmRev
+-# define SharedXxf86vmRev 1
+-#endif
+-
+ # if ThreadedX
+ # if OSMinorVersion > 3
+ # define SharedThreadReqs /**/
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_svr4.cf.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_svr4.cf.X.original
new file mode 100644
index 000000000..487c295fc
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_config_cf_svr4.cf.X.original
@@ -0,0 +1,24 @@
+--- ./nx-X11/config/cf/svr4.cf.X.original 2015-02-13 14:03:44.400448260 +0100
++++ ./nx-X11/config/cf/svr4.cf 2015-02-13 14:03:44.400448260 +0100
+@@ -51,7 +51,12 @@
+ #ifndef HasLdRunPath
+ #define HasLdRunPath YES
+ #endif
++/*
++ * Currently the NX transport only works with select().
++ *
+ #define HasPoll YES
++ */
++#define HasPoll NO
+ #ifndef SVR4Architecture
+ #define SVR4Architecture
+ #endif
+@@ -278,7 +283,7 @@
+ # define XFree86ServerDefines /* */
+ #endif
+ #ifndef XFree86ServerOSDefines
+-# define XFree86ServerOSDefines -DDDXOSINIT
++# define XFree86ServerOSDefines -DDDXOSINIT -DDDXOSFATALERROR -DDDXOSVERRORF
+ #endif
+
+ #if HasGcc2ForCplusplus
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_drivers_dri_common_glcontextmodes.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_drivers_dri_common_glcontextmodes.c.X.original
new file mode 100644
index 000000000..47db91cca
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_drivers_dri_common_glcontextmodes.c.X.original
@@ -0,0 +1,10 @@
+--- ./nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.X.original 2015-02-13 14:03:44.416447966 +0100
++++ ./nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c 2015-02-10 19:13:14.992641502 +0100
+@@ -44,6 +44,7 @@
+ # include "GL/glxint.h"
+
+ # ifdef XFree86Server
++void *memset( void * ptr, int val, size_t size);
+ # include "GL/glx_ansic.h"
+ extern void * __glXMalloc( size_t size );
+ extern void __glXFree( void * ptr );
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_main_context.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_main_context.c.X.original
new file mode 100644
index 000000000..92dedfc0a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_extras_Mesa_src_mesa_main_context.c.X.original
@@ -0,0 +1,103 @@
+--- ./nx-X11/extras/Mesa/src/mesa/main/context.c.X.original 2015-02-13 14:03:44.464447019 +0100
++++ ./nx-X11/extras/Mesa/src/mesa/main/context.c 2015-02-10 19:13:14.800648672 +0100
+@@ -131,6 +131,10 @@
+ #endif
+ #include "shaderobjects.h"
+
++#ifdef NXAGENT_SERVER
++#include "WSDrawBuffer.h"
++#endif
++
+ #ifdef USE_SPARC_ASM
+ #include "sparc/sparc.h"
+ #endif
+@@ -143,6 +147,47 @@
+ int MESA_DEBUG_FLAGS = 0;
+ #endif
+
++#ifdef NXAGENT_SERVER
++extern WSDrawBufferPtr pWSDrawBuffer;
++
++int IsWSDrawBuffer(GLframebuffer *mesa_buffer)
++{
++ WSDrawBufferPtr p = pWSDrawBuffer;
++
++ while (p != NULL) {
++ if (p -> DrawBuffer == mesa_buffer) {
++ return 1;
++ }
++ p = p -> next;
++ }
++ return 0;
++}
++
++void FreeWSDrawBuffer(GLframebuffer *mesa_buffer)
++{
++ WSDrawBufferPtr p = pWSDrawBuffer;
++ WSDrawBufferPtr pOld = NULL;
++
++ if (p == NULL)
++ return;
++
++ if (p -> DrawBuffer == mesa_buffer) {
++ pWSDrawBuffer = p -> next;
++ free(p);
++ return;
++ }
++
++ while (p -> next != NULL) {
++ if (p -> next -> DrawBuffer == mesa_buffer) {
++ pOld = p -> next;
++ p -> next = p -> next -> next;
++ free(pOld);
++ return;
++ }
++ p = p -> next;
++ }
++}
++#endif
+
+ /* ubyte -> float conversion */
+ GLfloat _mesa_ubyte_to_float_color_tab[256];
+@@ -1520,6 +1565,10 @@
+ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
+ GLframebuffer *readBuffer )
+ {
++ #ifdef NXAGENT_SERVER
++ int flag;
++ #endif
++
+ if (MESA_VERBOSE & VERBOSE_API)
+ _mesa_debug(newCtx, "_mesa_make_current()\n");
+
+@@ -1558,11 +1607,30 @@
+ ASSERT(readBuffer->Name == 0);
+ newCtx->WinSysDrawBuffer = drawBuffer;
+ newCtx->WinSysReadBuffer = readBuffer;
++
++#ifdef NXAGENT_SERVER
++ flag = 0;
++ if (newCtx->DrawBuffer) {
++ if (!IsWSDrawBuffer(newCtx->DrawBuffer)) {
++ if (newCtx->DrawBuffer->Name == 0) {
++ flag = 1;
++ }
++ FreeWSDrawBuffer(newCtx->DrawBuffer);
++ }
++ else flag = 1;
++ }
++
++ if (!newCtx->DrawBuffer || flag) {
++ newCtx->DrawBuffer = drawBuffer;
++ newCtx->ReadBuffer = readBuffer;
++ }
++#else
+ /* don't replace user-buffer bindings with window system buffer */
+ if (!newCtx->DrawBuffer || newCtx->DrawBuffer->Name == 0) {
+ newCtx->DrawBuffer = drawBuffer;
+ newCtx->ReadBuffer = readBuffer;
+ }
++#endif
+
+ newCtx->NewState |= _NEW_BUFFERS;
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_Xpoll.h.in.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_Xpoll.h.in.X.original
new file mode 100644
index 000000000..b869d589d
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_Xpoll.h.in.X.original
@@ -0,0 +1,67 @@
+--- ./nx-X11/include/Xpoll.h.in.X.original 2015-02-13 14:03:44.612444107 +0100
++++ ./nx-X11/include/Xpoll.h.in 2015-02-10 19:13:14.464661220 +0100
+@@ -51,6 +51,23 @@
+
+ /* $XFree86: xc/include/Xpoll.h,v 3.8 2001/01/17 17:53:11 dawes Exp $ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #ifndef _XPOLL_H_
+ #define _XPOLL_H_
+
+@@ -120,6 +137,31 @@
+ } fd_set;
+ #endif
+
++/*
++ * Replace the standard Select with a version giving NX a
++ * chance to check its own descriptors. This doesn't cover
++ * the cases where the system is using poll or when system-
++ * specific defines override the Select definition (OS/2).
++ * See XlibInt.c for _XSelect().
++ */
++
++#ifdef NX_TRANS_SOCKET
++
++extern int _XSelect(int maxfds, fd_set *readfds, fd_set *writefds,
++ fd_set *exceptfds, struct timeval *timeout);
++
++#ifndef hpux /* and perhaps old BSD ??? */
++# define Select(n,r,w,e,t) _XSelect(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
++#else
++# ifndef _XPG4_EXTENDED /* HPUX 9.x and earlier */
++# define Select(n,r,w,e,t) _XSelect(n,(int*)r,(int*)w,(int*)e,(struct timeval*)t)
++# else
++# define Select(n,r,w,e,t) _XSelect(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
++# endif
++#endif
++
++#else /* #ifdef NX_TRANS_SOCKET */
++
+ #ifndef hpux /* and perhaps old BSD ??? */
+ # define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
+ #else
+@@ -130,6 +172,8 @@
+ # endif
+ #endif
+
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ #define __X_FDS_BITS @USE_FDS_BITS@
+
+ #ifndef __FDS_BITS
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_extensions_XKBsrv.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_extensions_XKBsrv.h.X.original
new file mode 100644
index 000000000..f85303bb2
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_include_extensions_XKBsrv.h.X.original
@@ -0,0 +1,14 @@
+--- ./nx-X11/include/extensions/XKBsrv.h.X.original 2015-02-13 14:03:44.612444107 +0100
++++ ./nx-X11/include/extensions/XKBsrv.h 2015-02-10 19:13:14.644654498 +0100
+@@ -73,6 +73,11 @@
+ #include <X11/extensions/XKBproto.h>
+ #include "inputstr.h"
+
++#ifdef NXAGENT_SERVER
++extern char *_NXGetXkbBasePath(const char *path);
++extern char *_NXGetXkbCompPath(const char *path);
++#endif
++
+ typedef struct _XkbInterest {
+ DeviceIntPtr dev;
+ ClientPtr client;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ChkIfEv.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ChkIfEv.c.X.original
new file mode 100644
index 000000000..333838d51
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ChkIfEv.c.X.original
@@ -0,0 +1,59 @@
+--- ./nx-X11/lib/X11/ChkIfEv.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/ChkIfEv.c 2015-02-10 19:13:13.120711494 +0100
+@@ -83,3 +83,56 @@
+ UnlockDisplay(dpy);
+ return False;
+ }
++
++#ifdef NX_TRANS_SOCKET
++
++/*
++ * This is just like XCheckIfEvent() but doesn't
++ * flush the output buffer if it can't read new
++ * events.
++ */
++
++Bool XCheckIfEventNoFlush (dpy, event, predicate, arg)
++ register Display *dpy;
++ Bool (*predicate)(
++ Display* /* display */,
++ XEvent* /* event */,
++ char* /* arg */
++ ); /* function to call */
++ register XEvent *event; /* XEvent to be filled in. */
++ char *arg;
++{
++ register _XQEvent *prev, *qelt;
++ unsigned long qe_serial = 0;
++ int n; /* time through count */
++
++ LockDisplay(dpy);
++ prev = NULL;
++ for (n = 2; --n >= 0;) {
++ for (qelt = prev ? prev->next : dpy->head;
++ qelt;
++ prev = qelt, qelt = qelt->next) {
++ if(qelt->qserial_num > qe_serial
++ && (*predicate)(dpy, &qelt->event, arg)) {
++ *event = qelt->event;
++ _XDeq(dpy, prev, qelt);
++ UnlockDisplay(dpy);
++ return True;
++ }
++ }
++ if (prev)
++ qe_serial = prev->qserial_num;
++ switch (n) {
++ case 1:
++ _XEventsQueued(dpy, QueuedAfterReading);
++ break;
++ }
++ if (prev && prev->qserial_num != qe_serial)
++ /* another thread has snatched this event */
++ prev = NULL;
++ }
++ UnlockDisplay(dpy);
++ return False;
++}
++
++#endif
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ConnDis.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ConnDis.c.X.original
new file mode 100644
index 000000000..17f054970
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_ConnDis.c.X.original
@@ -0,0 +1,319 @@
+--- ./nx-X11/lib/X11/ConnDis.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/ConnDis.c 2015-02-10 19:13:13.008715687 +0100
+@@ -25,6 +25,24 @@
+ in this Software without prior written authorization from The Open Group.
+
+ */
++
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/lib/X11/ConnDis.c,v 3.28 2003/12/02 23:33:17 herrb Exp $ */
+
+ /*
+@@ -162,6 +180,39 @@
+ saddrlen = 0; /* set so that we can clear later */
+ saddr = NULL;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Called with display_name [%s].\n", display_name);
++#endif
++
++#ifdef NX_TRANS_SOCKET
++
++ /*
++ * Check if user selected the "nx"
++ * protocol or an "nx" hostname.
++ */
++
++ if (!strncasecmp(p, "nx/", 3) || !strcasecmp(p, "nx") ||
++ !strncasecmp(p, "nx:", 3) || !strncasecmp(p, "nx,", 3))
++ {
++ if (*(display_name + 2) == '/')
++ {
++ p += 3;
++ }
++
++ pprotocol = copystring ("nx", 2);
++
++ if (!pprotocol) goto bad;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_X11TransConnectDisplay: Forced protocol to [%s].\n", pprotocol);
++#endif
++
++ }
++ else
++ {
++
++#endif
++
+ /*
+ * Step 0, find the protocol. This is delimited by the optional
+ * slash ('/').
+@@ -176,6 +227,60 @@
+ } else
+ p = display_name; /* reset the pointer in
+ case no protocol was given */
++#ifdef NX_TRANS_SOCKET
++
++ } /* End of step 0. */
++
++ /*
++ * Check if user specified the "nx" protocol or
++ * hostname is "nx" or in the form "nx,...".
++ */
++
++ if (pprotocol && !strcasecmp(pprotocol, "nx"))
++ {
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_X11TransConnectDisplay: Checking hostname [%s].\n", p);
++#endif
++
++ /*
++ * Options can include a "display=" tuple so
++ * need to scan right to left.
++ */
++
++ lastp = p;
++ lastc = NULL;
++
++ for (; *p; p++)
++ if (*p == ':')
++ lastc = p;
++
++ /*
++ * Don't complain if no screen was provided.
++ */
++
++ if (lastc)
++ {
++ phostname = copystring (lastp, lastc - lastp);
++
++ p = lastc;
++ }
++ else
++ {
++ phostname = copystring (lastp, strlen(lastp));
++ }
++
++ if (!phostname) goto bad;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_X11TransConnectDisplay: Forced hostname [%s].\n", phostname);
++#endif
++
++ }
++ else
++ {
++
++#endif
+
+ /*
+ * Step 1, find the hostname. This is delimited by either one colon,
+@@ -240,6 +345,20 @@
+ }
+ #endif
+
++#ifdef NX_TRANS_SOCKET
++
++ } /* End of step 1. */
++
++ /*
++ * Check if no display was specified. In this case
++ * search the "port=n" option in NX host string.
++ */
++
++ if (*p)
++ {
++
++#endif
++
+
+ /*
+ * Step 2, find the display number. This field is required and is
+@@ -254,6 +373,66 @@
+ goto bad;
+ idisplay = atoi (pdpynum);
+
++#ifdef NX_TRANS_SOCKET
++
++ }
++ else
++ {
++ char *host = NULL;
++ char *name = NULL;
++ char *value = NULL;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_X11TransConnectDisplay: Searching port in port [%s].\n", phostname);
++#endif
++
++ if (!strncasecmp(phostname, "nx,", 3))
++ {
++ host = copystring(phostname + 3, strlen(phostname) - 3);
++ }
++
++ if (!host) goto bad;
++
++ idisplay = -1;
++
++ name = strtok(host, "=");
++
++ while (name)
++ {
++ value = strtok(NULL, ",");
++
++ if (value == NULL || strstr(value, "=") != NULL ||
++ strstr(name, ",") != NULL || strlen(value) >= 128)
++ {
++ Xfree(host);
++
++ goto bad;
++ }
++ else if (strcasecmp(name, "port") == 0)
++ {
++ idisplay = atoi(value);
++
++ pdpynum = copystring(value, strlen(value));
++
++ if (!pdpynum) goto bad;
++
++ break;
++ }
++
++ name = strtok(NULL, "=");
++ }
++
++ Xfree(host);
++
++ if (idisplay == -1)
++ {
++ goto bad;
++ }
++
++ } /* End of step 2. */
++
++#endif
++
+
+ /*
+ * Step 3, find the screen number. This field is optional. It is
+@@ -286,6 +465,27 @@
+ * is "unix", then choose BSD UNIX domain sockets (if configured).
+ */
+
++#ifdef NX_TRANS_SOCKET
++
++ /*
++ * If user selected the "nx" protocol
++ * force "local" transport.
++ */
++
++ if (pprotocol && !strcasecmp(pprotocol, "nx"))
++ {
++ pprotocol = copystring ("local", 5);
++
++ if (!pprotocol) goto bad;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_X11TransConnectDisplay: Converted protocol to [%s].\n", pprotocol);
++#endif
++
++ }
++
++#endif
++
+ #if defined(TCPCONN) || defined(UNIXCONN) || defined(LOCALCONN) || defined(MNX_TCPCONN) || defined(OS2PIPECONN)
+ if (!pprotocol) {
+ if (!phostname) {
+@@ -358,14 +558,26 @@
+ * being a server listening at all, which is why we have to not retry
+ * too many times).
+ */
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Entering connection loop.\n");
++#endif
+ for(retry=X_CONNECTION_RETRIES; retry>=0; retry-- )
+ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransOpenCOTSClient(address) with address [%s].\n", address);
++#endif
+ if ( (trans_conn = _X11TransOpenCOTSClient(address)) == NULL )
+ {
+ break;
+ }
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConnect(trans_conn,address).\n");
++#endif
+ if ((connect_stat = _X11TransConnect(trans_conn,address)) < 0 )
+ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransClose(trans_conn).\n");
++#endif
+ _X11TransClose(trans_conn);
+ trans_conn = NULL;
+
+@@ -378,6 +590,9 @@
+ break;
+ }
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr).\n");
++#endif
+ _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr);
+
+ /*
+@@ -386,6 +601,9 @@
+ * X protocol (ie FamilyInternet).
+ */
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConvertAddress(&family, &saddrlen, &saddr).\n");
++#endif
+ if( _X11TransConvertAddress(&family, &saddrlen, &saddr) < 0 )
+ {
+ _X11TransClose(trans_conn);
+@@ -402,6 +620,9 @@
+ break;
+ }
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "_X11TransConnectDisplay: Out of connection loop.\n");
++#endif
+ if (address != addrbuf) Xfree (address);
+ address = addrbuf;
+
+@@ -570,6 +791,17 @@
+
+ if (len != 0)
+ return -1;
++#ifdef NX_TRANS_SOCKET
++ if (_NXDisplayWriteFunction != NULL) {
++ (*_NXDisplayWriteFunction)(dpy, len);
++ }
++#ifdef NX_TRANS_CHANGE
++ if (_NXDisplayCongestionFunction != NULL &&
++ _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
++ (*_NXDisplayCongestionFunction)(dpy, congestion);
++ }
++#endif
++#endif
+
+ #ifdef K5AUTH
+ if (auth_length == 14 &&
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_IfEvent.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_IfEvent.c.X.original
new file mode 100644
index 000000000..fb5e164a3
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_IfEvent.c.X.original
@@ -0,0 +1,13 @@
+--- ./nx-X11/lib/X11/IfEvent.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/IfEvent.c 2015-02-10 19:13:12.796723642 +0100
+@@ -71,5 +71,10 @@
+ if (prev && prev->qserial_num != qe_serial)
+ /* another thread has snatched this event */
+ prev = NULL;
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return 0;
++ }
++#endif
+ }
+ }
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_MaskEvent.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_MaskEvent.c.X.original
new file mode 100644
index 000000000..6620d4baa
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_MaskEvent.c.X.original
@@ -0,0 +1,13 @@
+--- ./nx-X11/lib/X11/MaskEvent.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/MaskEvent.c 2015-02-10 19:13:12.944718089 +0100
+@@ -75,5 +75,10 @@
+ if (prev && prev->qserial_num != qe_serial)
+ /* another thread has snatched this event */
+ prev = NULL;
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return 0;
++ }
++#endif
+ }
+ }
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_OpenDis.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_OpenDis.c.X.original
new file mode 100644
index 000000000..897fe2598
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_OpenDis.c.X.original
@@ -0,0 +1,96 @@
+--- ./nx-X11/lib/X11/OpenDis.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/OpenDis.c 2015-02-10 19:13:12.748725444 +0100
+@@ -24,6 +24,24 @@
+ in this Software without prior written authorization from The Open Group.
+
+ */
++
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/lib/X11/OpenDis.c,v 3.16 2003/07/04 16:24:23 eich Exp $ */
+
+ #define NEED_REPLIES
+@@ -43,6 +61,10 @@
+ #include "XKBlib.h"
+ #endif /* XKB */
+
++#ifdef NX_TRANS_SOCKET
++extern void *_X11TransSocketProxyConnInfo(XtransConnInfo);
++#endif
++
+ #ifdef X_NOT_POSIX
+ #define Size_t unsigned int
+ #else
+@@ -117,6 +139,9 @@
+ bzero((char *) &client, sizeof(client));
+ bzero((char *) &prefix, sizeof(prefix));
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "\nXOpenDisplay: Called with display [%s].\n", display);
++#endif
+ /*
+ * If the display specifier string supplied as an argument to this
+ * routine is NULL or a pointer to NULL, read the DISPLAY variable.
+@@ -162,6 +187,9 @@
+
+ dpy->fd = _X11TransGetConnectionNumber (dpy->trans_conn);
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "\nXOpenDisplay: Connected display with dpy->fd = [%d].\n", dpy->fd);
++#endif
+ /* Initialize as much of the display structure as we can.
+ * Initialize pointers to NULL so that XFreeDisplayStructure will
+ * work if we run out of memory before we finish initializing.
+@@ -258,6 +286,10 @@
+ conn_buf_size = 1024 * strtol(xlib_buffer_size, NULL, 10);
+ if (conn_buf_size < XLIBMINBUFSIZE)
+ conn_buf_size = XLIBMINBUFSIZE;
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf (stderr, "Xlib: Running with XLIBBUFFERSIZE [%d] XLIBMINBUFSIZE [%d] "
++ "buffer size [%ld].\n", XLIBDEFAULTBUFSIZE, XLIBMINBUFSIZE, conn_buf_size);
++#endif
+
+ if ((dpy->bufptr = dpy->buffer = Xcalloc(1, conn_buf_size)) == NULL) {
+ OutOfMemory (dpy, setup);
+@@ -324,9 +356,16 @@
+
+ if (prefix.majorVersion != X_PROTOCOL) {
+ /* XXX - printing messages marks a bad programming interface */
++#ifdef NX_TRANS_SOCKET
++ if (_X11TransSocketProxyConnInfo(dpy->trans_conn) == NULL) {
++ fprintf (stderr, "Xlib: client uses different protocol version (%d) "
++ "than server (%d)!\r\n", X_PROTOCOL, prefix.majorVersion);
++ }
++#else
+ fprintf (stderr,
+ "Xlib: client uses different protocol version (%d) than server (%d)!\r\n",
+ X_PROTOCOL, prefix.majorVersion);
++#endif
+ _XDisconnectDisplay (dpy->trans_conn);
+ Xfree ((char *)dpy);
+ return(NULL);
+@@ -698,6 +737,9 @@
+ /*
+ * and return successfully
+ */
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "XOpenDisplay: Returning display at [%p].\n", dpy);
++#endif
+ return(dpy);
+ }
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_PeekIfEv.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_PeekIfEv.c.X.original
new file mode 100644
index 000000000..7d87f13b1
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_PeekIfEv.c.X.original
@@ -0,0 +1,14 @@
+--- ./nx-X11/lib/X11/PeekIfEv.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/PeekIfEv.c 2015-02-10 19:13:12.952717788 +0100
+@@ -71,6 +71,11 @@
+ if (prev && prev->qserial_num != qe_serial)
+ /* another thread has snatched this event */
+ prev = NULL;
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return 0;
++ }
++#endif
+ }
+ }
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Pending.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Pending.c.X.original
new file mode 100644
index 000000000..027ad7951
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Pending.c.X.original
@@ -0,0 +1,30 @@
+--- ./nx-X11/lib/X11/Pending.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/Pending.c 2015-02-10 19:13:12.880720490 +0100
+@@ -25,6 +25,8 @@
+
+ */
+
++#include <stdio.h>
++
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+@@ -37,11 +39,18 @@
+ int mode;
+ {
+ int ret_val;
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "\nXEventsQueued: Called with a display at [%p].\n", dpy);
++#endif
++
+ LockDisplay(dpy);
+ if (dpy->qlen || (mode == QueuedAlready))
+ ret_val = dpy->qlen;
+ else
+ ret_val = _XEventsQueued (dpy, mode);
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "\nXEventsQueued: Going to unlock the display at [%p].\n", dpy);
++#endif
+ UnlockDisplay(dpy);
+ return ret_val;
+ }
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XKBMAlloc.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XKBMAlloc.c.X.original
new file mode 100644
index 000000000..de5574c32
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XKBMAlloc.c.X.original
@@ -0,0 +1,84 @@
+--- ./nx-X11/lib/X11/XKBMAlloc.c.X.original 2015-02-13 14:03:44.620443950 +0100
++++ ./nx-X11/lib/X11/XKBMAlloc.c 2015-02-10 19:13:12.836722141 +0100
+@@ -738,8 +738,13 @@
+ _XkbFree(prev_key_sym_map);
+ return BadAlloc;
+ }
++#ifdef NXAGENT_SERVER
++ bzero((char *)&xkb->map->key_sym_map[xkb->max_key_code+1],
++ tmp*sizeof(XkbSymMapRec));
++#else
+ bzero((char *)&xkb->map->key_sym_map[xkb->max_key_code],
+ tmp*sizeof(XkbSymMapRec));
++#endif
+ if (changes) {
+ changes->map.changed= _ExtendRange(changes->map.changed,
+ XkbKeySymsMask,maxKC,
+@@ -756,7 +761,11 @@
+ _XkbFree(prev_modmap);
+ return BadAlloc;
+ }
++#ifdef NXAGENT_SERVER
++ bzero((char *)&xkb->map->modmap[xkb->max_key_code+1],tmp);
++#else
+ bzero((char *)&xkb->map->modmap[xkb->max_key_code],tmp);
++#endif
+ if (changes) {
+ changes->map.changed= _ExtendRange(changes->map.changed,
+ XkbModifierMapMask,maxKC,
+@@ -775,8 +784,13 @@
+ _XkbFree(prev_behaviors);
+ return BadAlloc;
+ }
++#ifdef NXAGENT_SERVER
++ bzero((char *)&xkb->server->behaviors[xkb->max_key_code+1],
++ tmp*sizeof(XkbBehavior));
++#else
+ bzero((char *)&xkb->server->behaviors[xkb->max_key_code],
+ tmp*sizeof(XkbBehavior));
++#endif
+ if (changes) {
+ changes->map.changed= _ExtendRange(changes->map.changed,
+ XkbKeyBehaviorsMask,maxKC,
+@@ -793,8 +807,13 @@
+ _XkbFree(prev_key_acts);
+ return BadAlloc;
+ }
++#ifdef NXAGENT_SERVER
++ bzero((char *)&xkb->server->key_acts[xkb->max_key_code+1],
++ tmp*sizeof(unsigned short));
++#else
+ bzero((char *)&xkb->server->key_acts[xkb->max_key_code],
+ tmp*sizeof(unsigned short));
++#endif
+ if (changes) {
+ changes->map.changed= _ExtendRange(changes->map.changed,
+ XkbKeyActionsMask,maxKC,
+@@ -811,8 +830,13 @@
+ _XkbFree(prev_vmodmap);
+ return BadAlloc;
+ }
++#ifdef NXAGENT_SERVER
++ bzero((char *)&xkb->server->vmodmap[xkb->max_key_code+1],
++ tmp*sizeof(unsigned short));
++#else
+ bzero((char *)&xkb->server->vmodmap[xkb->max_key_code],
+ tmp*sizeof(unsigned short));
++#endif
+ if (changes) {
+ changes->map.changed= _ExtendRange(changes->map.changed,
+ XkbVirtualModMapMask,maxKC,
+@@ -830,8 +854,13 @@
+ _XkbFree(prev_keys);
+ return BadAlloc;
+ }
++#ifdef NXAGENT_SERVER
++ bzero((char *)&xkb->names->keys[xkb->max_key_code+1],
++ tmp*sizeof(XkbKeyNameRec));
++#else
+ bzero((char *)&xkb->names->keys[xkb->max_key_code],
+ tmp*sizeof(XkbKeyNameRec));
++#endif
+ if (changes) {
+ changes->names.changed= _ExtendRange(changes->names.changed,
+ XkbKeyNamesMask,maxKC,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlib.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlib.h.X.original
new file mode 100644
index 000000000..794ccf09a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlib.h.X.original
@@ -0,0 +1,30 @@
+--- ./nx-X11/lib/X11/Xlib.h.X.original 2015-02-13 14:03:44.624443872 +0100
++++ ./nx-X11/lib/X11/Xlib.h 2015-02-10 19:13:12.720726495 +0100
+@@ -2102,6 +2102,27 @@
+ XPointer /* arg */
+ );
+
++#ifdef NX_TRANS_SOCKET
++
++/*
++ * This is just like XCheckIfEvent() but doesn't
++ * flush the output buffer if it can't read new
++ * events.
++ */
++
++extern Bool XCheckIfEventNoFlush(
++ Display* /* display */,
++ XEvent* /* event_return */,
++ Bool (*) (
++ Display* /* display */,
++ XEvent* /* event */,
++ XPointer /* arg */
++ ) /* predicate */,
++ XPointer /* arg */
++);
++
++#endif
++
+ extern Bool XCheckMaskEvent(
+ Display* /* display */,
+ long /* event_mask */,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibAsync.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibAsync.c.X.original
new file mode 100644
index 000000000..82494f70a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibAsync.c.X.original
@@ -0,0 +1,41 @@
+--- ./nx-X11/lib/X11/XlibAsync.c.X.original 2015-02-13 14:03:44.624443872 +0100
++++ ./nx-X11/lib/X11/XlibAsync.c 2015-02-10 19:13:13.064713591 +0100
+@@ -27,6 +27,23 @@
+
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #define NEED_REPLIES
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+@@ -122,6 +139,14 @@
+ */
+ if ((rep->generic.length << 2) > len)
+ _XEatData (dpy, (rep->generic.length << 2) - len);
++#ifdef NX_TRANS_SOCKET
++
++ /*
++ * The original code has provision
++ * for returning already.
++ */
++
++#endif
+ _XIOError (dpy);
+ return (char *)rep;
+ }
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibInt.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibInt.c.X.original
new file mode 100644
index 000000000..b76e169ee
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_XlibInt.c.X.original
@@ -0,0 +1,1165 @@
+--- ./nx-X11/lib/X11/XlibInt.c.X.original 2015-02-13 14:03:44.624443872 +0100
++++ ./nx-X11/lib/X11/XlibInt.c 2015-02-10 19:13:12.800723493 +0100
+@@ -26,6 +26,24 @@
+ from The Open Group.
+
+ */
++
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/lib/X11/XlibInt.c,v 3.38 2003/10/30 21:55:05 alanh Exp $ */
+
+ /*
+@@ -100,6 +118,34 @@
+
+ #endif /* XTHREADS else */
+
++#include "NX.h"
++
++#ifdef NX_TRANS_SOCKET
++
++#include "NX.h"
++#include "NXvars.h"
++
++static struct timeval retry;
++
++/*
++ * From Xtranssock.c. Presently the congestion state
++ * is reported by the proxy to the application, by
++ * invoking the callback directly. The function will
++ * be possibly used in the future, to be able to track
++ * the bandwidth usage even when the NX transport is
++ * not running. Note that in this sample implementation
++ * the congestion state is checked very often and can
++ * be surely optimized.
++ */
++
++#ifdef NX_TRANS_CHANGE
++
++extern int _X11TransSocketCongestionChange(XtransConnInfo, int *);
++
++#endif
++
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ /* check for both EAGAIN and EWOULDBLOCK, because some supposedly POSIX
+ * systems are broken and return EWOULDBLOCK when they should return EAGAIN
+ */
+@@ -219,6 +265,100 @@
+ 0, 0, 0
+ };
+
++#ifdef NX_TRANS_SOCKET
++
++/*
++ * Replace the standard Select with a version giving NX a
++ * chance to check its own descriptors. This doesn't cover
++ * the cases where the system is using poll or when system-
++ * specific defines override the Select definition (OS/2).
++ */
++
++int _XSelect(int maxfds, fd_set *readfds, fd_set *writefds,
++ fd_set *exceptfds, struct timeval *timeout)
++{
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XSelect: Called with [%d][%p][%p][%p][%p].\n",
++ maxfds, (void *) readfds, (void *) writefds, (void *) exceptfds,
++ (void *) timeout);
++#endif
++
++ if (NXTransRunning(NX_FD_ANY))
++ {
++ fd_set t_readfds, t_writefds;
++ struct timeval t_timeout;
++
++ int n, r, e;
++
++#ifdef NX_TRANS_TEST
++
++ if (exceptfds != NULL)
++ {
++ fprintf(stderr, "_XSelect: WARNING! Can't handle exception fds in select.\n");
++ }
++
++#endif
++
++ if (readfds == NULL)
++ {
++ FD_ZERO(&t_readfds);
++
++ readfds = &t_readfds;
++ }
++
++ if (writefds == NULL)
++ {
++ FD_ZERO(&t_writefds);
++
++ writefds = &t_writefds;
++ }
++
++ if (timeout == NULL)
++ {
++ t_timeout.tv_sec = 10;
++ t_timeout.tv_usec = 0;
++
++ timeout = &t_timeout;
++ }
++
++ n = maxfds;
++
++ /*
++ * If the transport is gone avoid
++ * sleeping until the timeout.
++ */
++
++ if (NXTransPrepare(&n, readfds, writefds, timeout) != 0)
++ {
++ NXTransSelect(&r, &e, &n, readfds, writefds, timeout);
++
++ NXTransExecute(&r, &e, &n, readfds, writefds, timeout);
++
++ errno = e;
++
++ return r;
++ }
++ else
++ {
++ return 0;
++ }
++ }
++ else
++ {
++ return select(maxfds, readfds, writefds, exceptfds, timeout);
++ }
++}
++
++#else /* #ifdef NX_TRANS_SOCKET */
++
++int _XSelect(int maxfds, fd_set *readfds, fd_set *writefds,
++ fd_set *exceptfds, struct timeval *timeout)
++{
++ return select(maxfds, readfds, writefds, exceptfds, timeout);
++}
++
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ /*
+ * This is an OS dependent routine which:
+ * 1) returns as soon as the connection can be written on....
+@@ -242,6 +382,18 @@
+ #endif
+ int nfound;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ int congestion;
++#endif
++
++#ifdef NX_TRANS_SOCKET
++
++ if (_XGetIOError(dpy)) {
++ return;
++ }
++
++#endif
++
+ #ifdef USE_POLL
+ filedes.fd = dpy->fd;
+ filedes.events = 0;
+@@ -276,6 +428,8 @@
+ (!dpy->lock->reply_awaiters ||
+ dpy->lock->reply_awaiters->cv == cv)))
+ #endif
++
++#ifndef NX_TRANS_SOCKET
+ #ifdef USE_POLL
+ filedes.events = POLLIN;
+ filedes.events |= POLLOUT;
+@@ -283,17 +437,109 @@
+ FD_SET(dpy->fd, &r_mask);
+ FD_SET(dpy->fd, &w_mask);
+ #endif
++#endif /* #ifndef NX_TRANS_SOCKET */
+
+ do {
++#ifdef NX_TRANS_SOCKET
++ /*
++ * Give a chance to the registered client to perform
++ * any needed operation before entering the select.
++ */
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XWaitForWritable: WAIT! Waiting for the display to become writable.\n");
++#endif
++ NXTransFlush(dpy->fd);
++
++ if (_NXDisplayBlockFunction != NULL) {
++ (*_NXDisplayBlockFunction)(dpy, NXBlockWrite);
++ }
++
++ /*
++ * Need to set again the descriptors as we could have
++ * run multiple selects before having the possibility
++ * to read or write to the X connection.
++ */
++
++#ifdef USE_POLL
++ filedes.events = POLLIN;
++ filedes.events |= POLLOUT;
++#else
++ FD_SET(dpy->fd, &r_mask);
++ FD_SET(dpy->fd, &w_mask);
++#endif
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ UnlockDisplay(dpy);
+ #ifdef USE_POLL
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XWaitForWritable: Calling poll().\n");
++#endif
+ nfound = poll (&filedes, 1, -1);
+ #else
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XWaitForWritable: Calling select() after [%ld] ms.\n",
++ NXTransTime());
++#endif
++#ifdef NX_TRANS_SOCKET
++ /*
++ * Give a chance to the callback to detect
++ * the failure of the display even if we
++ * miss the interrupt inside the select.
++ */
++
++ if (_NXDisplayErrorFunction != NULL) {
++ retry.tv_sec = 5;
++ retry.tv_usec = 0;
++ nfound = Select (dpy->fd + 1, &r_mask, &w_mask, NULL, &retry);
++ } else {
++ nfound = Select (dpy->fd + 1, &r_mask, &w_mask, NULL, NULL);
++ }
++#else
+ nfound = Select (dpy->fd + 1, &r_mask, &w_mask, NULL, NULL);
+ #endif
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XWaitForWritable: Out of select() with [%d] after [%ld] ms.\n",
++ nfound, NXTransTime());
++
++ if (FD_ISSET(dpy->fd, &r_mask))
++ {
++ BytesReadable_t pend;
++
++ _X11TransBytesReadable(dpy->trans_conn, &pend);
++
++ fprintf(stderr, "_XWaitForWritable: Descriptor [%d] is ready with [%ld] bytes to read.\n",
++ dpy->fd, pend);
++ }
++
++ if (FD_ISSET(dpy->fd, &w_mask))
++ {
++ fprintf(stderr, "_XWaitForWritable: Descriptor [%d] has become writable.\n\n",
++ dpy->fd);
++ }
++#endif
++#endif
+ InternalLockDisplay(dpy, cv != NULL);
+- if (nfound < 0 && !ECHECK(EINTR))
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ if (_NXDisplayCongestionFunction != NULL &&
++ _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
++ (*_NXDisplayCongestionFunction)(dpy, congestion);
++ }
++#endif
++
++#ifdef NX_TRANS_SOCKET
++ if (nfound <= 0) {
++ if ((nfound == -1 && !ECHECK(EINTR)) ||
++ (_NXDisplayErrorFunction != NULL &&
++ (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
++ _XIOError(dpy);
++ return;
++ }
++ }
++#else
++ if (nfound < 0 && !ECHECK(EINTR))
+ _XIOError(dpy);
++#endif
+ } while (nfound <= 0);
+
+ if (
+@@ -311,7 +557,15 @@
+
+ /* find out how much data can be read */
+ if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
++#ifdef NX_TRANS_SOCKET
++ {
++ _XIOError(dpy);
++
++ return;
++ }
++#else
+ _XIOError(dpy);
++#endif
+ len = pend;
+
+ /* must read at least one xEvent; if none is pending, then
+@@ -464,6 +718,15 @@
+ int highest_fd = fd;
+ #endif
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ int congestion;
++#endif
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return -1;
++ }
++#endif
++
+ #ifdef USE_POLL
+ if (dpy->im_fd_length + 1 > POLLFD_CACHE_SIZE
+ && !(dpy->flags & XlibDisplayProcConni)) {
+@@ -495,16 +758,68 @@
+ #endif
+ UnlockDisplay(dpy);
+ #ifdef USE_POLL
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XWaitForReadable: Calling poll().\n");
++#endif
+ result = poll(filedes,
+ (dpy->flags & XlibDisplayProcConni) ? 1 : 1+dpy->im_fd_length,
+ -1);
+ #else
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XWaitForReadable: Calling select().\n");
++#endif
++#ifdef NX_TRANS_SOCKET
++ /*
++ * Give a chance to the registered application
++ * to perform any needed operation.
++ */
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XWaitForReadable: WAIT! Waiting for the display to become readable.\n");
++#endif
++ NXTransFlush(dpy->fd);
++
++ if (_NXDisplayBlockFunction != NULL) {
++ (*_NXDisplayBlockFunction)(dpy, NXBlockRead);
++ }
++
++ if (_NXDisplayErrorFunction != NULL) {
++ retry.tv_sec = 5;
++ retry.tv_usec = 0;
++ result = Select(highest_fd + 1, &r_mask, NULL, NULL, &retry);
++ } else {
++ result = Select(highest_fd + 1, &r_mask, NULL, NULL, NULL);
++ }
++#else
+ result = Select(highest_fd + 1, &r_mask, NULL, NULL, NULL);
+ #endif
++#endif
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XWaitForReadable: Out of select with result [%d] and errno [%d].\n",
++ result, (result < 0 ? errno : 0));
++#endif
+ InternalLockDisplay(dpy, dpy->flags & XlibDisplayReply);
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ if (_NXDisplayCongestionFunction != NULL &&
++ _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
++ (*_NXDisplayCongestionFunction)(dpy, congestion);
++ }
++#endif
++#ifdef NX_TRANS_SOCKET
++ if (result <= 0) {
++ if ((result == -1 && !ECHECK(EINTR)) ||
++ (_NXDisplayErrorFunction != NULL &&
++ (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
++ _XIOError(dpy);
++ return -1;
++ }
++ continue;
++ }
++#else
+ if (result == -1 && !ECHECK(EINTR)) _XIOError(dpy);
+ if (result <= 0)
+ continue;
++#endif
+ #ifdef USE_POLL
+ if (filedes[0].revents & (POLLIN|POLLHUP|POLLERR))
+ #else
+@@ -562,6 +877,19 @@
+ xGetInputFocusReply rep;
+ register xReq *req;
+
++#ifdef NX_TRANS_SOCKET
++#ifdef NX_TRANS_DEBUG
++ fprintf(stderr, "_XSeqSyncFunction: Going to synchronize the display.\n");
++#endif
++ if (dpy->flags & XlibDisplayIOError)
++ {
++#ifdef NX_TRANS_DEBUG
++ fprintf(stderr, "_XSeqSyncFunction: Returning 0 with I/O error detected.\n");
++#endif
++ return 0;
++ }
++#endif
++
+ LockDisplay(dpy);
+ if ((dpy->request - dpy->last_request_read) >= (BUFSIZE / SIZEOF(xReq))) {
+ GetEmptyReq(GetInputFocus, req);
+@@ -611,7 +939,14 @@
+ register int write_stat;
+ register char *bufindex;
+ _XExtension *ext;
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ int congestion;
++#endif
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XFlushInt: Entering flush with [%d] bytes to write.\n",
++ (dpy->bufptr - dpy->buffer));
++#endif
+ /* This fix resets the bufptr to the front of the buffer so
+ * additional appends to the bufptr will not corrupt memory. Since
+ * the server is down, these appends are no-op's anyway but
+@@ -619,13 +954,23 @@
+ */
+ if (dpy->flags & XlibDisplayIOError)
+ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XFlushInt: Returning with I/O error detected.\n");
++#endif
+ dpy->bufptr = dpy->buffer;
+ dpy->last_req = (char *)&_dummy_request;
+ return;
+ }
+
+ #ifdef XTHREADS
++#ifdef NX_TRANS_SOCKET
++ while (dpy->flags & XlibDisplayWriting) {
++ if (_XGetIOError(dpy)) {
++ return;
++ }
++#else
+ while (dpy->flags & XlibDisplayWriting) {
++#endif
+ if (dpy->lock) {
+ ConditionWait(dpy, dpy->lock->writers);
+ } else {
+@@ -653,6 +998,17 @@
+ write_stat = _X11TransWrite(dpy->trans_conn,
+ bufindex, (int) todo);
+ if (write_stat >= 0) {
++#ifdef NX_TRANS_SOCKET
++ if (_NXDisplayWriteFunction != NULL) {
++ (*_NXDisplayWriteFunction)(dpy, write_stat);
++ }
++#ifdef NX_TRANS_CHANGE
++ if (_NXDisplayCongestionFunction != NULL &&
++ _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
++ (*_NXDisplayCongestionFunction)(dpy, congestion);
++ }
++#endif
++#endif
+ size -= write_stat;
+ todo = size;
+ bufindex += write_stat;
+@@ -682,11 +1038,25 @@
+ );
+ }
+ #endif
++#ifdef NX_TRANS_SOCKET
++ } else if (!ECHECK(EINTR) ||
++ (_NXDisplayErrorFunction != NULL &&
++ (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
++ _XIOError(dpy);
++ return;
++ }
++#else
+ } else if (!ECHECK(EINTR)) {
+ /* Write failed! */
+ /* errno set by write system call. */
+ _XIOError(dpy);
+ }
++#endif
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return;
++ }
++#endif
+ }
+ dpy->last_req = (char *)&_dummy_request;
+ if ((dpy->request - dpy->last_request_read) >= SEQLIMIT &&
+@@ -727,6 +1097,12 @@
+ if (dpy->qlen)
+ return(dpy->qlen);
+ }
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ if (dpy->flags & XlibDisplayIOError) {
++ fprintf(stderr, "_XEventsQueued: Returning [%d] after display failure.\n",
++ dpy->qlen);
++ }
++#endif
+ if (dpy->flags & XlibDisplayIOError) return(dpy->qlen);
+
+ #ifdef XTHREADS
+@@ -767,8 +1143,19 @@
+ }
+ #endif /* XTHREADS*/
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XEventsQueued: Checking bytes readable.\n");
++#endif
+ if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
++#ifdef NX_TRANS_SOCKET
++ {
++ _XIOError(dpy);
++
++ return (dpy->qlen);
++ }
++#else
+ _XIOError(dpy);
++#endif
+ #ifdef XCONN_CHECK_FREQ
+ /* This is a crock, required because FIONREAD or equivalent is
+ * not guaranteed to detect a broken connection.
+@@ -785,10 +1172,16 @@
+
+ dpy->conn_checker = 0;
+ #ifdef USE_POLL
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XEventsQueued: Calling poll().\n");
++#endif
+ filedes.fd = dpy->fd;
+ filedes.events = POLLIN;
+ if ((result = poll(&filedes, 1, 0)))
+ #else
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XEventsQueued: Calling select().\n");
++#endif
+ FD_ZERO(&r_mask);
+ FD_SET(dpy->fd, &r_mask);
+ if ((result = Select(dpy->fd + 1, &r_mask, NULL, NULL, &zero_time)))
+@@ -797,13 +1190,32 @@
+ if (result > 0)
+ {
+ if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
++#ifdef NX_TRANS_SOCKET
++ {
++ _XIOError(dpy);
++
++ return (dpy->qlen);
++ }
++#else
+ _XIOError(dpy);
++#endif
+ /* we should not get zero, if we do, force a read */
+ if (!pend)
+ pend = SIZEOF(xReply);
+ }
++#ifdef NX_TRANS_SOCKET
++ if (result <= 0) {
++ if ((result == -1 && !ECHECK(EINTR)) ||
++ (_NXDisplayErrorFunction != NULL &&
++ (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
++ _XIOError(dpy);
++ return (dpy->qlen);
++ }
++ }
++#else
+ else if (result < 0 && !ECHECK(EINTR))
+ _XIOError(dpy);
++#endif
+ }
+ }
+ #endif /* XCONN_CHECK_FREQ */
+@@ -815,6 +1227,10 @@
+ {
+ UnlockNextEventReader(dpy);
+ }
++
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XEventsQueued: Returning [%d].\n", dpy->qlen);
++#endif
+ return(dpy->qlen);
+ }
+ /* Force a read if there is not enough data. Otherwise,
+@@ -847,6 +1263,11 @@
+
+ (void) _XRead (dpy, read_buf, (long) len);
+
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return(dpy->qlen);
++ }
++#endif
+ #ifdef XTHREADS
+ /* what did we actually read: reply or event? */
+ if (dpy->lock && dpy->lock->reply_awaiters) {
+@@ -945,7 +1366,15 @@
+ #endif /* XTHREADS */
+ /* find out how much data can be read */
+ if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
++#ifdef NX_TRANS_SOCKET
++ {
++ _XIOError(dpy);
++
++ return;
++ }
++#else
+ _XIOError(dpy);
++#endif
+ len = pend;
+
+ /* must read at least one xEvent; if none is pending, then
+@@ -995,6 +1424,15 @@
+ dpy->flags |= XlibDisplayReadEvents;
+ i = _XRead (dpy, read_buf, (long) len);
+ dpy->flags &= ~XlibDisplayReadEvents;
++#ifdef NX_TRANS_SOCKET
++ if (dpy->flags & XlibDisplayIOError)
++ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XReadEvents: Returning with I/O error detected.\n");
++#endif
++ return;
++ }
++#endif
+ if (i == -2) {
+ /* special flag from _XRead to say that internal connection has
+ done XPutBackEvent. Which we can use so we're done. */
+@@ -1065,12 +1503,33 @@
+ #ifdef XTHREADS
+ int original_size = size;
+ #endif
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ int congestion;
++#endif
+
+ if ((dpy->flags & XlibDisplayIOError) || size == 0)
+ return 0;
+ ESET(0);
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ while (1) {
++ /*
++ * Need to check the congestion state
++ * after the read so split the statement
++ * in multiple blocks.
++ */
++
++ bytes_read = _X11TransRead(dpy->trans_conn, data, (int)size);
++ if (_NXDisplayCongestionFunction != NULL &&
++ _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
++ (*_NXDisplayCongestionFunction)(dpy, congestion);
++ }
++ if (bytes_read == size) {
++ break;
++ }
++#else
+ while ((bytes_read = _X11TransRead(dpy->trans_conn, data, (int)size))
+ != size) {
++#endif
+
+ if (bytes_read > 0) {
+ size -= bytes_read;
+@@ -1090,14 +1549,34 @@
+ else if (bytes_read == 0) {
+ /* Read failed because of end of file! */
+ ESET(EPIPE);
++#ifdef NX_TRANS_SOCKET
++ _XIOError(dpy);
++
++ return -1;
++#else
+ _XIOError(dpy);
++#endif
+ }
+
+ else /* bytes_read is less than 0; presumably -1 */ {
+ /* If it's a system call interrupt, it's not an error. */
++#ifdef NX_TRANS_SOCKET
++ if (!ECHECK(EINTR) ||
++ (_NXDisplayErrorFunction != NULL &&
++ (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
++ _XIOError(dpy);
++ return -1;
++ }
++#else
+ if (!ECHECK(EINTR))
+ _XIOError(dpy);
++#endif
+ }
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return -1;
++ }
++#endif
+ }
+ #ifdef XTHREADS
+ if (dpy->lock && dpy->lock->reply_bytes_left > 0)
+@@ -1268,6 +1747,9 @@
+ #ifdef XTHREADS
+ int original_size;
+ #endif
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ int congestion;
++#endif
+
+ if ((dpy->flags & XlibDisplayIOError) || size == 0) return;
+ iov[0].iov_len = (int)size;
+@@ -1285,7 +1767,19 @@
+ original_size = size;
+ #endif
+ ESET(0);
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ while (1) {
++ bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2);
++ if (_NXDisplayCongestionFunction != NULL &&
++ _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
++ (*_NXDisplayCongestionFunction)(dpy, congestion);
++ }
++ if (bytes_read == size) {
++ break;
++ }
++#else
+ while ((bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2)) != size) {
++#endif
+
+ if (bytes_read > 0) {
+ size -= bytes_read;
+@@ -1313,14 +1807,34 @@
+ else if (bytes_read == 0) {
+ /* Read failed because of end of file! */
+ ESET(EPIPE);
++#ifdef NX_TRANS_SOCKET
++ _XIOError(dpy);
++
++ return;
++#else
+ _XIOError(dpy);
++#endif
+ }
+
+ else /* bytes_read is less than 0; presumably -1 */ {
+ /* If it's a system call interrupt, it's not an error. */
++#ifdef NX_TRANS_SOCKET
++ if (!ECHECK(EINTR) ||
++ (_NXDisplayErrorFunction != NULL &&
++ (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
++ _XIOError(dpy);
++ return;
++ }
++#else
+ if (!ECHECK(EINTR))
+ _XIOError(dpy);
++#endif
+ }
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return;
++ }
++#endif
+ }
+ #ifdef XTHREADS
+ if (dpy->lock && dpy->lock->reply_bytes_left > 0)
+@@ -1351,8 +1865,31 @@
+
+ long skip, dbufsize, padsize, total, todo;
+ _XExtension *ext;
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
++ int congestion;
++#endif
++
++#ifdef NX_TRANS_SOCKET
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XSend: Sending data with [%d] bytes to write.\n",
++ (dpy->bufptr - dpy->buffer));
++#endif
++ if (!size || (dpy->flags & XlibDisplayIOError))
++ {
++ if (dpy->flags & XlibDisplayIOError)
++ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XSend: Returning with I/O error detected.\n");
++#endif
++ dpy->bufptr = dpy->buffer;
++ dpy->last_req = (char *)&_dummy_request;
++ }
+
++ return;
++ }
++#else
+ if (!size || (dpy->flags & XlibDisplayIOError)) return;
++#endif
+ dbufsize = dpy->bufptr - dpy->buffer;
+ #ifdef XTHREADS
+ dpy->flags |= XlibDisplayWriting;
+@@ -1418,6 +1955,17 @@
+
+ ESET(0);
+ if ((len = _X11TransWritev(dpy->trans_conn, iov, i)) >= 0) {
++#ifdef NX_TRANS_SOCKET
++ if (_NXDisplayWriteFunction != NULL) {
++ (*_NXDisplayWriteFunction)(dpy, len);
++ }
++#ifdef NX_TRANS_CHANGE
++ if (_NXDisplayCongestionFunction != NULL &&
++ _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
++ (*_NXDisplayCongestionFunction)(dpy, congestion);
++ }
++#endif
++#endif
+ skip += len;
+ total -= len;
+ todo = total;
+@@ -1447,9 +1995,23 @@
+ );
+ }
+ #endif
++#ifdef NX_TRANS_SOCKET
++ } else if (!ECHECK(EINTR) ||
++ (_NXDisplayErrorFunction != NULL &&
++ (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
++ _XIOError(dpy);
++ return;
++ }
++#else
+ } else if (!ECHECK(EINTR)) {
+ _XIOError(dpy);
+ }
++#endif
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ return;
++ }
++#endif
+ }
+ dpy->last_req = (char *) & _dummy_request;
+ if ((dpy->request - dpy->last_request_read) >= SEQLIMIT &&
+@@ -1640,10 +2202,31 @@
+ if (newseq < lastseq) {
+ newseq += 0x10000;
+ if (newseq > dpy->request) {
++
++#ifdef NX_TRANS_SOCKET
++
++ if (_NXLostSequenceFunction != NULL)
++ {
++ (*_NXLostSequenceFunction)(dpy, newseq, dpy->request,
++ (unsigned int) rep->type);
++ }
++ else
++ {
++ (void) fprintf (stderr,
++ "Xlib: sequence lost (0x%lx > 0x%lx) in reply type 0x%x!\n",
++ newseq, dpy->request,
++ (unsigned int) rep->type);
++ }
++
++#else /* #ifdef NX_TRANS_SOCKET */
++
+ (void) fprintf (stderr,
+ "Xlib: sequence lost (0x%lx > 0x%lx) in reply type 0x%x!\n",
+ newseq, dpy->request,
+ (unsigned int) rep->type);
++
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ newseq -= 0x10000;
+ }
+ }
+@@ -1671,9 +2254,22 @@
+ #ifdef XTHREADS
+ struct _XCVList *cvl;
+ #endif
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XReply: Going to wait for an X reply.\n");
++#endif
+
++#ifdef NX_TRANS_SOCKET
++ if (dpy->flags & XlibDisplayIOError)
++ {
++#ifdef NX_TRANS_DEBUG
++ fprintf(stderr, "_XReply: Returning 0 with I/O error detected.\n");
++#endif
++ return 0;
++ }
++#else
+ if (dpy->flags & XlibDisplayIOError)
+ return 0;
++#endif
+
+ #ifdef XTHREADS
+ /* create our condition variable and append to list */
+@@ -1689,6 +2285,9 @@
+ XThread_Self(), cvl);
+ #endif
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XReply: Going to flush the display buffer.\n");
++#endif
+ _XFlushInt(dpy, cvl ? cvl->cv : NULL);
+ /* if it is not our turn to read a reply off the wire,
+ * wait til we're at head of list. if there is an event waiter,
+@@ -1704,6 +2303,20 @@
+ _XFlush(dpy);
+ #endif
+
++#ifdef NX_TRANS_SOCKET
++ /*
++ * We are going to block waiting for the remote
++ * X server. Be sure that the proxy has flushed
++ * all the data.
++ */
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XReply: Requesting a flush of the NX transport.\n");
++#endif
++
++ NXTransFlush(dpy->fd);
++#endif
++
+ for (;;) {
+ #ifdef XTHREADS
+ /* Did another thread's _XReadEvents get our reply by accident? */
+@@ -1767,6 +2380,12 @@
+ ((long) rep->generic.length) << 2);
+ dpy->flags &= ~XlibDisplayReply;
+ UnlockNextReplyReader(dpy);
++#ifdef NX_TRANS_SOCKET
++ /*
++ * The original code has provision
++ * for returning already.
++ */
++#endif
+ _XIOError (dpy);
+ return (0);
+
+@@ -1830,6 +2449,12 @@
+ #endif
+ break;
+ }
++#ifdef NX_TRANS_SOCKET
++ if (_XGetIOError(dpy)) {
++ UnlockNextReplyReader(dpy);
++ return 0;
++ }
++#endif
+ }
+ }
+
+@@ -1849,6 +2474,14 @@
+ (void) _XSetLastRequestRead(dpy, &rep->generic);
+ len = SIZEOF(xReply) + (rep->generic.length << 2);
+ if (len < SIZEOF(xReply)) {
++#ifdef NX_TRANS_SOCKET
++
++ /*
++ * The original code has provision
++ * for returning already.
++ */
++
++#endif
+ _XIOError (dpy);
+ buf += *lenp;
+ *lenp = 0;
+@@ -1876,6 +2509,14 @@
+ }
+ if (len < SIZEOF(xReply))
+ {
++#ifdef NX_TRANS_SOCKET
++
++ /*
++ * The original code has provision
++ * for returning already.
++ */
++
++#endif
+ _XIOError (dpy);
+ buf += *lenp;
+ *lenp = 0;
+@@ -1944,6 +2585,10 @@
+ struct _XConnWatchInfo *watchers;
+ XPointer *wd;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XRegisterInternalConnection: Got called.\n");
++#endif
++
+ new_conni = (struct _XConnectionInfo*)Xmalloc(sizeof(struct _XConnectionInfo));
+ if (!new_conni)
+ return 0;
+@@ -1991,6 +2636,10 @@
+ struct _XConnWatchInfo *watch;
+ XPointer *wd;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XUnregisterInternalConnection: Got called.\n");
++#endif
++
+ for (prev = &dpy->im_fd_info; (info_list = *prev);
+ prev = &info_list->next) {
+ if (info_list->fd == fd) {
+@@ -2030,6 +2679,10 @@
+ struct _XConnectionInfo *info_list;
+ int *fd_list;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "XInternalConnectionNumbers: Got called.\n");
++#endif
++
+ LockDisplay(dpy);
+ count = 0;
+ for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next)
+@@ -2088,6 +2741,10 @@
+ {
+ struct _XConnectionInfo *info_list;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "XProcessInternalConnection: Got called.\n");
++#endif
++
+ LockDisplay(dpy);
+ for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
+ if (info_list->fd == fd) {
+@@ -2116,6 +2773,10 @@
+ struct _XConnectionInfo *info_list;
+ XPointer *wd_array;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "XAddConnectionWatch: Got called.\n");
++#endif
++
+ LockDisplay(dpy);
+
+ /* allocate new watch data */
+@@ -2172,6 +2833,10 @@
+ struct _XConnectionInfo *conni;
+ int counter = 0;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "XRemoveConnectionWatch: Got called.\n");
++#endif
++
+ LockDisplay(dpy);
+ for (watch=dpy->conn_watchers; watch; watch=watch->next) {
+ if (watch->fn == callback && watch->client_data == client_data) {
+@@ -2209,6 +2874,10 @@
+ #define SCRATCHSIZE 2048
+ char buf[SCRATCHSIZE];
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "_XEatData: Going to eat [%ld] bytes of data from descriptor [%d].\n",
++ n, dpy->fd);
++#endif
+ while (n > 0) {
+ register long bytes_read = (n > SCRATCHSIZE) ? SCRATCHSIZE : n;
+ (void) _XRead (dpy, buf, bytes_read);
+@@ -2237,7 +2906,13 @@
+ (_XQEvent *) Xmalloc((unsigned)sizeof(_XQEvent))) == NULL) {
+ /* Malloc call failed! */
+ ESET(ENOMEM);
++#ifdef NX_TRANS_SOCKET
++ _XIOError(dpy);
++
++ return;
++#else
+ _XIOError(dpy);
++#endif
+ }
+ qelt->next = NULL;
+ /* go call through display to find proper event reformatter */
+@@ -2710,7 +3385,29 @@
+ QLength(dpy));
+
+ }
+- exit(1);
++#ifdef NX_TRANS_SOCKET
++ if (_NXHandleDisplayError == 1)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XDefaultIOError: Going to return from the error handler.\n");
++#endif
++ return 0;
++ }
++ else
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XDefaultIOError: Going to exit from the program.\n");
++#endif
++#ifdef NX_TRANS_EXIT
++ NXTransExit(1);
++#else
++ exit(1);
++#endif
++ }
++#else
++ exit(1);
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ return(0); /* dummy - function should never return */
+ }
+
+@@ -2911,7 +3608,48 @@
+ (*_XIOErrorFunction)(dpy);
+ else
+ _XDefaultIOError(dpy);
++#ifdef NX_TRANS_SOCKET
++ /*
++ * Check if we are supposed to return in the case
++ * of a display failure. The client which originated
++ * the X operation will have to check the value of
++ * the XlibDisplayIOError flag and handle appropria-
++ * tely the display disconnection.
++ */
++
++ if (_NXHandleDisplayError == 0)
++ {
++#ifdef NX_TRANS_EXIT
++ NXTransExit(1);
++#else
++ exit(1);
++#endif
++ }
++
++ /*
++ * We are going to return. Reset the display
++ * buffers. Further writes will be discarded.
++ */
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XIOError: Resetting the display buffer.\n");
++#endif
++
++ dpy->bufptr = dpy->buffer;
++ dpy->last_req = (char *) &_dummy_request;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_XIOError: Resetting the display flags.\n");
++#endif
++
++ dpy->flags &= ~XlibDisplayProcConni;
++ dpy->flags &= ~XlibDisplayPrivSync;
++ dpy->flags &= ~XlibDisplayReadEvents;
++ dpy->flags &= ~XlibDisplayWriting;
++ dpy->flags &= ~XlibDisplayReply;
++#else
+ exit (1);
++#endif
+ return 0;
+ }
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlibint.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlibint.h.X.original
new file mode 100644
index 000000000..a23172ed9
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_Xlibint.h.X.original
@@ -0,0 +1,59 @@
+--- ./nx-X11/lib/X11/Xlibint.h.X.original 2015-02-13 14:03:44.624443872 +0100
++++ ./nx-X11/lib/X11/Xlibint.h 2015-02-10 19:13:12.888720189 +0100
+@@ -27,6 +27,24 @@
+ from The Open Group.
+
+ */
++
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/lib/X11/Xlibint.h,v 3.27 2003/05/27 22:26:26 tsi Exp $ */
+
+ #ifndef _XLIBINT_H_
+@@ -44,6 +62,15 @@
+ #include <X11/Xproto.h> /* to declare xEvent */
+ #include <X11/XlibConf.h> /* for configured options like XTHREADS */
+
++#ifdef NX_TRANS_SOCKET
++
++#include "NXvars.h"
++
++#define _XGetIOError(dpy) \
++ (dpy -> flags & XlibDisplayIOError)
++
++#endif
++
+ #ifdef WIN32
+ #define _XFlush _XFlushIt
+ #endif
+@@ -348,9 +375,15 @@
+ #define LOCKED 1
+ #define UNLOCKED 0
+
++#ifdef NX_TRANS_SOCKET
++#ifndef BUFSIZE /* Output buffer size is configurable */
++#define BUFSIZE 8192 /* but this is still used for reading. */
++#endif
++#else
+ #ifndef BUFSIZE
+ #define BUFSIZE 2048 /* X output buffer size. */
+ #endif
++#endif
+ #ifndef PTSPERBATCH
+ #define PTSPERBATCH 1024 /* point batching */
+ #endif
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_cmsProp.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_cmsProp.c.X.original
new file mode 100644
index 000000000..c929125f7
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_X11_cmsProp.c.X.original
@@ -0,0 +1,14 @@
+--- ./nx-X11/lib/X11/cmsProp.c.X.original 2015-02-13 14:03:44.624443872 +0100
++++ ./nx-X11/lib/X11/cmsProp.c 2015-02-10 19:13:12.948717938 +0100
+@@ -121,7 +121,11 @@
+ char *prop_ret;
+ int format_ret;
+ long len = 6516;
++ #ifdef NXAGENT_SERVER
++ unsigned long nitems_ret, after_ret = 0;
++ #else
+ unsigned long nitems_ret, after_ret;
++ #endif
+ Atom atom_ret;
+
+ while (XGetWindowProperty (pDpy, w, property, 0, len, False,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xau_AuRead.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xau_AuRead.c.X.original
new file mode 100644
index 000000000..940a3fee4
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xau_AuRead.c.X.original
@@ -0,0 +1,62 @@
+--- ./nx-X11/lib/Xau/AuRead.c.X.original 2015-02-13 14:03:44.624443872 +0100
++++ ./nx-X11/lib/Xau/AuRead.c 2015-02-10 19:13:12.488735202 +0100
+@@ -32,14 +32,29 @@
+ #endif
+ #include <X11/Xauth.h>
+ #include <stdlib.h>
++#include <errno.h>
+
+ static int
+ read_short (unsigned short *shortp, FILE *file)
+ {
+ unsigned char file_short[2];
+
+- if (fread ((char *) file_short, (int) sizeof (file_short), 1, file) != 1)
+- return 0;
++ /*
++ * Added a check on EINTR to prevent the fread() call to be
++ * interrupted by any signal not blocked by OsBlockSignals().
++ */
++
++ for (;;) {
++ if (fread ((char *) file_short, (int) sizeof (file_short), 1, file) != 1) {
++ if (errno == EINTR && ferror (file)) {
++ perror ("Reading from auth file");
++ clearerr (file);
++ continue;
++ }
++ return 0;
++ }
++ break;
++ }
+ *shortp = file_short[0] * 256 + file_short[1];
+ return 1;
+ }
+@@ -58,11 +73,22 @@
+ data = malloc ((unsigned) len);
+ if (!data)
+ return 0;
+- if (fread (data, (int) sizeof (char), (int) len, file) != len) {
+- bzero (data, len);
+- free (data);
+- return 0;
+- }
++ for (;;)
++ {
++ if (fread (data, (int) sizeof (char), (int) len, file) != len)
++ {
++ if (errno == EINTR && ferror (file))
++ {
++ perror ("Reading from auth file");
++ clearerr (file);
++ continue;
++ }
++ bzero (data, len);
++ free (data);
++ return 0;
++ }
++ break;
++ }
+ }
+ *stringp = data;
+ *countp = len;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Glyph.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Glyph.c.X.original
new file mode 100644
index 000000000..6dd036e2c
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Glyph.c.X.original
@@ -0,0 +1,547 @@
+--- ./nx-X11/lib/Xrender/Glyph.c.X.original 2015-02-13 14:03:44.652443320 +0100
++++ ./nx-X11/lib/Xrender/Glyph.c 2015-02-10 19:13:12.580731749 +0100
+@@ -27,6 +27,26 @@
+ #endif
+ #include "Xrenderint.h"
+
++/*
++ * NX_RENDER_CLEANUP enables cleaning of padding bytes
++ */
++
++#define NX_RENDER_CLEANUP
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++#undef DUMP
++
++#ifdef NX_RENDER_CLEANUP
++
++#include <stdio.h>
++
++#define ROUNDUP(nbits, pad) ((((nbits) + ((pad)-1)) / (pad)) * ((pad)>>3))
++
++#endif /* NX_RENDER_CLEANUP */
++
+ GlyphSet
+ XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format)
+ {
+@@ -81,6 +101,248 @@
+ SyncHandle();
+ }
+
++#ifdef NX_RENDER_CLEANUP
++
++void
++XRenderCleanGlyphs(xGlyphInfo *gi,
++ int nglyphs,
++ CARD8 *images,
++ int depth,
++ Display *dpy)
++{
++
++ int widthInBits;
++ int bytesPerLine;
++ int bytesToClean;
++ int bitsToClean;
++ int widthInBytes;
++ int height = gi -> height;
++ register int i;
++ int j;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: Found a Glyph with Depth %d, width %d, pad %d.\n",
++ depth, gi -> width, dpy -> bitmap_pad);
++ #endif
++
++ while (nglyphs > 0)
++ {
++ if (depth == 24)
++ {
++ widthInBits = gi -> width * 32;
++
++ bytesPerLine = ROUNDUP(widthInBits, dpy -> bitmap_pad);
++
++ bytesToClean = bytesPerLine * height;
++
++ #ifdef DUBUG
++ fprintf(stderr, "nxagentCleanGlyphs: Found glyph with depth 24, bytes to clean is %d"
++ "width in bits is %d bytes per line [%d] height [%d].\n", bytesToClean,
++ widthInBits, bytesPerLine, height);
++ #endif
++
++ if (dpy -> byte_order == LSBFirst)
++ {
++ for (i = 3; i < bytesToClean; i += 4)
++ {
++ images[i] = 0x00;
++ }
++ }
++ else
++ {
++ for (i = 0; i < bytesToClean; i += 4)
++ {
++ images[i] = 0x00;
++ }
++ }
++
++ #ifdef DUMP
++ fprintf(stderr, "nxagentCleanGlyphs: depth %d, bytesToClean %d, scanline: ", depth, bytesToClean);
++ for (i = 0; i < bytesPerLine; i++)
++ {
++ fprintf(stderr, "[%d]", images[i]);
++ }
++ fprintf(stderr,"\n");
++ #endif
++
++ images += bytesToClean;
++
++ gi++;
++
++ nglyphs--;
++ }
++ else if (depth == 1)
++ {
++ widthInBits = gi -> width;
++
++ bytesPerLine = ROUNDUP(widthInBits, dpy -> bitmap_pad);
++
++ bitsToClean = (bytesPerLine << 3) - (gi -> width);
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: Found glyph with depth 1, width [%d], height [%d], bitsToClean [%d],"
++ " bytesPerLine [%d].\n", gi -> width, height, bitsToClean, bytesPerLine);
++ #endif
++
++ bytesToClean = bitsToClean >> 3;
++
++ bitsToClean &= 7;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: bitsToClean &=7 is %d, bytesToCLean is %d."
++ " byte_order is %d, bitmap_bit_order is %d.\n", bitsToClean, bytesToClean,
++ dpy -> byte_order, dpy -> bitmap_bit_order);
++ #endif
++
++ for (i = 1; i <= height; i++)
++ {
++ if (dpy -> byte_order == dpy -> bitmap_bit_order)
++ {
++ for (j = 1; j <= bytesToClean; j++)
++ {
++ images[i * bytesPerLine - j] = 0x00;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: byte_order = bitmap_bit_orde, cleaning %d, i=%d, j=%d.\n"
++ , (i * bytesPerLine - j), i, j);
++ #endif
++
++ }
++ }
++ else
++ {
++ for (j = bytesToClean; j >= 1; j--)
++ {
++ images[i * bytesPerLine - j] = 0x00;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: byte_order %d, bitmap_bit_order %d, cleaning %d, i=%d, j=%d.\n"
++ , dpy -> byte_order, dpy -> bitmap_bit_order, (i * bytesPerLine - j), i, j);
++ #endif
++
++ }
++ }
++
++ if (dpy -> bitmap_bit_order == MSBFirst)
++ {
++ images[i * bytesPerLine - j] &= 0xff << bitsToClean;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: byte_order MSBFirst, cleaning %d, i=%d, j=%d.\n"
++ , (i * bytesPerLine - j), i, j);
++ #endif
++ }
++ else
++ {
++ images[i * bytesPerLine - j] &= 0xff >> bitsToClean;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: byte_order LSBFirst, cleaning %d, i=%d, j=%d.\n"
++ , (i * bytesPerLine - j), i, j);
++ #endif
++ }
++ }
++
++ #ifdef DUMP
++ fprintf(stderr, "nxagentCleanGlyphs: depth %d, bytesToClean %d, scanline: ", depth, bytesToClean);
++ for (i = 0; i < bytesPerLine; i++)
++ {
++ fprintf(stderr, "[%d]", images[i]);
++ }
++ fprintf(stderr,"\n");
++ #endif
++
++ images += bytesPerLine * height;
++
++ gi++;
++
++ nglyphs--;
++ }
++ else if ((depth == 8) || (depth == 16) )
++ {
++ widthInBits = gi -> width * depth;
++
++ bytesPerLine = ROUNDUP(widthInBits, dpy -> bitmap_pad);
++
++ widthInBytes = (widthInBits >> 3);
++
++ bytesToClean = bytesPerLine - widthInBytes;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: nglyphs is %d, width of glyph in bits is %d, in bytes is %d.\n",
++ nglyphs, widthInBits, widthInBytes);
++
++ fprintf(stderr, "nxagentCleanGlyphs: bytesPerLine is %d bytes, there are %d scanlines.\n", bytesPerLine, height);
++
++ fprintf(stderr, "nxagentCleanGlyphs: Bytes to clean for each scanline are %d.\n", bytesToClean);
++ #endif
++
++ if (bytesToClean > 0)
++ {
++ while (height > 0)
++ {
++ i = bytesToClean;
++
++ while (i > 0)
++ {
++ *(images + (bytesPerLine - i)) = 0;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: cleaned a byte.\n");
++ #endif
++
++ i--;
++ }
++
++ #ifdef DUMP
++ fprintf(stderr, "nxagentCleanGlyphs: depth %d, bytesToClean %d, scanline: ", depth, bytesToClean);
++ for (i = 0; i < bytesPerLine; i++)
++ {
++ fprintf(stderr, "[%d]", images[i]);
++ }
++ fprintf(stderr,"\n");
++ #endif
++
++ images += bytesPerLine;
++
++ height--;
++ }
++ }
++
++ gi++;
++
++ nglyphs--;
++
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: Breaking Out.\n");
++ #endif
++ }
++ else if (depth == 32)
++ {
++ #ifdef DEBUG
++ fprintf(stderr, "nxagentCleanGlyphs: Found glyph with depth 32.\n");
++ #endif
++
++ gi++;
++
++ nglyphs--;
++ }
++ else
++ {
++ #ifdef WARNING
++ fprintf(stderr, "nxagentCleanGlyphs: Unrecognized glyph, depth is not 8/16/24/32, it appears to be %d.\n",
++ depth);
++ #endif
++
++ gi++;
++
++ nglyphs--;
++ }
++ }
++}
++
++#endif /* #ifdef NX_RENDER_CLEANUP */
++
+ void
+ XRenderAddGlyphs (Display *dpy,
+ GlyphSet glyphset,
+@@ -404,6 +666,14 @@
+ _Xconst char *chars;
+ int nchars;
+
++ #ifdef NX_RENDER_CLEANUP
++
++ char tmpChar[4];
++ int bytes_to_clean;
++ int bytes_to_write;
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ if (!nelt)
+ return;
+
+@@ -464,6 +734,14 @@
+ {
+ glyphset = elts[i].glyphset;
+ BufAlloc (xGlyphElt *, elt, SIZEOF (xGlyphElt));
++
++ #ifdef NX_RENDER_CLEANUP
++
++ elt->pad1 = 0;
++ elt->pad2 = 0;
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ elt->len = 0xff;
+ elt->deltax = 0;
+ elt->deltay = 0;
+@@ -478,11 +756,88 @@
+ int this_chars = nchars > MAX_8 ? MAX_8 : nchars;
+
+ BufAlloc (xGlyphElt *, elt, SIZEOF(xGlyphElt))
++
++ #ifdef NX_RENDER_CLEANUP
++
++ elt->pad1 = 0;
++ elt->pad2 = 0;
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ elt->len = this_chars;
+ elt->deltax = xDst;
+ elt->deltay = yDst;
+ xDst = 0;
+ yDst = 0;
++
++ #ifdef NX_RENDER_CLEANUP
++
++ bytes_to_write = this_chars & ~3;
++
++ bytes_to_clean = ((this_chars + 3) & ~3) - this_chars;
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText8: bytes_to_write %d, bytes_to_clean are %d,"
++ " this_chars %d.\n", bytes_to_write, bytes_to_clean, this_chars);
++ #endif
++
++ if (bytes_to_clean > 0)
++ {
++ if (bytes_to_write > 0)
++ {
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText8: found %d clean bytes, bytes_to_clean are %d,"
++ " this_chars %d.\n", bytes_to_write, bytes_to_clean, this_chars);
++ #endif
++
++ Data (dpy, chars, bytes_to_write);
++ chars += bytes_to_write;
++ }
++
++ bytes_to_write = this_chars % 4;
++ memcpy (tmpChar, chars, bytes_to_write);
++ chars += bytes_to_write;
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText8: last 32 bit, bytes_to_write are %d,"
++ " bytes_to_clean are %d, this_chars are %d.\n", bytes_to_write, bytes_to_clean, this_chars);
++ #endif
++
++ #ifdef DUMP
++ fprintf(stderr, "XRenderCompositeText8: bytes_to_clean %d, ", bytes_to_clean);
++ #endif
++
++ while (bytes_to_clean > 0)
++ {
++ tmpChar[4 - bytes_to_clean] = 0;
++ bytes_to_clean--;
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText8: Cleaned %d byte.\n", 4 - bytes_to_clean);
++ #endif
++ }
++
++ Data (dpy, tmpChar, 4);
++ nchars -= this_chars;
++
++ #ifdef DUMP
++ fprintf(stderr, "Data: ");
++ for (i = 0; i < 4; i++)
++ {
++ fprintf(stderr, "[%d]", tmpChar[i]);
++ }
++ fprintf(stderr,"\n");
++ #endif
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText8: nchars now is %d.\n", nchars);
++ #endif
++
++ continue;
++ }
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ Data (dpy, chars, this_chars);
+ nchars -= this_chars;
+ chars += this_chars;
+@@ -517,6 +872,14 @@
+ _Xconst unsigned short *chars;
+ int nchars;
+
++ #ifdef NX_RENDER_CLEANUP
++
++ int bytes_to_write;
++ int bytes_to_clean;
++ char tmpChar[4];
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ if (!nelt)
+ return;
+
+@@ -574,6 +937,14 @@
+ {
+ glyphset = elts[i].glyphset;
+ BufAlloc (xGlyphElt *, elt, SIZEOF (xGlyphElt));
++
++ #ifdef NX_RENDER_CLEANUP
++
++ elt->pad1 = 0;
++ elt->pad2 = 0;
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ elt->len = 0xff;
+ elt->deltax = 0;
+ elt->deltay = 0;
+@@ -587,13 +958,77 @@
+ {
+ int this_chars = nchars > MAX_16 ? MAX_16 : nchars;
+ int this_bytes = this_chars * 2;
+-
++
+ BufAlloc (xGlyphElt *, elt, SIZEOF(xGlyphElt))
++
++ #ifdef NX_RENDER_CLEANUP
++
++ elt->pad1 = 0;
++ elt->pad2 = 0;
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ elt->len = this_chars;
+ elt->deltax = xDst;
+ elt->deltay = yDst;
+ xDst = 0;
+ yDst = 0;
++
++ #ifdef NX_RENDER_CLEANUP
++
++ bytes_to_write = this_bytes & ~3;
++ bytes_to_clean = ((this_bytes + 3) & ~3) - this_bytes;
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText16: this_chars %d, this_bytes %d.\n"
++ "bytes_to_write %d, bytes_to_clean are %d.\n", this_chars, this_bytes,
++ bytes_to_write, bytes_to_clean);
++ #endif
++
++ if (bytes_to_clean > 0)
++ {
++ if (bytes_to_write > 0)
++ {
++ Data16 (dpy, chars, bytes_to_write);
++
++ /*
++ * Cast chars to avoid errors with pointer arithmetic.
++ */
++
++ chars = (unsigned short *) ((char *) chars + bytes_to_write);
++ }
++
++ bytes_to_write = this_bytes % 4;
++ memcpy (tmpChar, (char *) chars, bytes_to_write);
++ chars = (unsigned short *) ((char *) chars + bytes_to_write);
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText16: last 32 bit, bytes_to_write are %d,"
++ " bytes_to_clean are %d.\n", bytes_to_write, bytes_to_clean);
++ #endif
++
++ while (bytes_to_clean > 0)
++ {
++ tmpChar[4 - bytes_to_clean] = 0;
++ bytes_to_clean--;
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText16: Cleaned %d byte.\n", 4 - bytes_to_clean);
++ #endif
++ }
++
++ Data16 (dpy, tmpChar, 4);
++ nchars -= this_chars;
++
++ #ifdef DEBUG
++ fprintf(stderr, "XRenderCompositeText16: nchars now is %d.\n", nchars);
++ #endif
++
++ continue;
++ }
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ Data16 (dpy, chars, this_bytes);
+ nchars -= this_chars;
+ chars += this_chars;
+@@ -681,6 +1116,14 @@
+ {
+ glyphset = elts[i].glyphset;
+ BufAlloc (xGlyphElt *, elt, SIZEOF (xGlyphElt));
++
++ #ifdef NX_RENDER_CLEANUP
++
++ elt->pad1 = 0;
++ elt->pad2 = 0;
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ elt->len = 0xff;
+ elt->deltax = 0;
+ elt->deltay = 0;
+@@ -695,11 +1138,25 @@
+ int this_chars = nchars > MAX_32 ? MAX_32 : nchars;
+ int this_bytes = this_chars * 4;
+ BufAlloc (xGlyphElt *, elt, SIZEOF(xGlyphElt))
++
++ #ifdef NX_RENDER_CLEANUP
++
++ elt->pad1 = 0;
++ elt->pad2 = 0;
++
++ #endif /* NX_RENDER_CLEANUP */
++
+ elt->len = this_chars;
+ elt->deltax = xDst;
+ elt->deltay = yDst;
+ xDst = 0;
+ yDst = 0;
++
++ #ifdef TEST
++ fprintf(stderr, "XRenderCompositeText32: this_chars %d, this_bytes %d.\n",
++ this_chars, this_bytes);
++ #endif
++
+ DataInt32 (dpy, chars, this_bytes);
+ nchars -= this_chars;
+ chars += this_chars;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Xrender.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Xrender.h.X.original
new file mode 100644
index 000000000..8bda13795
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xrender_Xrender.h.X.original
@@ -0,0 +1,39 @@
+--- ./nx-X11/lib/Xrender/Xrender.h.X.original 2015-02-13 14:03:44.652443320 +0100
++++ ./nx-X11/lib/Xrender/Xrender.h 2015-02-10 19:13:12.596731149 +0100
+@@ -25,6 +25,8 @@
+ #ifndef _XRENDER_H_
+ #define _XRENDER_H_
+
++#define NX_CLEANUP
++
+ #include <X11/extensions/render.h>
+
+ #include <X11/Xlib.h>
+@@ -32,6 +34,10 @@
+ #include <X11/Xosdefs.h>
+ #include <X11/Xutil.h>
+
++#ifdef NX_CLEANUP
++#include "renderproto.h"
++#endif
++
+ typedef struct {
+ short red;
+ short redMask;
+@@ -296,6 +302,16 @@
+ void
+ XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
+
++#ifdef NX_CLEANUP
++
++void XRenderCleanGlyphs (xGlyphInfo *gi,
++ int nglyphs,
++ CARD8 *images,
++ int depth,
++ Display *dpy);
++
++#endif /* #ifdef NX_CLEANUP */
++
+ void
+ XRenderAddGlyphs (Display *dpy,
+ GlyphSet glyphset,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xt_NextEvent.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xt_NextEvent.c.X.original
new file mode 100644
index 000000000..6ddefa10c
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_Xt_NextEvent.c.X.original
@@ -0,0 +1,42 @@
+--- ./nx-X11/lib/Xt/NextEvent.c.X.original 2015-02-13 14:03:44.656443242 +0100
++++ ./nx-X11/lib/Xt/NextEvent.c 2015-02-13 14:03:44.656443242 +0100
+@@ -58,6 +58,24 @@
+ in this Software without prior written authorization from The Open Group.
+
+ */
++
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/lib/Xt/NextEvent.c,v 3.26 2002/06/04 21:55:42 dawes Exp $ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -345,6 +363,14 @@
+ wait_fds_ptr_t wf)
+ {
+ #ifndef USE_POLL
++
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++
++ fprintf(stderr, "Xt::IoWait: Select called with [%d][%p][%p][%p][%p].\n",
++ wf->nfds, (void *) &wf->rmask, (void *) &wf->wmask, (void *) &wf->emask,
++ (void *) wt->wait_time_ptr);
++#endif
++
+ return Select (wf->nfds, &wf->rmask, &wf->wmask, &wf->emask,
+ wt->wait_time_ptr);
+ #else
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_font_fontfile_encparse.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_font_fontfile_encparse.c.X.original
new file mode 100644
index 000000000..116badc07
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_font_fontfile_encparse.c.X.original
@@ -0,0 +1,22 @@
+--- ./nx-X11/lib/font/fontfile/encparse.c.X.original 2015-02-13 14:03:44.668443005 +0100
++++ ./nx-X11/lib/font/fontfile/encparse.c 2015-02-10 19:13:12.336740907 +0100
+@@ -867,8 +867,10 @@
+ if(!strcasecmp(encoding_name, charset)) {
+ /* Found it */
+ if(file_name[0] != '/') {
+- if(strlen(dir) + strlen(file_name) >= MAXFONTFILENAMELEN)
++ if(strlen(dir) + strlen(file_name) >= MAXFONTFILENAMELEN) {
++ fclose(file);
+ return NULL;
++ }
+ strcpy(buf, dir);
+ strcat(buf, file_name);
+ } else {
+@@ -877,6 +879,7 @@
+
+ f = FontFileOpen(buf);
+ if(f == NULL) {
++ fclose(file);
+ return NULL;
+ }
+ encoding = parseEncodingFile(f, 0);
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_xtrans_Xtranssock.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_xtrans_Xtranssock.c.X.original
new file mode 100644
index 000000000..e076269f7
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_lib_xtrans_Xtranssock.c.X.original
@@ -0,0 +1,1133 @@
+--- ./nx-X11/lib/xtrans/Xtranssock.c.X.original 2015-02-13 14:03:44.672442927 +0100
++++ ./nx-X11/lib/xtrans/Xtranssock.c 2015-02-13 14:03:44.672442927 +0100
+@@ -53,6 +53,35 @@
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
++#ifdef NX_TRANS_SOCKET
++
++#ifdef NX_TRANS_DEBUG
++#define XTRANSDEBUG 5
++#endif
++
++#ifndef PF_LOCAL
++#define PF_LOCAL PF_UNIX
++#endif
++
++#endif
++
+ #include <ctype.h>
+ #ifdef XTHREADS
+ #include <X11/Xthreads.h>
+@@ -294,6 +323,560 @@
+ static int haveIPv6 = 1;
+ #endif
+
++#ifndef X11_t
++
++/*
++ * No NX changes if this is not
++ * compiled as a X11 transport.
++ */
++
++#undef NX_TRANS_SOCKET
++
++#endif
++
++#ifdef NX_TRANS_SOCKET
++
++#ifdef TRANS_CLIENT
++
++#include "NX.h"
++
++typedef struct
++{
++ XtransConnInfo info;
++ int local;
++ int remote;
++ int congestion;
++
++} _NXProxyConnInfo;
++
++#define NX_PROXY_CONN_LIMIT 256
++
++static _NXProxyConnInfo *_NXProxyConnInfoTab[NX_PROXY_CONN_LIMIT];
++
++#endif /* #ifdef TRANS_CLIENT */
++
++/*
++ * Override the UNIX_DIR and UNIX_PATH settings and
++ * make them configurable, based on the NX_TEMP or
++ * the TEMP environment.
++ *
++ * We must be careful as the same defines are used
++ * for different directories, based on the subsystem
++ * that is compiling this, while we want to override
++ * only the '/tmp/.X11-unix' and '/tmp/.X11-unix/X'
++ * settings.
++ */
++
++static char _NXUnixDir[1024];
++static char _NXUnixPath[1024];
++
++static char *_NXGetUnixDir(char *dir)
++{
++ const char *tempDir;
++
++ PRMSG (3, "_NXGetUnixDir(%s)\n", dir, 0, 0);
++
++ if (strcmp(dir, UNIX_DIR) != 0)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixDir: Returning other Unix directory [%s].\n", dir);
++#endif
++ return dir;
++ }
++
++ /*
++ * Check the environment only once.
++ */
++
++ if (*_NXUnixDir != '\0')
++ {
++ return _NXUnixDir;
++ }
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixDir: Trying with the NX_TEMP environment.\n");
++#endif
++
++ tempDir = getenv("NX_TEMP");
++
++ if (tempDir == NULL || *tempDir == '\0')
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixDir: Trying with the TEMP environment.\n");
++#endif
++
++ tempDir = getenv("TEMP");
++ }
++
++ if (tempDir != NULL && *tempDir != '\0')
++ {
++ if (strlen(tempDir) + strlen("/.X11-unix") + 1 > 1024)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixDir: WARNING! Maximum length of X11 Unix directory exceeded.\n");
++#endif
++ goto _NXGetUnixDirError;
++ }
++
++ strcpy(_NXUnixDir, tempDir);
++ strcat(_NXUnixDir, "/.X11-unix");
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixDir: Using X11 Unix directory [%s].\n", _NXUnixDir);
++#endif
++
++ return _NXUnixDir;
++ }
++
++_NXGetUnixDirError:
++
++ strcpy(_NXUnixDir, dir);
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixDir: Returning default X11 Unix directory [%s].\n", _NXUnixDir);
++#endif
++
++ return _NXUnixDir;
++}
++
++static char *_NXGetUnixPath(char *path)
++{
++ const char *unixDir;
++
++ PRMSG (3, "_NXGetUnixPath(%s)\n", path, 0, 0);
++
++ if (strcmp(path, UNIX_PATH) != 0)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixPath: Returning other X11 Unix path [%s].\n", path);
++#endif
++ return path;
++ }
++
++ /*
++ * Check the environment only once.
++ */
++
++ if (*_NXUnixPath != '\0')
++ {
++ return _NXUnixPath;
++ }
++
++ unixDir = _NXGetUnixDir(UNIX_DIR);
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixPath: Got X11 Unix directory [%s].\n", unixDir);
++#endif
++
++ if (strlen(unixDir) + strlen("/X") + 1 > 1024)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixPath: WARNING! Maximum length of X11 Unix path exceeded.\n");
++#endif
++
++ goto _NXGetUnixPathError;
++ }
++
++ strcpy(_NXUnixPath, unixDir);
++ strcat(_NXUnixPath, "/X");
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixPath: Returning X11 Unix path [%s].\n", _NXUnixPath);
++#endif
++
++ return _NXUnixPath;
++
++_NXGetUnixPathError:
++
++ strcpy(_NXUnixPath, path);
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetUnixPath: Returning default X11 Unix path [%s].\n", _NXUnixPath);
++#endif
++
++ return _NXUnixPath;
++}
++
++#ifdef hpux
++
++static char *_NXGetOldUnixPath(char *path)
++{
++ PRMSG (3, "_NXGetOldUnixPath(%s)\n", path, 0, 0);
++
++ if (strcmp(path, OLD_UNIX_PATH) == 0)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetOldUnixPath: Returning X11 Unix path [%s].\n",
++ _NXGetUnixPath(path));
++#endif
++
++ return _NXGetUnixPath(path);
++ }
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetOldUnixPath: Returning other old X11 Unix path [%s].\n", path);
++#endif
++
++ return path;
++}
++
++#endif /* #ifdef hpux */
++
++/*
++ * Forcibly close any connection attempt on the
++ * listening socket. Need this to avoid loopback
++ * connections to the agent server.
++ */
++
++#ifdef TRANS_SERVER
++
++void TRANS(SocketRejectConnection) (XtransConnInfo ciptr)
++{
++ size_t sa_l = sizeof(struct sockaddr);
++ struct sockaddr sa;
++ fd_set fs;
++ struct timeval t;
++ int f;
++
++ PRMSG (3, "SocketRejectConnection(%x)\n", ciptr, 0, 0);
++
++ FD_ZERO(&fs);
++ FD_SET(ciptr -> fd, &fs);
++
++ t.tv_sec = 0;
++ t.tv_usec = 0;
++
++ /*
++ * Check if there is an awaiting connection.
++ */
++
++ if (select(ciptr -> fd + 1, &fs, NULL, NULL, &t) == 1)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketRejectConnection: Accepting connection attempt on fd [%d].\n",
++ ciptr -> fd);
++#endif
++ /*
++ * If there is one, close it.
++ */
++
++ if ((f = accept(ciptr -> fd, &sa, &sa_l)) >= 0)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketRejectConnection: Closing connection attempt on fd [%d].\n",
++ ciptr -> fd);
++#endif
++ close(f);
++ }
++ }
++}
++
++#endif /* #ifdef TRANS_SERVER */
++
++#ifdef TRANS_CLIENT
++
++void *TRANS(SocketProxyConnInfo) (XtransConnInfo ciptr)
++{
++ if (_NXProxyConnInfoTab[ciptr->fd] != NULL)
++ {
++ return ciptr->priv;
++ }
++
++ return NULL;
++}
++
++static XtransConnInfo TRANS(SocketCreateConnInfo) ()
++{
++ XtransConnInfo ciptr;
++
++ int fds[2];
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCreateConnInfo: Going to create the NX connection info.\n");
++#endif
++
++ if ((ciptr = (XtransConnInfo) calloc (1, sizeof(struct _XtransConnInfo))) == NULL)
++ {
++ PRMSG (1, "SocketCreateConnInfo: malloc failed\n", 0, 0, 0);
++ return NULL;
++ }
++
++ /*
++ * Create a pair of sockets. We'll communicate with
++ * the NX proxy by reading and writing to our end.
++ */
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCreateConnInfo: Going to create the NX socketpair.\n");
++#endif
++
++ if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fds) < 0)
++ {
++ PRMSG (1, "SocketCreateConnInfo: socketpair() failed.\n", 0, 0, 0);
++ xfree ((char *) ciptr);
++ return NULL;
++ }
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCreateConnInfo: X socket end is [%d] NX proxy end is [%d].\n",
++ fds[0], fds[1]);
++#endif
++
++ /*
++ * Save in _NXProxyConnInfoTab the local and remote end of
++ * the socketpair. The remote end will be used by the proxy.
++ * When the memory-to-memory transport is activated, the
++ * agent and the proxy don't read or write to the real des-
++ * criptors but the communication takes place by reading
++ * and writing to the proxy's buffers.
++ */
++
++ ciptr->fd = fds[0];
++
++ if (ciptr->fd >= NX_PROXY_CONN_LIMIT)
++ {
++ PRMSG (1, "SocketCreateConnInfo: No space for a new _NXProxyConnInfo for [%d].\n",
++ ciptr->fd, 0, 0);
++ xfree ((char *) ciptr);
++ return NULL;
++ }
++ else if (_NXProxyConnInfoTab[ciptr->fd] != NULL)
++ {
++ PRMSG (1, "SocketCreateConnInfo: _NXProxyConnInfo for [%d] is not NULL. Exiting.\n",
++ ciptr->fd, 0, 0);
++ exit(1);
++ }
++
++ _NXProxyConnInfoTab[ciptr->fd] = (_NXProxyConnInfo *) xcalloc(1, sizeof(_NXProxyConnInfo));
++
++ if (_NXProxyConnInfoTab[ciptr->fd] == NULL)
++ {
++ PRMSG (1, "SocketCreateConnInfo: Alloc of _NXProxyConnInfo failed.\n", 0, 0, 0);
++ xfree ((char *) ciptr);
++ return NULL;
++ }
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCreateConnInfo: Allocated new _NXProxyConnInfo for [%d].\n",
++ ciptr->fd);
++#endif
++
++ _NXProxyConnInfoTab[ciptr->fd]->info = ciptr;
++ _NXProxyConnInfoTab[ciptr->fd]->local = fds[0];
++ _NXProxyConnInfoTab[ciptr->fd]->remote = fds[1];
++ _NXProxyConnInfoTab[ciptr->fd]->congestion = 0;
++
++ ciptr->priv = (char *) _NXProxyConnInfoTab[ciptr->fd];
++
++ return ciptr;
++}
++
++static int TRANS(SocketConnectConnInfo) (XtransConnInfo ciptr, char *host, char *port)
++{
++ int fds[2];
++ char display[1024];
++
++ _NXProxyConnInfo *proxy_conn;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketConnectConnInfo: Going to connect NX fd [%d] to host [%s] port [%s].\n",
++ ciptr->fd, host, port);
++#endif
++
++ /*
++ * We should have already created the socket pair.
++ */
++
++ proxy_conn = (_NXProxyConnInfo *) ciptr->priv;
++
++ if (proxy_conn == NULL)
++ {
++ PRMSG (1, "SocketConnectConnInfo: Pointer to _NXProxyConnInfo is NULL. Exiting.\n", 0, 0, 0);
++
++ exit(1);
++ }
++ else if (_NXProxyConnInfoTab[ciptr->fd] != (_NXProxyConnInfo *) ciptr->priv)
++ {
++ PRMSG (1, "SocketConnectConnInfo: Can't find _NXProxyConnInfo in table. Exiting.\n",
++ 0, 0, 0);
++
++ exit(1);
++ }
++
++ if (strlen(host) + strlen(port) + 1 >= 1023)
++ {
++ PRMSG (1, "SocketConnectConnInfo: Length of NX display string '%s:%s' would exceed %d characters.\n",
++ host, port, 1023);
++
++ return TRANS_CONNECT_FAILED;
++ }
++
++ sprintf(display, "%s:%s", host, port);
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketConnectConnInfo: Setting close-on-exec flag on local NX descriptor [%d].\n",
++ proxy_conn -> local);
++#endif
++
++#ifdef F_SETFD
++#ifdef FD_CLOEXEC
++ if (fcntl(proxy_conn -> local, F_SETFD, FD_CLOEXEC) != 0)
++#else
++ if (fcntl(proxy_conn -> local, F_SETFD, 1) != 0)
++#endif
++#endif
++ {
++ PRMSG (1, "SocketConnectConnInfo: Cannot set close-on-exec on local NX descriptor [%d].\n",
++ proxy_conn -> local, 0, 0);
++
++ return TRANS_CONNECT_FAILED;
++ }
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketConnectConnInfo: Creating the NX transport with display [%s].\n",
++ display);
++#endif
++
++ if (NXTransCreate(NX_FD_ANY, NX_MODE_CLIENT, display) < 0)
++ {
++ PRMSG (1, "SocketConnectConnInfo: Cannot create the NX transport.\n",
++ 0, 0, 0);
++
++ return TRANS_CONNECT_FAILED;
++ }
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketConnectConnInfo: Starting the NX agent with descriptor [%d].\n",
++ proxy_conn -> remote);
++#endif
++
++ fds[0] = proxy_conn -> local;
++ fds[1] = proxy_conn -> remote;
++
++ NXTransAgent(fds);
++
++ return 0;
++}
++
++static void TRANS(SocketCloseConnInfo) (XtransConnInfo ciptr)
++{
++ _NXProxyConnInfo *proxy_conn;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCloseConnInfo: Going to close the NX fd [%d].\n", ciptr->fd);
++#endif
++
++ proxy_conn = (_NXProxyConnInfo *) ciptr->priv;
++
++ if (proxy_conn == NULL)
++ {
++ PRMSG (1, "SocketCloseConnInfo: Pointer to _NXProxyConnInfo is NULL. Exiting.\n", 0, 0, 0);
++
++ exit(1);
++ }
++ else if (ciptr->fd >= NX_PROXY_CONN_LIMIT ||
++ _NXProxyConnInfoTab[ciptr->fd] != (_NXProxyConnInfo *) ciptr->priv)
++ {
++ PRMSG (1, "SocketCloseConnInfo: Can't find _NXProxyConnInfo in table. Exiting.\n",
++ 0, 0, 0);
++ exit(1);
++ }
++ else if (_NXProxyConnInfoTab[ciptr->fd] -> info != ciptr ||
++ _NXProxyConnInfoTab[ciptr->fd] -> local != ciptr->fd)
++ {
++ PRMSG (1, "SocketCloseConnInfo: Invalid _NXProxyConnInfo structure for [%d]. Exiting.\n",
++ ciptr->fd, 0, 0);
++ exit(1);
++ }
++ else if (proxy_conn->local < 0 || proxy_conn->remote < 0)
++ {
++ PRMSG (1, "SocketCloseConnInfo: Invalid socket pair in NX connection for [%d]. Exiting.\n",
++ ciptr->fd, 0, 0);
++ exit(1);
++ }
++
++ NXTransClose(ciptr->fd);
++
++ /*
++ * Get rid of the _NXProxyConnInfo structure.
++ */
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCloseConnInfo: Freeing _NXProxyConnInfo structure for [%d].\n",
++ ciptr->fd);
++#endif
++
++ xfree((char *) _NXProxyConnInfoTab[ciptr->fd]);
++
++ _NXProxyConnInfoTab[ciptr->fd] = NULL;
++
++ ciptr->priv = NULL;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCloseConnInfo: Should now close the local descriptor [%d].\n",
++ ciptr->fd);
++#endif
++}
++
++#endif /* #ifdef TRANS_CLIENT */
++
++#if defined(TRANS_CLIENT) && defined(NX_TRANS_CHANGE)
++
++/*
++ * Check the congestion state of the NX transport
++ * and return 1 if there has been a change. This
++ * can be extended by adding a few counters track-
++ * ing the bandwidth usage of the X11 connection.
++ */
++
++int TRANS(SocketCongestionChange) (XtransConnInfo ciptr, int *state)
++{
++ int congestion;
++
++ _NXProxyConnInfo *proxy_conn;
++
++ PRMSG (3, "SocketCongestionChange(%x)\n", ciptr, 0, 0);
++
++ proxy_conn = (_NXProxyConnInfo *) ciptr->priv;
++
++ if (proxy_conn == NULL)
++ {
++#ifdef NX_TRANS_DEBUG
++ fprintf(stderr, "SocketCongestionChange: Descriptor [%d] doesn't appear to be a NX connection.\n",
++ ciptr->fd);
++#endif
++ return 0;
++ }
++
++#ifdef NX_TRANS_DEBUG
++ fprintf(stderr, "SocketCongestionChange: Checking congestion on fd [%d] with old state [%d].\n",
++ ciptr->fd, proxy_conn->congestion);
++#endif
++
++ congestion = NXTransCongestion(ciptr->fd);
++
++ if (congestion != proxy_conn->congestion)
++ {
++ proxy_conn->congestion = congestion;
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCongestionChange: Change detected on fd [%d] with new state [%d].\n",
++ ciptr->fd, proxy_conn->congestion);
++#endif
++ return 1;
++ }
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketCongestionChange: No change on fd [%d] with current state [%d].\n",
++ ciptr->fd, congestion);
++#endif
++ return 0;
++}
++
++#endif /* #if defined(TRANS_CLIENT) && defined(NX_TRANS_CHANGE) */
++
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ /*
+ * These are some utility function used by the real interface function below.
+ */
+@@ -562,6 +1145,29 @@
+ SocketInitOnce();
+
+ while ((i = TRANS(SocketSelectFamily) (i, transname)) >= 0) {
++
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ if ((!strcmp(protocol, "local") || !strcmp(protocol, "nx")) &&
++ (!strcasecmp(host, "nx") || !strncasecmp(host, "nx,", 3)))
++ {
++ ciptr = TRANS(SocketCreateConnInfo) ();
++
++ if (ciptr == NULL)
++ {
++ PRMSG (1, "SocketOpenCOTSClient: Unable to create the NX connection info for %s.\n",
++ transname, 0, 0);
++
++ return NULL;
++ }
++
++ ciptr->index = i;
++
++ return ciptr;
++ }
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ if ((ciptr = TRANS(SocketOpen) (
+ i, Sockettrans2devtab[i].devcotsname)) != NULL)
+ break;
+@@ -576,6 +1182,12 @@
+ return NULL;
+ }
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ ciptr->priv = NULL;
++
++#endif
++
+ /* Save the index for later use */
+
+ ciptr->index = i;
+@@ -677,6 +1289,29 @@
+ SocketInitOnce();
+
+ while ((i = TRANS(SocketSelectFamily) (i, thistrans->TransName)) >= 0) {
++
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ if ((!strcmp(protocol, "local") || !strcmp(protocol, "nx")) &&
++ (!strcasecmp(host, "nx") || !strncasecmp(host, "nx,", 3)))
++ {
++ ciptr = TRANS(SocketCreateConnInfo) ();
++
++ if (ciptr == NULL)
++ {
++ PRMSG (1, "SocketOpenCLTSClient: Unable to create the NX connection info for %s.\n",
++ thistrans->TransName, 0, 0);
++
++ return NULL;
++ }
++
++ ciptr->index = i;
++
++ return ciptr;
++ }
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ if ((ciptr = TRANS(SocketOpen) (
+ i, Sockettrans2devtab[i].devcotsname)) != NULL)
+ break;
+@@ -691,6 +1326,12 @@
+ return NULL;
+ }
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ ciptr->priv = NULL;
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ /* Save the index for later use */
+
+ ciptr->index = i;
+@@ -826,6 +1467,11 @@
+ {
+ PRMSG (2,"SocketSetOption(%d,%d,%d)\n", ciptr->fd, option, arg);
+
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "SocketSetOption: WARNING! Not setting option [%d] with value [%d] on descriptor [%d].\n",
++ option, arg, ciptr -> fd);
++#endif
++
+ return -1;
+ }
+
+@@ -875,6 +1521,11 @@
+ else
+ retry = 0;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "SocketCreateListener: Creating listener for ciptr at [%p] on path [%s].\n",
++ (void *) ciptr, ((struct sockaddr_un *) sockname)->sun_family == AF_UNIX ?
++ ((struct sockaddr_un *) sockname)->sun_path : "TCP");
++#endif
+ while (bind (fd, (struct sockaddr *) sockname, namelen) < 0)
+ {
+ if (errno == EADDRINUSE) {
+@@ -926,6 +1577,11 @@
+
+ ciptr->flags = 1 | (ciptr->flags & TRANS_KEEPFLAGS);
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "SocketCreateListener: Set flags to [%d] for ciptr [%p].\n",
++ ciptr->flags, (void *) ciptr);
++#endif
++
+ return 0;
+ }
+
+@@ -1084,9 +1740,15 @@
+ #else
+ mode = 0777;
+ #endif
++#ifdef NX_TRANS_SOCKET
++ if (trans_mkdir(_NXGetUnixDir(UNIX_DIR), mode) == -1) {
++ PRMSG (1, "SocketUNIXCreateListener: mkdir(%s) failed, errno = %d\n",
++ _NXGetUnixDir(UNIX_DIR), errno, 0);
++#else
+ if (trans_mkdir(UNIX_DIR, mode) == -1) {
+ PRMSG (1, "SocketUNIXCreateListener: mkdir(%s) failed, errno = %d\n",
+ UNIX_DIR, errno, 0);
++#endif
+ (void) umask (oldUmask);
+ return TRANS_CREATE_LISTENER_FAILED;
+ }
+@@ -1095,12 +1757,20 @@
+ sockname.sun_family = AF_UNIX;
+
+ if (port && *port) {
++#ifdef NX_TRANS_SOCKET
++ if (set_sun_path(port, _NXGetUnixPath(UNIX_PATH), sockname.sun_path) != 0) {
++#else
+ if (set_sun_path(port, UNIX_PATH, sockname.sun_path) != 0) {
++#endif
+ PRMSG (1, "SocketUNIXCreateListener: path too long\n", 0, 0, 0);
+ return TRANS_CREATE_LISTENER_FAILED;
+ }
+ } else {
++#ifdef NX_TRANS_SOCKET
++ sprintf (sockname.sun_path, "%s%ld", _NXGetUnixPath(UNIX_PATH), (long)getpid());
++#else
+ sprintf (sockname.sun_path, "%s%ld", UNIX_PATH, (long)getpid());
++#endif
+ }
+
+ #if (defined(BSD44SOCKETS) || defined(__UNIXWARE__)) && !defined(Lynx)
+@@ -1110,6 +1780,10 @@
+ namelen = strlen(sockname.sun_path) + sizeof(sockname.sun_family);
+ #endif
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "SocketUNIXCreateListener: Unlinking path [%s] for ciptr at [%p].\n",
++ sockname.sun_path, (void *) ciptr);
++#endif
+ unlink (sockname.sun_path);
+
+ if ((status = TRANS(SocketCreateListener) (ciptr,
+@@ -1181,9 +1855,15 @@
+ #else
+ mode = 0777;
+ #endif
++#ifdef NX_TRANS_SOCKET
++ if (trans_mkdir(_NXGetUnixDir(UNIX_DIR), mode) == -1) {
++ PRMSG (1, "SocketUNIXResetListener: mkdir(%s) failed, errno = %d\n",
++ _NXGetUnixDir(UNIX_DIR), errno, 0);
++#else
+ if (trans_mkdir(UNIX_DIR, mode) == -1) {
+ PRMSG (1, "SocketUNIXResetListener: mkdir(%s) failed, errno = %d\n",
+ UNIX_DIR, errno, 0);
++#endif
+ (void) umask (oldUmask);
+ return TRANS_RESET_FAILURE;
+ }
+@@ -1962,7 +2642,12 @@
+ * we know for sure it will fail.
+ */
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++ if (strcmp(host, "unix") != 0 && strcasecmp(host, "nx") != 0 &&
++ strncasecmp(host, "nx,", 3) != 0 && !UnixHostReallyLocal (host))
++#else
+ if (strcmp (host, "unix") != 0 && !UnixHostReallyLocal (host))
++#endif
+ {
+ PRMSG (1,
+ "SocketUNIXConnect: Cannot connect to non-local host %s\n",
+@@ -1988,7 +2673,11 @@
+
+ sockname.sun_family = AF_UNIX;
+
++#ifdef NX_TRANS_SOCKET
++ if (set_sun_path(port, _NXGetUnixPath(UNIX_PATH), sockname.sun_path) != 0) {
++#else
+ if (set_sun_path(port, UNIX_PATH, sockname.sun_path) != 0) {
++#endif
+ PRMSG (1, "SocketUNIXConnect: path too long\n", 0, 0, 0);
+ return TRANS_CONNECT_FAILED;
+ }
+@@ -2006,7 +2695,11 @@
+ * This is gross, but it was in Xlib
+ */
+ old_sockname.sun_family = AF_UNIX;
++#ifdef NX_TRANS_SOCKET
++ if (set_sun_path(port, _NXGetOldUnixPath(OLD_UNIX_PATH), old_sockname.sun_path) != 0) {
++#else
+ if (set_sun_path(port, OLD_UNIX_PATH, old_sockname.sun_path) != 0) {
++#endif
+ PRMSG (1, "SocketUNIXConnect: path too long\n", 0, 0, 0);
+ return TRANS_CONNECT_FAILED;
+ }
+@@ -2014,6 +2707,19 @@
+ sizeof (old_sockname.sun_family);
+ #endif
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ if (ciptr->priv != NULL)
++ {
++ if (TRANS(SocketConnectConnInfo) (ciptr, host, port) != 0)
++ {
++ return TRANS_CONNECT_FAILED;
++ }
++
++ goto SocketUNIXConnectPost;
++ }
++
++#endif
+
+ /*
+ * Do the connect()
+@@ -2065,6 +2771,12 @@
+ }
+ }
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++SocketUNIXConnectPost:
++
++#endif
++
+ /*
+ * Get the socket name and the peer name from the connect socket,
+ * since this is unix domain.
+@@ -2099,6 +2811,58 @@
+ {
+ PRMSG (2,"SocketBytesReadable(%p,%d,%p)\n",
+ ciptr, ciptr->fd, pend);
++
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ if (ciptr->priv)
++ {
++ if (NXTransRunning(ciptr->fd) == 0)
++ {
++ /*
++ * Force the application to shut down the
++ * socket if the NX transport is gone. We
++ * may probably save this additional call.
++ */
++
++#ifdef NX_TRANS_DEBUG
++ fprintf(stderr, "SocketBytesReadable: NX transport not running for descriptor [%d].\n",
++ ciptr->fd);
++#endif
++ ESET(EPIPE);
++
++ return -1;
++ }
++ else
++ {
++ /*
++ * Emulate BytesReadable. Some X applications may use the system
++ * select() in their main loop, instead of the _XSelect() that is
++ * replaced by NX. Still these applications use _XEventsQueued to
++ * poll events from the X connection, and _XEventsQueued uses the
++ * NX _XSelect(), so it is generally possible to let the client
++ * yield the control to NX and let it handle the I/O on the proxy
++ * descriptors even if the application is not explicitly designed
++ * to work as a NX agent.
++ */
++
++#ifdef NX_TRANS_DEBUG
++
++ int result;
++
++ result = NXTransReadable(ciptr->fd, (int *) pend);
++
++ fprintf(stderr, "SocketBytesReadable: Descriptor [%d] result [%d] readable [%ld].\n",
++ ciptr->fd, result, *pend);
++
++ return result;
++#else
++ return NXTransReadable(ciptr->fd, (int *) pend);
++#endif
++ }
++ }
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ #if defined(QNX4)
+ *pend = 0L; /* FIONREAD only returns a short. Zero out upper bits */
+ #endif
+@@ -2128,6 +2892,41 @@
+ {
+ PRMSG (2,"SocketRead(%d,%p,%d)\n", ciptr->fd, buf, size);
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ /*
++ * If we have a valid priv pointer then this
++ * is an internal connection to the proxy.
++ * In this case we should emulate the read.
++ */
++
++ if (ciptr->priv)
++ {
++ int result;
++
++ result = NXTransRead(ciptr->fd, buf, size);
++
++#ifdef NX_TRANS_DEBUG
++ if (result < 0 && EGET() == EAGAIN)
++ {
++ fprintf(stderr, "SocketRead: Read from descriptor [%d] would block.\n",
++ ciptr->fd);
++ }
++ else
++ {
++ fprintf(stderr, "SocketRead: Read [%d] bytes from descriptor [%d].\n",
++ result, ciptr->fd);
++ }
++#endif
++ return result;
++ }
++ else
++ {
++ return read (ciptr->fd, buf, size);
++ }
++
++#else /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ #if defined(WIN32) || defined(__UNIXOS2__)
+ {
+ int ret = recv ((SOCKET)ciptr->fd, buf, size, 0);
+@@ -2139,6 +2938,8 @@
+ #else
+ return read (ciptr->fd, buf, size);
+ #endif /* WIN32 */
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
+ }
+
+
+@@ -2148,6 +2949,41 @@
+ {
+ PRMSG (2,"SocketWrite(%d,%p,%d)\n", ciptr->fd, buf, size);
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ /*
++ * If we have a valid priv pointer then this
++ * is an internal connection to the proxy.
++ * In this case we should emulate the write.
++ */
++
++ if (ciptr->priv)
++ {
++ int result;
++
++ result = NXTransWrite(ciptr->fd, buf, size);
++
++#ifdef NX_TRANS_DEBUG
++ if (result < 0 && EGET() == EAGAIN)
++ {
++ fprintf(stderr, "SocketWrite: Write on descriptor [%d] would block.\n",
++ ciptr->fd);
++ }
++ else
++ {
++ fprintf(stderr, "SocketWrite: Written [%d] bytes on descriptor [%d].\n",
++ result, ciptr->fd);
++ }
++#endif
++ return result;
++ }
++ else
++ {
++ return write (ciptr->fd, buf, size);
++ }
++
++#else /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ #if defined(WIN32) || defined(__UNIXOS2__)
+ {
+ int ret = send ((SOCKET)ciptr->fd, buf, size, 0);
+@@ -2159,6 +2995,8 @@
+ #else
+ return write (ciptr->fd, buf, size);
+ #endif /* WIN32 */
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
+ }
+
+
+@@ -2168,7 +3006,28 @@
+ {
+ PRMSG (2,"SocketReadv(%d,%p,%d)\n", ciptr->fd, buf, size);
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ /*
++ * If we have a valid priv pointer then this
++ * is an internal connection to the proxy.
++ * In this case we should emulate the readv.
++ */
++
++ if (ciptr->priv)
++ {
++ return NXTransReadVector(ciptr->fd, buf, size);
++ }
++ else
++ {
++ return READV (ciptr, buf, size);
++ }
++
++#else /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ return READV (ciptr, buf, size);
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
+ }
+
+
+@@ -2178,7 +3037,28 @@
+ {
+ PRMSG (2,"SocketWritev(%d,%p,%d)\n", ciptr->fd, buf, size);
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ /*
++ * If we have a valid priv pointer then this
++ * is an internal connection to the proxy.
++ * In this case we should emulate the writev.
++ */
++
++ if (ciptr->priv)
++ {
++ return NXTransWriteVector(ciptr->fd, buf, size);
++ }
++ else
++ {
++ return WRITEV (ciptr, buf, size);
++ }
++
++#else /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
++
+ return WRITEV (ciptr, buf, size);
++
++#endif /* #if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT) */
+ }
+
+
+@@ -2234,17 +3114,41 @@
+ struct sockaddr_un *sockname = (struct sockaddr_un *) ciptr->addr;
+ int ret;
+
+- PRMSG (2,"SocketUNIXClose(%p,%d)\n", ciptr, ciptr->fd, 0);
++ PRMSG (2,"SocketUNIXClose(%x,%d)\n", ciptr, ciptr->fd, 0);
++
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ if (ciptr->priv)
++ {
++ TRANS(SocketCloseConnInfo) (ciptr);
++ }
++
++#endif
+
+ ret = close(ciptr->fd);
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "SocketUNIXClose: Flags are [%d] for ciptr at [%p] check is [%d].\n",
++ ciptr->flags, (void *) ciptr, (ciptr->flags && sockname
++ && sockname->sun_family == AF_UNIX && sockname->sun_path[0]));
++#endif
++
+ if (ciptr->flags
+ && sockname
+ && sockname->sun_family == AF_UNIX
+ && sockname->sun_path[0])
+ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ if (!(ciptr->flags & TRANS_NOUNLINK))
++ {
++ fprintf(stderr, "SocketUNIXClose: Unlinking path [%s] for ciptr at [%p].\n",
++ sockname->sun_path, (void *) ciptr);
++ unlink (sockname->sun_path);
++ }
++#else
+ if (!(ciptr->flags & TRANS_NOUNLINK))
+ unlink (sockname->sun_path);
++#endif
+ }
+
+ return ret;
+@@ -2263,6 +3167,15 @@
+ PRMSG (2,"SocketUNIXCloseForCloning(%p,%d)\n",
+ ciptr, ciptr->fd, 0);
+
++#if defined(NX_TRANS_SOCKET) && defined(TRANS_CLIENT)
++
++ if (ciptr->priv)
++ {
++ TRANS(SocketCloseConnInfo) (ciptr);
++ }
++
++#endif
++
+ ret = close(ciptr->fd);
+
+ return ret;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2.c.X.original
new file mode 100644
index 000000000..16fa7adcc
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2.c.X.original
@@ -0,0 +1,11 @@
+--- ./nx-X11/programs/Xserver/GL/glx/render2.c.X.original 2015-02-13 14:03:44.680442769 +0100
++++ ./nx-X11/programs/Xserver/GL/glx/render2.c 2015-02-10 19:13:14.416663013 +0100
+@@ -43,7 +43,7 @@
+ #include "unpack.h"
+ #include "g_disptab.h"
+ #include "g_disptab_EXT.h"
+-
++#include "indirect_size.h"
+
+ void __glXDisp_Map1f(GLbyte *pc)
+ {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2swap.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2swap.c.X.original
new file mode 100644
index 000000000..1ae924df0
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_glx_render2swap.c.X.original
@@ -0,0 +1,11 @@
+--- ./nx-X11/programs/Xserver/GL/glx/render2swap.c.X.original 2015-02-13 14:03:44.680442769 +0100
++++ ./nx-X11/programs/Xserver/GL/glx/render2swap.c 2015-02-10 19:13:14.376664506 +0100
+@@ -43,7 +43,7 @@
+ #include "unpack.h"
+ #include "g_disptab.h"
+ #include "g_disptab_EXT.h"
+-
++#include "indirect_size.h"
+
+ void __glXDispSwap_Map1f(GLbyte *pc)
+ {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_Imakefile.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_Imakefile.X.original
new file mode 100644
index 000000000..7f3db6c8b
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_Imakefile.X.original
@@ -0,0 +1,11 @@
+--- ./nx-X11/programs/Xserver/GL/mesa/X/Imakefile.X.original 2015-02-13 14:03:44.680442769 +0100
++++ ./nx-X11/programs/Xserver/GL/mesa/X/Imakefile 2015-02-10 19:13:14.340665851 +0100
+@@ -57,7 +57,7 @@
+ -I$(XF86OSSRC) \
+ -I$(DRMSRCDIR)/shared-core
+
+- DEFINES = $(GLX_DEFINES) $(GLXSRV_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
++ DEFINES = $(GLX_DEFINES) $(GLXSRV_DEFINES) -DNXAGENT_SERVER /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
+
+ #ifdef IHaveModules
+ ModuleObjectRule()
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_xf86glx.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_xf86glx.c.X.original
new file mode 100644
index 000000000..eaa3a1624
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_GL_mesa_X_xf86glx.c.X.original
@@ -0,0 +1,70 @@
+--- ./nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c.X.original 2015-02-13 14:03:44.680442769 +0100
++++ ./nx-X11/programs/Xserver/GL/mesa/X/xf86glx.c 2015-02-10 19:13:14.340665851 +0100
+@@ -71,6 +71,10 @@
+
+ #include "glcontextmodes.h"
+
++#ifdef NXAGENT_SERVER
++#include "../main/WSDrawBuffer.h"
++#endif
++
+ /*
+ * This structure is statically allocated in the __glXScreens[]
+ * structure. This struct is not used anywhere other than in
+@@ -95,6 +99,36 @@
+ NULL /* WrappedPositionWindow is overwritten */
+ };
+
++#ifdef NXAGENT_SERVER
++WSDrawBufferPtr pWSDrawBuffer = NULL;
++
++void AddWSDrawBuffer(GLframebuffer *mesa_buffer)
++{
++ WSDrawBufferPtr prevWSDB;
++ WSDrawBufferPtr newWSDB;
++ WSDrawBufferPtr p;
++
++ prevWSDB = NULL;
++ newWSDB = NULL;
++ p = pWSDrawBuffer;
++ while (p != NULL) {
++ prevWSDB = p;
++ if (prevWSDB -> DrawBuffer == mesa_buffer) {
++ return;
++ }
++ p = p -> next;
++ }
++ newWSDB = malloc(sizeof(WSDrawBufferRec));
++ newWSDB -> DrawBuffer = mesa_buffer;
++ newWSDB -> next = NULL;
++
++ if (pWSDrawBuffer == NULL)
++ pWSDrawBuffer = newWSDB;
++ else
++ prevWSDB -> next = newWSDB;
++}
++#endif
++
+ void *__glXglDDXScreenInfo(void) {
+ return &__glDDXScreenInfo;
+ }
+@@ -748,6 +782,10 @@
+ __MESA_buffer buf = (__MESA_buffer)glPriv->private;
+ __GLXdrawablePrivate *glxPriv = (__GLXdrawablePrivate *)glPriv->other;
+
++#ifdef NXAGENT_SERVER
++ AddWSDrawBuffer(& (buf -> xm_buf -> mesa_buffer) );
++#endif
++
+ /* Destroy Mesa's buffers */
+ if (buf->xm_buf)
+ XMesaDestroyBuffer(buf->xm_buf);
+@@ -757,7 +795,7 @@
+ glPriv->frontBuffer.resize = buf->fbresize;
+
+ __glXFree(glPriv->private);
+- glPriv->private = NULL;
++ glPriv->private = NULL;
+ }
+
+ __GLinterface *__MESA_createContext(__GLimports *imports,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_Xext_security.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_Xext_security.c.X.original
new file mode 100644
index 000000000..bb461afcd
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_Xext_security.c.X.original
@@ -0,0 +1,315 @@
+--- ./nx-X11/programs/Xserver/Xext/security.c.X.original 2015-02-13 14:03:44.684442691 +0100
++++ ./nx-X11/programs/Xserver/Xext/security.c 2015-02-13 14:03:44.684442691 +0100
+@@ -27,6 +27,23 @@
+ */
+ /* $XFree86: xc/programs/Xserver/Xext/security.c,v 1.16tsi Exp $ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #ifdef HAVE_DIX_CONFIG_H
+ #include <dix-config.h>
+ #endif
+@@ -54,14 +71,49 @@
+ #include <stdio.h> /* for file reading operations */
+ #include <X11/Xatom.h> /* for XA_STRING */
+
++#ifdef NXAGENT_SERVER
++
++#include <unistd.h>
++#include <string.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++
++#endif
++
+ #ifndef DEFAULTPOLICYFILE
+ # define DEFAULTPOLICYFILE NULL
+ #endif
++
++#ifdef NXAGENT_SERVER
++
++#define NX_ALTERNATIVEPOLICYFILE "/usr/lib/xserver/SecurityPolicy"
++
++#endif
++
+ #if defined(WIN32) || defined(__CYGWIN__)
+ #include <X11/Xos.h>
+ #undef index
+ #endif
+
++/*
++ * Set here the required NX log level.
++ */
++
++#ifdef NXAGENT_SERVER
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++
++#endif
++
++#ifdef NXAGENT_SERVER
++
++static char _NXPolicyFilePath[1024];
++
++#endif
++
+ #include "modinit.h"
+
+ static int SecurityErrorBase; /* first Security error number */
+@@ -87,6 +139,115 @@
+ ClientPtr /*client*/
+ );
+
++#ifdef NXAGENT_SERVER
++
++/*
++ * This function returns the SecurityPolicy
++ * file full path. This path is referred by
++ * SecurityPolicyFile variable (generally it
++ * contains the hardcoded path at compile time).
++ * If the path does not exist, the function will
++ * try a set of well known paths.
++ */
++
++const char *_NXGetPolicyFilePath(const char *path)
++{
++
++ struct stat SecurityPolicyStat;
++
++ /*
++ * Check the policy file path only once.
++ */
++
++ if (*_NXPolicyFilePath != '\0')
++ {
++ return _NXPolicyFilePath;
++ }
++
++ if (stat(path, &SecurityPolicyStat) == 0)
++ {
++ if (strlen(path) + 1 > 1024)
++ {
++ #ifdef WARNING
++ fprintf(stderr, "_NXGetPolicyFilePath: WARNING! Maximum length of SecurityPolicy file path exceeded.\n");
++ #endif
++
++ goto _NXGetPolicyFilePathError;
++ }
++
++ strcpy(_NXPolicyFilePath, path);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetPolicyFilePath: Using SecurityPolicy file path [%s].\n",
++ _NXPolicyFilePath);
++ #endif
++
++ return _NXPolicyFilePath;
++ }
++
++ if (stat(DEFAULTPOLICYFILE, &SecurityPolicyStat) == 0)
++ {
++ if (strlen(DEFAULTPOLICYFILE) + 1 > 1024)
++ {
++ #ifdef WARNING
++ fprintf(stderr, "_NXGetPolicyFilePath: WARNING! Maximum length of SecurityPolicy file path exceeded.\n");
++ #endif
++
++ goto _NXGetPolicyFilePathError;
++ }
++
++ strcpy(_NXPolicyFilePath, DEFAULTPOLICYFILE);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetPolicyFilePath: Using SecurityPolicy file path [%s].\n",
++ _NXPolicyFilePath);
++ #endif
++
++ return _NXPolicyFilePath;
++ }
++
++ if (stat(NX_ALTERNATIVEPOLICYFILE, &SecurityPolicyStat) == 0)
++ {
++ if (strlen(NX_ALTERNATIVEPOLICYFILE) + 1 > 1024)
++ {
++ #ifdef WARNING
++ fprintf(stderr, "_NXGetPolicyFilePath: WARNING! Maximum length of SecurityPolicy file path exceeded.\n");
++ #endif
++
++ goto _NXGetPolicyFilePathError;
++ }
++
++ strcpy(_NXPolicyFilePath, NX_ALTERNATIVEPOLICYFILE);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetPolicyFilePath: Using SecurityPolicy file path [%s].\n",
++ _NXPolicyFilePath);
++ #endif
++
++ return _NXPolicyFilePath;
++ }
++
++_NXGetPolicyFilePathError:
++
++ if (strlen(path) + 1 > 1024)
++ {
++ #ifdef WARNING
++ fprintf(stderr, "_NXGetPolicyFilePath: WARNING! Maximum length of SecurityPolicy file exceeded.\n");
++ #endif
++ }
++
++ strcpy(_NXPolicyFilePath, path);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetPolicyFilePath: Using default SecurityPolicy file path [%s].\n",
++ _NXPolicyFilePath);
++ #endif
++
++ return _NXPolicyFilePath;
++}
++
++#endif
++
+ /* SecurityAudit
+ *
+ * Arguments:
+@@ -1647,18 +1808,60 @@
+
+ SecurityMaxPropertyName = 0;
+
++#ifdef NXAGENT_SERVER
++
++ if (!_NXGetPolicyFilePath(SecurityPolicyFile))
++ {
++ return;
++ }
++
++#else
++
+ if (!SecurityPolicyFile)
+ return;
+
++#endif
++
+ #ifndef __UNIXOS2__
++
++#ifdef NXAGENT_SERVER
++
++ f = Fopen(_NXGetPolicyFilePath(SecurityPolicyFile), "r");
++
++#else
++
+ f = Fopen(SecurityPolicyFile, "r");
++
++#endif
++
++#else
++
++#ifdef NXAGENT_SERVER
++
++ f = Fopen((char*)__XOS2RedirRoot( _NXGetPolicyFilePath(SecurityPolicyFile)), "r");
++
+ #else
++
+ f = Fopen((char*)__XOS2RedirRoot(SecurityPolicyFile), "r");
+-#endif
++
++#endif
++
++#endif
++
+ if (!f)
+ {
++#ifdef NXAGENT_SERVER
++
++ ErrorF("error opening security policy file %s\n",
++ _NXGetPolicyFilePath(SecurityPolicyFile));
++
++#else
++
+ ErrorF("error opening security policy file %s\n",
+ SecurityPolicyFile);
++
++#endif
++
+ return;
+ }
+
+@@ -1678,8 +1881,19 @@
+ char *v = SecurityParseString(&p);
+ if (strcmp(v, SECURITY_POLICY_FILE_VERSION) != 0)
+ {
++
++#ifdef NXAGENT_SERVER
++
++ ErrorF("%s: invalid security policy file version, ignoring file\n",
++ _NXGetPolicyFilePath(SecurityPolicyFile));
++
++#else
++
+ ErrorF("%s: invalid security policy file version, ignoring file\n",
+ SecurityPolicyFile);
++
++#endif
++
+ break;
+ }
+ validLine = TRUE;
+@@ -1706,9 +1920,22 @@
+ }
+ }
+
++#ifdef NXAGENT_SERVER
++
++ if (!validLine)
++ {
++ ErrorF("Line %d of %s invalid, ignoring\n",
++ lineNumber, _NXGetPolicyFilePath(SecurityPolicyFile));
++ }
++
++#else
++
+ if (!validLine)
+ ErrorF("Line %d of %s invalid, ignoring\n",
+ lineNumber, SecurityPolicyFile);
++
++#endif
++
+ } /* end while more input */
+
+ #ifdef PROPDEBUG
+@@ -1799,7 +2026,17 @@
+ {
+ struct stat buf;
+ static time_t lastmod = 0;
++
++#ifdef NXAGENT_SERVER
++
++ int ret = stat(_NXGetPolicyFilePath(SecurityPolicyFile), &buf);
++
++#else
++
+ int ret = stat(SecurityPolicyFile , &buf);
++
++#endif
++
+ if ( (ret == 0) && (buf.st_mtime > lastmod) )
+ {
+ ErrorF("reloading property rules\n");
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_dixfonts.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_dixfonts.c.X.original
new file mode 100644
index 000000000..1f0cbd4fd
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_dixfonts.c.X.original
@@ -0,0 +1,86 @@
+--- ./nx-X11/programs/Xserver/dix/dixfonts.c.X.original 2015-02-13 14:03:44.704442298 +0100
++++ ./nx-X11/programs/Xserver/dix/dixfonts.c 2015-02-13 14:03:44.704442298 +0100
+@@ -72,6 +72,63 @@
+ #include <stdio.h>
+ #endif
+
++#ifdef NX_TRANS_SOCKET
++
++char _NXFontPath[1024];
++
++/*
++ * Override the default font path and make
++ * it configurable at run time, based on
++ * the NX_FONT environment.
++ */
++
++static const char *_NXGetFontPath(const char *path)
++{
++ const char *fontEnv;
++
++ /*
++ * Check the environment only once.
++ */
++
++ if (*_NXFontPath != '\0')
++ {
++ return _NXFontPath;
++ }
++
++ fontEnv = getenv("NX_FONT");
++
++ if (fontEnv != NULL && *fontEnv != '\0')
++ {
++ if (strlen(fontEnv) + 1 > 1024)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetFontPath: WARNING! Maximum length of font path exceeded.\n");
++#endif
++ goto _NXGetFontPathError;
++ }
++
++ strcpy(_NXFontPath, fontEnv);
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetFontPath: Using NX font path [%s].\n", _NXFontPath);
++#endif
++
++ return _NXFontPath;
++ }
++
++_NXGetFontPathError:
++
++ strcpy(_NXFontPath, path);
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetFontPath: Using default font path [%s].\n", _NXFontPath);
++#endif
++
++ return _NXFontPath;
++}
++
++#endif
++
+ #ifdef PANORAMIX
+ #include "panoramiX.h"
+ #endif
+@@ -1817,11 +1874,19 @@
+ bad;
+
+ /* get enough for string, plus values -- use up commas */
++#ifdef NX_TRANS_SOCKET
++ len = strlen(_NXGetFontPath(path)) + 1;
++#else
+ len = strlen(path) + 1;
++#endif
+ nump = cp = newpath = (unsigned char *) ALLOCATE_LOCAL(len);
+ if (!newpath)
+ return BadAlloc;
++#ifdef NX_TRANS_SOCKET
++ pp = (unsigned char *) _NXGetFontPath(path);
++#else
+ pp = (unsigned char *) path;
++#endif
+ cp++;
+ while (*pp) {
+ if (*pp == ',') {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_pixmap.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_pixmap.c.X.original
new file mode 100644
index 000000000..77b32d21c
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_dix_pixmap.c.X.original
@@ -0,0 +1,18 @@
+--- ./nx-X11/programs/Xserver/dix/pixmap.c.X.original 2015-02-13 14:03:44.704442298 +0100
++++ ./nx-X11/programs/Xserver/dix/pixmap.c 2015-02-10 19:13:13.696689930 +0100
+@@ -121,7 +121,14 @@
+ if (pScreen->totalPixmapSize > ((size_t)-1) - pixDataSize)
+ return NullPixmap;
+
+- pPixmap = (PixmapPtr)xalloc(pScreen->totalPixmapSize + pixDataSize);
++ /*
++ * FIXME: Allocate 4 bytes at the end of each pixmap. This
++ * is a quick workaround intended to fix a problem reported
++ * by Valgrind due to fbBlt() writing just after the end of
++ * the pixmap buffer. This may be a RENDER bug.
++ */
++
++ pPixmap = (PixmapPtr)xalloc(pScreen->totalPixmapSize + pixDataSize + 4);
+ if (!pPixmap)
+ return NullPixmap;
+ ppriv = (DevUnion *)(pPixmap + 1);
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_fb_fbtrap.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_fb_fbtrap.c.X.original
new file mode 100644
index 000000000..343526131
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_fb_fbtrap.c.X.original
@@ -0,0 +1,12 @@
+--- ./nx-X11/programs/Xserver/fb/fbtrap.c.X.original 2015-02-13 14:03:44.704442298 +0100
++++ ./nx-X11/programs/Xserver/fb/fbtrap.c 2015-02-10 19:13:14.156672722 +0100
+@@ -115,6 +115,9 @@
+ RenderEdge l, r;
+ xFixed t, b;
+
++ if (!xTrapezoidValid (trap))
++ return;
++
+ fbGetDrawable (pPicture->pDrawable, buf, stride, bpp, pxoff, pyoff);
+
+ width = pPicture->pDrawable->width;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdamage.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdamage.c.X.original
new file mode 100644
index 000000000..06d91218f
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdamage.c.X.original
@@ -0,0 +1,138 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXdamage.c.X.original 2015-02-13 14:03:44.740441589 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXdamage.c 2015-02-10 19:13:13.828684988 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * $Id: damage.c,v 1.19 2005/10/06 21:55:41 anholt Exp $
+ *
+@@ -1358,17 +1375,24 @@
+ if (n != 0) {
+ damageDamageChars (pDrawable, pGC->font, x + pDrawable->x, y + pDrawable->y, n,
+ charinfo, imageblt, pGC->subWindowMode);
++
++#ifndef NXAGENT_SERVER
++
+ if (imageblt)
+ (*pGC->ops->ImageGlyphBlt)(pDrawable, pGC, x, y, n, charinfo,
+ FONTGLYPHS(pGC->font));
+ else
+ (*pGC->ops->PolyGlyphBlt)(pDrawable, pGC, x, y, n, charinfo,
+ FONTGLYPHS(pGC->font));
++#endif
++
+ }
+ DEALLOCATE_LOCAL(charinfo);
+ return x + w;
+ }
+
++#ifndef NXAGENT_SERVER
++
+ static int
+ damagePolyText8(DrawablePtr pDrawable,
+ GCPtr pGC,
+@@ -1445,6 +1469,89 @@
+ DAMAGE_GC_OP_EPILOGUE(pGC, pDrawable);
+ }
+
++#else /* #ifndef NXAGENT_SERVER */
++
++static int
++damagePolyText8(DrawablePtr pDrawable,
++ GCPtr pGC,
++ int x,
++ int y,
++ int count,
++ char *chars)
++{
++ DAMAGE_GC_OP_PROLOGUE(pGC, pDrawable);
++
++ if (checkGCDamage (pDrawable, pGC))
++ damageText (pDrawable, pGC, x, y, (unsigned long) count, chars,
++ Linear8Bit, TT_POLY8);
++
++ x = (*pGC->ops->PolyText8)(pDrawable, pGC, x, y, count, chars);
++
++ DAMAGE_GC_OP_EPILOGUE(pGC, pDrawable);
++ return x;
++}
++
++static int
++damagePolyText16(DrawablePtr pDrawable,
++ GCPtr pGC,
++ int x,
++ int y,
++ int count,
++ unsigned short *chars)
++{
++ DAMAGE_GC_OP_PROLOGUE(pGC, pDrawable);
++
++ if (checkGCDamage (pDrawable, pGC))
++ damageText (pDrawable, pGC, x, y, (unsigned long) count, (char *) chars,
++ FONTLASTROW(pGC->font) == 0 ? Linear16Bit : TwoD16Bit,
++ TT_POLY16);
++
++ x = (*pGC->ops->PolyText16)(pDrawable, pGC, x, y, count, chars);
++
++ DAMAGE_GC_OP_EPILOGUE(pGC, pDrawable);
++ return x;
++}
++
++static void
++damageImageText8(DrawablePtr pDrawable,
++ GCPtr pGC,
++ int x,
++ int y,
++ int count,
++ char *chars)
++{
++ DAMAGE_GC_OP_PROLOGUE(pGC, pDrawable);
++
++ if (checkGCDamage (pDrawable, pGC))
++ damageText (pDrawable, pGC, x, y, (unsigned long) count, chars,
++ Linear8Bit, TT_IMAGE8);
++
++ (*pGC->ops->ImageText8)(pDrawable, pGC, x, y, count, chars);
++
++ DAMAGE_GC_OP_EPILOGUE(pGC, pDrawable);
++}
++
++static void
++damageImageText16(DrawablePtr pDrawable,
++ GCPtr pGC,
++ int x,
++ int y,
++ int count,
++ unsigned short *chars)
++{
++ DAMAGE_GC_OP_PROLOGUE(pGC, pDrawable);
++
++ if (checkGCDamage (pDrawable, pGC))
++ damageText (pDrawable, pGC, x, y, (unsigned long) count, (char *) chars,
++ FONTLASTROW(pGC->font) == 0 ? Linear16Bit : TwoD16Bit,
++ TT_IMAGE16);
++
++ (*pGC->ops->ImageText16)(pDrawable, pGC, x, y, count, chars);
++
++ DAMAGE_GC_OP_EPILOGUE(pGC, pDrawable);
++}
++
++#endif /* #ifndef NXAGENT_SERVER */
+
+ static void
+ damageImageGlyphBlt(DrawablePtr pDrawable,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdispatch.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdispatch.c.X.original
new file mode 100644
index 000000000..d9e35f7ae
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdispatch.c.X.original
@@ -0,0 +1,1036 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c.X.original 2015-02-13 14:03:44.740441589 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c 2015-02-13 14:03:44.740441589 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XdotOrg: xc/programs/Xserver/dix/dispatch.c,v 1.13 2005/09/13 01:33:19 daniels Exp $ */
+ /* $Xorg: dispatch.c,v 1.5 2001/02/09 02:04:40 xorgcvs Exp $ */
+ /************************************************************
+@@ -87,6 +104,15 @@
+ int ProcInitialConnection();
+ #endif
+
++#ifdef __sun
++#define False 0
++#define True 1
++#endif
++
++#define GC XlibGC
++#include <X11/Xlib.h>
++#undef GC
++
+ #include "windowstr.h"
+ #include <X11/fonts/fontstruct.h>
+ #include "dixfontstr.h"
+@@ -100,7 +126,7 @@
+ #include "servermd.h"
+ #include "extnsionst.h"
+ #include "dixfont.h"
+-#include "dispatch.h"
++#include "../../dix/dispatch.h"
+ #include "swaprep.h"
+ #include "swapreq.h"
+ #ifdef PANORAMIX
+@@ -119,8 +145,69 @@
+ #include "inputstr.h"
+ #include <X11/extensions/XKBsrv.h>
+ #endif
++
++#include "Atoms.h"
++#include "Splash.h"
++#include "Client.h"
++#include "Clipboard.h"
++#include "Reconnect.h"
++#include "Millis.h"
++#include "Font.h"
++#include "Shadow.h"
++#include "Handlers.h"
++#include "Keyboard.h"
++
++const int nxagentMaxFontNames = 10000;
++
++char dispatchExceptionAtReset = DE_RESET;
++
++/*
++ * This allows the agent to exit if no
++ * client is connected within a timeout.
++ */
++
++int nxagentClients = 0;
++
++void nxagentWaitDisplay(void);
++
++void nxagentListRemoteFonts(const char *, int);
++
++unsigned int nxagentWMtimeout = 0;
++Bool nxagentWMPassed = 0;
++
++/*
++ * Timeouts based on screen saver time.
++ */
++
++int nxagentAutoDisconnectTimeout = 0;
++
+ #ifdef LBX
+-#include "lbxserve.h"
++#include "../../lbx/lbxserve.h"
++#endif
++
++#include "Xatom.h"
++
++/*
++ * Set here the required log level.
++ */
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef WATCH
++
++/*
++ * Log begin and end of the important handlers.
++ */
++
++#undef BLOCKS
++
++#ifdef WATCH
++#include "unistd.h"
++#endif
++
++#ifdef TEST
++#include "Literals.h"
+ #endif
+
+ #define mskcnt ((MAXCLIENTS + 31) / 32)
+@@ -138,6 +225,28 @@
+ int NumCurrentSelections;
+ CallbackListPtr SelectionCallback = NULL;
+
++#ifdef VIEWPORT_FRAME
++
++extern WindowPtr nxagentViewportFrameLeft;
++extern WindowPtr nxagentViewportFrameRight;
++extern WindowPtr nxagentViewportFrameAbove;
++extern WindowPtr nxagentViewportFrameBelow;
++
++#define IsViewportFrame(pWin) ((pWin) == nxagentViewportFrameLeft || \
++ (pWin) == nxagentViewportFrameRight || \
++ (pWin) == nxagentViewportFrameAbove || \
++ (pWin) == nxagentViewportFrameBelow)
++
++#else
++
++#define IsViewportFrame(pWin) (0)
++
++#endif /* #ifdef VIEWPORT_FRAME */
++
++extern int nxagentMaxAllowedResets;
++
++extern int nxagentFindClientResource(int, RESTYPE, pointer);
++
+ static ClientPtr grabClient;
+ #define GrabNone 0
+ #define GrabActive 1
+@@ -222,6 +331,30 @@
+ xfree(CurrentSelections);
+ CurrentSelections = (Selection *)NULL;
+ NumCurrentSelections = 0;
++
++#ifdef NXAGENT_CLIPBOARD
++ {
++ Selection *newsels;
++ newsels = (Selection *)xalloc(2 * sizeof(Selection));
++ if (!newsels)
++ return;
++ NumCurrentSelections += 2;
++ CurrentSelections = newsels;
++
++ CurrentSelections[0].selection = XA_PRIMARY;
++ CurrentSelections[0].lastTimeChanged = ClientTimeToServerTime(0);
++ CurrentSelections[0].window = WindowTable[0]->drawable.id;
++ CurrentSelections[0].pWin = NULL;
++ CurrentSelections[0].client = NullClient;
++
++ CurrentSelections[1].selection = MakeAtom("CLIPBOARD", 9, 1);
++ CurrentSelections[1].lastTimeChanged = ClientTimeToServerTime(0);
++ CurrentSelections[1].window = WindowTable[0]->drawable.id;
++ CurrentSelections[1].pWin = NULL;
++ CurrentSelections[1].client = NullClient;
++ }
++#endif
++
+ }
+
+ void
+@@ -369,14 +502,72 @@
+ long start_tick;
+ #endif
+
++ unsigned long currentDispatch = 0;
++
+ nextFreeClientID = 1;
+ InitSelections();
+ nClients = 0;
+
++ /*
++ * The agent initialization was successfully
++ * completed. We can now handle our clients.
++ */
++
++ #ifdef XKB
++
++ nxagentInitXkbWrapper();
++
++ nxagentTuneXkbWrapper();
++
++ #endif
++
++ #ifdef NXAGENT_ONSTART
++
++ /*
++ * Set NX_WM property (used by NX client to identify
++ * the agent's window) three seconds since the first
++ * client connects.
++ */
++
++ nxagentWMtimeout = GetTimeInMillis() + 3000;
++
++ #endif
++
+ clientReady = (int *) ALLOCATE_LOCAL(sizeof(int) * MaxClients);
+ if (!clientReady)
+ return;
+
++ #ifdef WATCH
++
++ fprintf(stderr, "Dispatch: Watchpoint 12.\n");
++
++/*
++Reply Total Cached Bits In Bits Out Bits/Reply Ratio
++------- ----- ------ ------- -------- ---------- -----
++#3 1 352 bits (0 KB) -> 236 bits (0 KB) -> 352/1 -> 236/1 = 1.492:1
++#14 1 256 bits (0 KB) -> 101 bits (0 KB) -> 256/1 -> 101/1 = 2.535:1
++#16 1 256 bits (0 KB) -> 26 bits (0 KB) -> 256/1 -> 26/1 = 9.846:1
++#20 2 2 12256 bits (1 KB) -> 56 bits (0 KB) -> 6128/1 -> 28/1 = 218.857:1
++#43 1 256 bits (0 KB) -> 45 bits (0 KB) -> 256/1 -> 45/1 = 5.689:1
++#47 2 2 42304 bits (5 KB) -> 49 bits (0 KB) -> 21152/1 -> 24/1 = 863.347:1
++#98 1 256 bits (0 KB) -> 34 bits (0 KB) -> 256/1 -> 34/1 = 7.529:1
++*/
++
++ sleep(30);
++
++ #endif
++
++ #ifdef TEST
++ fprintf(stderr, "Dispatch: Value of dispatchException is [%x].\n",
++ dispatchException);
++
++ fprintf(stderr, "Dispatch: Value of dispatchExceptionAtReset is [%x].\n",
++ dispatchExceptionAtReset);
++ #endif
++
++ if (!(dispatchException & DE_TERMINATE))
++ dispatchException = 0;
++
+ while (!dispatchException)
+ {
+ if (*icheck[0] != *icheck[1])
+@@ -385,8 +576,75 @@
+ FlushIfCriticalOutputPending();
+ }
+
++ /*
++ * Ensure we remove the splash after the timeout.
++ * Initializing clientReady[0] to -1 will tell
++ * WaitForSomething() to yield control after the
++ * timeout set in clientReady[1].
++ */
++
++ clientReady[0] = 0;
++
++ if (nxagentSplashWindow != None || (nxagentOption(Xdmcp) == 1 && nxagentXdmcpUp == 0))
++ {
++ #ifdef TEST
++ fprintf(stderr, "******Dispatch: Requesting a timeout of [%d] Ms.\n",
++ NXAGENT_WAKEUP);
++ #endif
++
++ clientReady[0] = -1;
++ clientReady[1] = NXAGENT_WAKEUP;
++ }
++
++ if (serverGeneration > nxagentMaxAllowedResets &&
++ nxagentSessionState == SESSION_STARTING &&
++ (nxagentOption(Xdmcp) == 0 || nxagentXdmcpUp == 1))
++ {
++ #ifdef NX_DEBUG_INPUT
++ fprintf(stderr, "Session: Session started at '%s' timestamp [%lu].\n",
++ GetTimeAsString(), GetTimeInMillis());
++ #else
++ fprintf(stderr, "Session: Session started at '%s'.\n",
++ GetTimeAsString());
++ #endif
++
++ nxagentSessionState = SESSION_UP;
++ }
++
++ #ifdef BLOCKS
++ fprintf(stderr, "[End dispatch]\n");
++ #endif
++
+ nready = WaitForSomething(clientReady);
+
++ #ifdef BLOCKS
++ fprintf(stderr, "[Begin dispatch]\n");
++ #endif
++
++ #ifdef TEST
++ fprintf(stderr, "******Dispatch: Running with [%d] clients ready.\n",
++ nready);
++ #endif
++
++ #ifdef NXAGENT_ONSTART
++
++ currentDispatch = GetTimeInMillis();
++
++ /*
++ * If the timeout is expired set the
++ * selection informing the NX client
++ * that the agent is ready.
++ */
++
++ if (!nxagentWMPassed && (nxagentWMtimeout < currentDispatch))
++ {
++ nxagentRemoveSplashWindow(NULL);
++ }
++
++ nxagentClients = nClients;
++
++ #endif
++
+ #ifdef SMART_SCHEDULE
+ if (nready && !SmartScheduleDisable)
+ {
+@@ -438,6 +696,11 @@
+ #endif
+ /* now, finally, deal with client requests */
+
++ #ifdef TEST
++ fprintf(stderr, "******Dispatch: Reading request from client [%d].\n",
++ client->index);
++ #endif
++
+ result = ReadRequestFromClient(client);
+ if (result <= 0)
+ {
+@@ -445,6 +708,29 @@
+ CloseDownClient(client);
+ break;
+ }
++#ifdef NXAGENT_SERVER
++
++ #ifdef TEST
++
++ else
++ {
++
++ if (MAJOROP > 127)
++ {
++ fprintf(stderr, "******Dispatch: Read [Extension] request OPCODE#%d MINOR#%d "
++ "size [%d] client [%d].\n", MAJOROP, *((char *) client->requestBuffer + 1),
++ client->req_len << 2, client->index);
++ }
++ else
++ {
++ fprintf(stderr, "******Dispatch: Read [%s] request OPCODE#%d size [%d] client [%d].\n",
++ nxagentRequestLiteral[MAJOROP], MAJOROP, client->req_len << 2,
++ client->index);
++ }
++ }
++
++ #endif
++#endif
+
+ client->sequence++;
+ #ifdef DEBUG
+@@ -456,8 +742,40 @@
+ if (result > (maxBigRequestSize << 2))
+ result = BadLength;
+ else
++#ifdef NXAGENT_SERVER
++ {
++ result = (* client->requestVector[MAJOROP])(client);
++
++ #ifdef TEST
++
++ if (MAJOROP > 127)
++ {
++ fprintf(stderr, "******Dispatch: Handled [Extension] request OPCODE#%d MINOR#%d "
++ "size [%d] client [%d] result [%d].\n", MAJOROP,
++ *((char *) client->requestBuffer + 1), client->req_len << 2,
++ client->index, result);
++ }
++ else
++ {
++ fprintf(stderr, "******Dispatch: Handled [%s] request OPCODE#%d size [%d] client [%d] "
++ "result [%d].\n", nxagentRequestLiteral[MAJOROP], MAJOROP,
++ client->req_len << 2, client->index, result);
++ }
++
++ #endif
++
++ /*
++ * Can set isItTimeToYield to force
++ * the dispatcher to pay attention
++ * to another client.
++ */
++
++ nxagentDispatchHandler(client, client->req_len << 2, 0);
++ }
++#else
+ result = (* client->requestVector[MAJOROP])(client);
+-
++#endif
++
+ if (result != Success)
+ {
+ if (client->noClientException != Success)
+@@ -485,6 +803,37 @@
+ #if defined(DDXBEFORERESET)
+ ddxBeforeReset ();
+ #endif
++ if ((dispatchException & DE_RESET) &&
++ (serverGeneration > nxagentMaxAllowedResets))
++ {
++ dispatchException &= ~DE_RESET;
++ dispatchException |= DE_TERMINATE;
++
++ fprintf(stderr, "Info: Reached threshold of maximum allowed resets.\n");
++ }
++
++ nxagentResetAtomMap();
++
++ if (serverGeneration > nxagentMaxAllowedResets)
++ {
++ /*
++ * The session is terminating. Force an I/O
++ * error on the display and wait until the
++ * NX transport is gone.
++ */
++
++ fprintf(stderr, "Session: Terminating session at '%s'.\n", GetTimeAsString());
++
++ nxagentWaitDisplay();
++
++ fprintf(stderr, "Session: Session terminated at '%s'.\n", GetTimeAsString());
++ }
++
++ if (nxagentOption(Shadow) == 1)
++ {
++ NXShadowDestroy();
++ }
++
+ KillAllClients();
+ DEALLOCATE_LOCAL(clientReady);
+ dispatchException &= ~DE_RESET;
+@@ -656,6 +1005,12 @@
+ SecurityWriteAccess);
+ if (!pWin)
+ return(BadWindow);
++
++ if (!nxagentWMPassed)
++ {
++ nxagentRemoveSplashWindow(pWin);
++ }
++
+ pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client,
+ SecurityWriteAccess);
+ if (!pParent)
+@@ -724,6 +1079,7 @@
+ return(BadWindow);
+ UnmapWindow(pWin, FALSE);
+ /* update cache to say it is mapped */
++
+ return(client->noClientException);
+ }
+
+@@ -760,6 +1116,7 @@
+ return BadLength;
+ result = ConfigureWindow(pWin, (Mask)stuff->mask, (XID *) &stuff[1],
+ client);
++
+ if (client->noClientException != Success)
+ return(client->noClientException);
+ else
+@@ -865,7 +1222,12 @@
+ reply.parent = (Window)None;
+ pHead = RealChildHead(pWin);
+ for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib)
++ {
++ if (!IsViewportFrame(pChild))
++ {
+ numChildren++;
++ }
++ }
+ if (numChildren)
+ {
+ int curChild = 0;
+@@ -874,7 +1236,12 @@
+ if (!childIDs)
+ return BadAlloc;
+ for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib)
++ {
++ if (!IsViewportFrame(pChild))
++ {
+ childIDs[curChild++] = pChild->drawable.id;
++ }
++ }
+ }
+
+ reply.nChildren = numChildren;
+@@ -1038,6 +1405,16 @@
+ info.kind= SelectionSetOwner;
+ CallCallbacks(&SelectionCallback, &info);
+ }
++
++#ifdef NXAGENT_CLIPBOARD
++ if ((CurrentSelections[i].pWin != NULL) &&
++ (nxagentOption(Clipboard) != ClipboardNone) &&
++ ((CurrentSelections[i].selection == XA_PRIMARY) ||
++ (CurrentSelections[i].selection == MakeAtom("CLIPBOARD", 9, 0))))
++ {
++ nxagentSetSelectionOwner(&CurrentSelections[i]);
++ }
++#endif
+ return (client->noClientException);
+ }
+ else
+@@ -1092,6 +1469,27 @@
+ if (!pWin)
+ return(BadWindow);
+
++#ifdef NXAGENT_CLIPBOARD
++ if (((stuff->selection == XA_PRIMARY) ||
++ (stuff->selection == MakeAtom("CLIPBOARD", 9, 0))) &&
++ nxagentOption(Clipboard) != ClipboardNone)
++ {
++ int i = 0;
++
++ while ((i < NumCurrentSelections) &&
++ CurrentSelections[i].selection != stuff->selection) i++;
++
++ if ((i < NumCurrentSelections) && (CurrentSelections[i].window != None))
++ {
++ if (nxagentConvertSelection(client, pWin, stuff->selection, stuff->requestor,
++ stuff->property, stuff->target, stuff->time))
++ {
++ return (client->noClientException);
++ }
++ }
++ }
++#endif
++
+ paramsOkay = (ValidAtom(stuff->selection) && ValidAtom(stuff->target));
+ if (stuff->property != None)
+ paramsOkay &= ValidAtom(stuff->property);
+@@ -1103,7 +1501,7 @@
+ while ((i < NumCurrentSelections) &&
+ CurrentSelections[i].selection != stuff->selection) i++;
+ if ((i < NumCurrentSelections) &&
+- (CurrentSelections[i].window != None)
++ (CurrentSelections[i].window != None) && (CurrentSelections[i].client != NullClient)
+ #ifdef XCSECURITY
+ && (!client->CheckAccess ||
+ (* client->CheckAccess)(client, CurrentSelections[i].window,
+@@ -1286,11 +1684,26 @@
+ ProcOpenFont(register ClientPtr client)
+ {
+ int err;
++ char fontReq[256];
+ REQUEST(xOpenFontReq);
+
+ REQUEST_FIXED_SIZE(xOpenFontReq, stuff->nbytes);
+ client->errorValue = stuff->fid;
+ LEGAL_NEW_RESOURCE(stuff->fid, client);
++
++ memcpy(fontReq,(char *)&stuff[1],(stuff->nbytes<256)?stuff->nbytes:255);
++ fontReq[stuff->nbytes]=0;
++ if (strchr(fontReq,'*') || strchr(fontReq,'?'))
++ {
++ extern int nxOpenFont(ClientPtr, XID, Mask, unsigned, char*);
++#ifdef NXAGENT_FONTMATCH_DEBUG
++ fprintf(stderr, "Dispatch: ProcOpenFont try to find a common font with font pattern=%s\n",fontReq);
++#endif
++ nxagentListRemoteFonts(fontReq, nxagentMaxFontNames);
++ err = nxOpenFont(client, stuff->fid, (Mask) 0,
++ stuff->nbytes, (char *)&stuff[1]);
++ }
++ else
+ err = OpenFont(client, stuff->fid, (Mask) 0,
+ stuff->nbytes, (char *)&stuff[1]);
+ if (err == Success)
+@@ -1310,8 +1723,43 @@
+ REQUEST_SIZE_MATCH(xResourceReq);
+ pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT,
+ SecurityDestroyAccess);
+- if ( pFont != (FontPtr)NULL) /* id was valid */
++ if (pFont != (FontPtr)NULL)
+ {
++ #ifdef NXAGENT_SERVER
++
++ /*
++ * When a client closes a font the resource
++ * should not be lost if the reference counter
++ * is not 0, otherwise the server will not be
++ * able to find this font looping through the
++ * resources.
++ */
++
++ if (pFont -> refcnt > 0)
++ {
++ if (nxagentFindClientResource(serverClient -> index, RT_NX_FONT, pFont) == 0)
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcCloseFont: Switching resource for font at [%p].\n",
++ (void *) pFont);
++ #endif
++
++ nxagentFontPriv(pFont) -> mirrorID = FakeClientID(serverClient -> index);
++
++ AddResource(nxagentFontPriv(pFont) -> mirrorID, RT_NX_FONT, pFont);
++
++ }
++ #ifdef TEST
++ else
++ {
++ fprintf(stderr, "ProcCloseFont: Found duplicated font at [%p], "
++ "resource switching skipped.\n", (void *) pFont);
++ }
++ #endif
++ }
++
++ #endif
++
+ FreeResource(stuff->id, RT_NONE);
+ return(client->noClientException);
+ }
+@@ -1332,6 +1780,8 @@
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ client->errorValue = stuff->id; /* EITHER font or gc */
++
++ pFont = NULL;
+ pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT,
+ SecurityReadAccess);
+ if (!pFont)
+@@ -1347,6 +1797,33 @@
+ pFont = pGC->font;
+ }
+
++/* test
++{
++ Atom name_atom, value_atom;
++ int nprops;
++ FontPropPtr props;
++ int i;
++ char *name;
++
++ name_atom = MakeAtom("FONT", 4, True);
++ value_atom = 0L;
++
++ nprops = pFont->info.nprops;
++ props = pFont->info.props;
++
++ for (i = 0; i < nprops; i++)
++ if (props[i].name == name_atom) {
++ value_atom = props[i].value;
++ break;
++ }
++
++ if (!value_atom) return (BadFont);
++
++ name = (char *)NameForAtom(value_atom);
++ fprintf(stderr, "QueryFont: font name [%s]\n",name);
++}
++ end test */
++
+ {
+ xCharInfo *pmax = FONTINKMAX(pFont);
+ xCharInfo *pmin = FONTINKMIN(pFont);
+@@ -1364,6 +1841,7 @@
+ rlength = sizeof(xQueryFontReply) +
+ FONTINFONPROPS(FONTCHARSET(pFont)) * sizeof(xFontProp) +
+ nprotoxcistructs * sizeof(xCharInfo);
++ reply = NULL;
+ reply = (xQueryFontReply *)ALLOCATE_LOCAL(rlength);
+ if(!reply)
+ {
+@@ -1434,10 +1912,18 @@
+ int
+ ProcListFonts(register ClientPtr client)
+ {
++ char tmp[256];
++
+ REQUEST(xListFontsReq);
+
+ REQUEST_FIXED_SIZE(xListFontsReq, stuff->nbytes);
++ memcpy(tmp,(unsigned char *) &stuff[1],(stuff->nbytes<256)?stuff->nbytes:255);
++ tmp[stuff->nbytes]=0;
+
++#ifdef NXAGENT_FONTMATCH_DEBUG
++ fprintf(stderr, "Dispatch: ListFont request with pattern %s max_names=%d\n",tmp,stuff->maxNames);
++#endif
++ nxagentListRemoteFonts(tmp, stuff -> maxNames < nxagentMaxFontNames ? nxagentMaxFontNames : stuff->maxNames);
+ return ListFonts(client, (unsigned char *) &stuff[1], stuff->nbytes,
+ stuff->maxNames);
+ }
+@@ -1445,10 +1931,18 @@
+ int
+ ProcListFontsWithInfo(register ClientPtr client)
+ {
++ char tmp[256];
+ REQUEST(xListFontsWithInfoReq);
+
+ REQUEST_FIXED_SIZE(xListFontsWithInfoReq, stuff->nbytes);
+
++ memcpy(tmp,(unsigned char *) &stuff[1],(stuff->nbytes<256)?stuff->nbytes:255);
++ tmp[stuff->nbytes]=0;
++#ifdef NXAGENT_FONTMATCH_DEBUG
++ fprintf(stderr, "Dispatch: ListFont with info request with pattern %s max_names=%d\n",tmp,stuff->maxNames);
++#endif
++ nxagentListRemoteFonts(tmp, stuff -> maxNames < nxagentMaxFontNames ? nxagentMaxFontNames :stuff->maxNames);
++
+ return StartListFontsWithInfo(client, stuff->nbytes,
+ (unsigned char *) &stuff[1], stuff->maxNames);
+ }
+@@ -1535,6 +2029,40 @@
+ SecurityDestroyAccess);
+ if (pMap)
+ {
++ #ifdef NXAGENT_SERVER
++
++ /*
++ * When a client releases a pixmap the resource
++ * should not be lost if the reference counter
++ * is not 0, otherwise the server will not be
++ * able to find this pixmap looping through the
++ * resources.
++ */
++
++ if (pMap -> refcnt > 0)
++ {
++ if (nxagentFindClientResource(serverClient -> index, RT_NX_PIXMAP, pMap) == 0)
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcFreePixmap: Switching resource for pixmap at [%p].\n",
++ (void *) pMap);
++ #endif
++
++ nxagentPixmapPriv(pMap) -> mid = FakeClientID(serverClient -> index);
++
++ AddResource(nxagentPixmapPriv(pMap) -> mid, RT_NX_PIXMAP, pMap);
++ }
++ #ifdef TEST
++ else
++ {
++ fprintf(stderr, "ProcFreePixmap: Found duplicated pixmap at [%p], "
++ "resource switching skipped.\n", (void *) pMap);
++ }
++ #endif
++ }
++
++ #endif
++
+ FreeResource(stuff->id, RT_NONE);
+ return(client->noClientException);
+ }
+@@ -1819,8 +2347,10 @@
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
+ npoint = ((client->req_len << 2) - sizeof(xPolyPointReq)) >> 2;
+ if (npoint)
++ {
+ (*pGC->ops->PolyPoint)(pDraw, pGC, stuff->coordMode, npoint,
+ (xPoint *) &stuff[1]);
++ }
+ return (client->noClientException);
+ }
+
+@@ -1842,8 +2372,10 @@
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
+ npoint = ((client->req_len << 2) - sizeof(xPolyLineReq)) >> 2;
+ if (npoint > 1)
++ {
+ (*pGC->ops->Polylines)(pDraw, pGC, stuff->coordMode, npoint,
+ (DDXPointPtr) &stuff[1]);
++ }
+ return(client->noClientException);
+ }
+
+@@ -1862,7 +2394,9 @@
+ return(BadLength);
+ nsegs >>= 3;
+ if (nsegs)
++ {
+ (*pGC->ops->PolySegment)(pDraw, pGC, nsegs, (xSegment *) &stuff[1]);
++ }
+ return (client->noClientException);
+ }
+
+@@ -1881,8 +2415,10 @@
+ return(BadLength);
+ nrects >>= 3;
+ if (nrects)
++ {
+ (*pGC->ops->PolyRectangle)(pDraw, pGC,
+ nrects, (xRectangle *) &stuff[1]);
++ }
+ return(client->noClientException);
+ }
+
+@@ -1901,7 +2437,9 @@
+ return(BadLength);
+ narcs /= sizeof(xArc);
+ if (narcs)
++ {
+ (*pGC->ops->PolyArc)(pDraw, pGC, narcs, (xArc *) &stuff[1]);
++ }
+ return (client->noClientException);
+ }
+
+@@ -1930,9 +2468,11 @@
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
+ things = ((client->req_len << 2) - sizeof(xFillPolyReq)) >> 2;
+ if (things)
++ {
+ (*pGC->ops->FillPolygon) (pDraw, pGC, stuff->shape,
+ stuff->coordMode, things,
+ (DDXPointPtr) &stuff[1]);
++ }
+ return(client->noClientException);
+ }
+
+@@ -1952,8 +2492,10 @@
+ things >>= 3;
+
+ if (things)
++ {
+ (*pGC->ops->PolyFillRect) (pDraw, pGC, things,
+ (xRectangle *) &stuff[1]);
++ }
+ return (client->noClientException);
+ }
+
+@@ -1972,7 +2514,9 @@
+ return(BadLength);
+ narcs /= sizeof(xArc);
+ if (narcs)
++ {
+ (*pGC->ops->PolyFillArc) (pDraw, pGC, narcs, (xArc *) &stuff[1]);
++ }
+ return (client->noClientException);
+ }
+
+@@ -3127,7 +3671,14 @@
+ stuff->backRed, stuff->backGreen, stuff->backBlue);
+
+ if (pCursor && AddResource(stuff->cid, RT_CURSOR, (pointer)pCursor))
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcCreateCursor: Created cursor at [%p].\n", (void *) pCursor);
++ #endif
++
+ return (client->noClientException);
++ }
++
+ return BadAlloc;
+ }
+
+@@ -3243,25 +3794,68 @@
+ return BadValue;
+ }
+
+- if (blankingOption == DefaultBlanking)
++ /*
++ * The NX agent uses the screen saver procedure
++ * to monitor the user activities and launch its
++ * handlers (like timeout feature), so we can't
++ * always allow the clients to change our values.
++ */
++
++ #ifdef TEST
++ fprintf(stderr, "ProcSetScreenSaver: Called with timeout [%d] interval [%d] Blanking [%d] Exposure [%d].\n",
++ stuff -> timeout, stuff -> interval, blankingOption, exposureOption);
++ #endif
++
++ if (nxagentOption(Timeout) == 0)
++ {
++ if (blankingOption == DefaultBlanking)
++ {
+ ScreenSaverBlanking = defaultScreenSaverBlanking;
+- else
++ }
++ else
++ {
+ ScreenSaverBlanking = blankingOption;
+- if (exposureOption == DefaultExposures)
++ }
++
++ if (exposureOption == DefaultExposures)
++ {
+ ScreenSaverAllowExposures = defaultScreenSaverAllowExposures;
+- else
+- ScreenSaverAllowExposures = exposureOption;
++ }
++ else
++ {
++ ScreenSaverAllowExposures = exposureOption;
++ }
++
++ if (stuff->timeout >= 0)
++ {
++ ScreenSaverTime = stuff->timeout * MILLI_PER_SECOND;
++ }
++ else
++ {
++ ScreenSaverTime = defaultScreenSaverTime;
++ }
++
++ if (stuff->interval >= 0)
++ {
++ ScreenSaverInterval = stuff->interval * MILLI_PER_SECOND;
++ }
++ else
++ {
++ ScreenSaverInterval = defaultScreenSaverInterval;
++ }
++
++ SetScreenSaverTimer();
++ }
++ #ifdef TEST
+
+- if (stuff->timeout >= 0)
+- ScreenSaverTime = stuff->timeout * MILLI_PER_SECOND;
+- else
+- ScreenSaverTime = defaultScreenSaverTime;
+- if (stuff->interval >= 0)
+- ScreenSaverInterval = stuff->interval * MILLI_PER_SECOND;
+ else
+- ScreenSaverInterval = defaultScreenSaverInterval;
++ {
++ fprintf(stderr, "ProcSetScreenSaver: Keeping auto-disconnect timeout set to [%d] seconds.\n",
++ nxagentOption(Timeout));
++ }
++
++ #endif
+
+- SetScreenSaverTimer();
+ return (client->noClientException);
+ }
+
+@@ -3481,7 +4075,30 @@
+ client->errorValue = stuff->mode;
+ return BadValue;
+ }
+- SaveScreens(SCREEN_SAVER_FORCER, (int)stuff->mode);
++
++ /*
++ * The NX agent uses the screen saver procedure
++ * to monitor the user activities and launch its
++ * handlers (like timeout feature), so we can't
++ * always allow the clients to force the screen
++ * saver handler execution.
++ */
++
++ if (nxagentOption(Timeout) == 0)
++ {
++ SaveScreens(SCREEN_SAVER_FORCER, (int)stuff->mode);
++ }
++
++ #ifdef TEST
++
++ else
++ {
++ fprintf(stderr, "ProcForceScreenSaver: Ignoring the client request with mode [%d].\n",
++ stuff -> mode);
++ }
++
++ #endif
++
+ return client->noClientException;
+ }
+
+@@ -3525,14 +4142,34 @@
+ * then killed again, the client is really destroyed.
+ *********************/
+
+-char dispatchExceptionAtReset = DE_RESET;
+-
+ void
+ CloseDownClient(register ClientPtr client)
+ {
+ Bool really_close_down = client->clientGone ||
+ client->closeDownMode == DestroyAll;
+
++ /*
++ * There must be a better way to hook a
++ * call-back function to be called any
++ * time a client is going to be closed.
++ */
++
++ nxagentClearClipboard(client, NULL);
++
++ /*
++ * Need to reset the karma counter and
++ * get rid of the pending sync replies.
++ */
++
++ nxagentWakeupByReset(client);
++
++ /*
++ * Check if the client
++ * is a shadow nxagent.
++ */
++
++ nxagentCheckIfShadowAgent(client);
++
+ if (!client->clientGone)
+ {
+ /* ungrab server if grabbing client dies */
+@@ -3673,7 +4310,7 @@
+ client->numSaved = 0;
+ client->saveSet = (SaveSetElt *)NULL;
+ client->noClientException = Success;
+-#ifdef DEBUG
++#ifdef LOG_DEBUG
+ client->requestLogIndex = 0;
+ #endif
+ client->requestVector = InitialVector;
+@@ -3746,6 +4383,13 @@
+ else
+ ppriv->ptr = (pointer)NULL;
+ }
++
++ /*
++ * Initialize the private members.
++ */
++
++ nxagentInitClientPrivates(client);
++
+ return 1;
+ }
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdixfonts.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdixfonts.c.X.original
new file mode 100644
index 000000000..f491948f0
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXdixfonts.c.X.original
@@ -0,0 +1,892 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXdixfonts.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXdixfonts.c 2015-02-13 14:03:44.744441510 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XdotOrg: xc/programs/Xserver/dix/dixfonts.c,v 1.8 2005/07/03 08:53:38 daniels Exp $ */
+ /* $XFree86: xc/programs/Xserver/dix/dixfonts.c,v 3.28 2003/11/08 02:02:03 dawes Exp $ */
+ /************************************************************************
+@@ -68,12 +85,84 @@
+ #include "dixfontstr.h"
+ #include "closestr.h"
+
++/*
++#define NXAGENT_DEBUG
++*/
++
+ #ifdef DEBUG
+ #include <stdio.h>
+ #endif
+
++#include "Agent.h"
++#include "Font.h"
++
++#ifndef NX_TRANS_SOCKET
++
++#define NX_TRANS_SOCKET
++
++#endif
++
++#ifdef NX_TRANS_SOCKET
++
++char _NXFontPath[1024];
++
++/*
++ * Override the default font path and make
++ * it configurable at run time, based on
++ * the NX_FONT environment.
++ */
++
++static const char *_NXGetFontPath(const char *path)
++{
++ const char *fontEnv;
++
++ /*
++ * Check the environment only once.
++ */
++
++ if (*_NXFontPath != '\0')
++ {
++ return _NXFontPath;
++ }
++
++ fontEnv = getenv("NX_FONT");
++
++ if (fontEnv != NULL && *fontEnv != '\0')
++ {
++ if (strlen(fontEnv) + 1 > 1024)
++ {
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetFontPath: WARNING! Maximum length of font path exceeded.\n");
++#endif
++ goto _NXGetFontPathError;
++ }
++
++ strcpy(_NXFontPath, fontEnv);
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetFontPath: Using NX font path [%s].\n", _NXFontPath);
++#endif
++
++ return _NXFontPath;
++ }
++
++_NXGetFontPathError:
++
++ strncpy(_NXFontPath, path, 1023);
++ _NXFontPath[1023] = '\0';
++
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetFontPath: Using default font path [%s].\n", _NXFontPath);
++#endif
++
++ return _NXFontPath;
++}
++
++#endif
++
+ #ifdef PANORAMIX
+-#include "panoramiX.h"
++#include "../../Xext/panoramiX.h"
++#include "../../Xext/panoramiXsrv.h"
+ #endif
+
+ #ifdef LBX
+@@ -245,6 +334,9 @@
+ *newname;
+ int newlen;
+ int aliascount = 20;
++ char nxagentOrigFontName[256];
++ int nxagentOrigFontNameLen;
++
+ /*
+ * Decide at runtime what FontFormat to use.
+ */
+@@ -276,6 +368,13 @@
+
+ BitmapFormatScanlineUnit8;
+
++
++ nxagentOrigFontNameLen = (c -> origFontNameLen < 256) ? c -> origFontNameLen : 255;
++
++ memcpy(nxagentOrigFontName, c -> origFontName, nxagentOrigFontNameLen);
++
++ nxagentOrigFontName[nxagentOrigFontNameLen] = 0;
++
+ if (client->clientGone)
+ {
+ if (c->current_fpe < c->num_fpes)
+@@ -324,6 +423,9 @@
+ if (!c->slept) {
+ c->slept = TRUE;
+ ClientSleep(client, (ClientSleepProcPtr)doOpenFont, (pointer) c);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doOpenFont: client [%lx] sleeping.\n", client);
++#endif
+ }
+ return TRUE;
+ }
+@@ -352,10 +454,15 @@
+ pScr = screenInfo.screens[i];
+ if (pScr->RealizeFont)
+ {
+- if (!(*pScr->RealizeFont) (pScr, pfont))
++
++ /* NXAGENT uses useless screen pointer to pass the original font name
++ * to realizeFont, could be a source of problems in the future.
++ */
++
++ if (!(*pScr->RealizeFont) ((ScreenPtr)nxagentOrigFontName, pfont))
+ {
+ CloseFont (pfont, (Font) 0);
+- err = AllocError;
++ err=BadFontName;
+ goto bail;
+ }
+ }
+@@ -365,8 +472,19 @@
+ err = AllocError;
+ goto bail;
+ }
++ if( nxagentFontPriv(pfont) -> mirrorID == 0 )
++ {
++ extern RESTYPE RT_NX_FONT;
++
++ nxagentFontPriv(pfont) -> mirrorID = FakeClientID(0);
++ if (!AddResource(nxagentFontPriv(pfont) -> mirrorID, RT_NX_FONT, (pointer) pfont)) {
++ FreeResource(c->fontid, RT_NONE);
++ err = AllocError;
++ goto bail;
++ }
++ }
+ if (patternCache && pfont != c->non_cachable_font)
+- CacheFontPattern(patternCache, c->origFontName, c->origFontNameLen,
++ CacheFontPattern(patternCache, nxagentOrigFontName, nxagentOrigFontNameLen,
+ pfont);
+ bail:
+ if (err != Successful && c->client != serverClient) {
+@@ -374,7 +492,12 @@
+ c->fontid, FontToXError(err));
+ }
+ if (c->slept)
++ {
+ ClientWakeup(c->client);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doOpenFont: client [%lx] wakeup.\n", client);
++#endif
++ }
+ for (i = 0; i < c->num_fpes; i++) {
+ FreeFPE(c->fpe_list[i]);
+ }
+@@ -502,7 +625,10 @@
+ LbxFreeFontTag(pfont);
+ #endif
+ #ifdef XF86BIGFONT
+- XF86BigfontFreeFontShm(pfont);
++ {
++ extern void XF86BigfontFreeFontShm(FontPtr);
++ XF86BigfontFreeFontShm(pfont);
++ }
+ #endif
+ fpe = pfont->fpe;
+ (*fpe_functions[fpe->type].close_font) (fpe, pfont);
+@@ -631,6 +757,9 @@
+ ClientSleep(client,
+ (ClientSleepProcPtr)doListFontsAndAliases,
+ (pointer) c);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doListFont (1): client [%lx] sleeping.\n", client);
++#endif
+ }
+ return TRUE;
+ }
+@@ -677,6 +806,12 @@
+ (ClientSleepProcPtr)doListFontsAndAliases,
+ (pointer) c);
+ c->slept = TRUE;
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doListFont (2): client [%lx] sleeping.\n", client);
++#endif
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doListFont (3): client [%lx] sleeping.\n", client);
++#endif
+ }
+ return TRUE;
+ }
+@@ -813,6 +948,24 @@
+ reply.nFonts--;
+ else
+ {
++ {
++ /* dirty hack: don't list to client fonts not existing on the remote side */
++ char tmp[256];
++
++ memcpy(tmp, names->names[i], names->length[i]);
++ tmp[ names->length[i] ] = 0;
++
++ if (nxagentFontLookUp(tmp) == 0)
++ {
++#ifdef NXAGENT_FONTMATCH_DEBUG
++ fprintf(stderr, "doListFontsAndAliases:\n");
++ fprintf(stderr, " removing font: %s \n", tmp);
++#endif
++ reply.nFonts--;
++ stringLens -= names->length[i];
++ continue;
++ }
++ }
+ *bufptr++ = names->length[i];
+ memmove( bufptr, names->names[i], names->length[i]);
+ bufptr += names->length[i];
+@@ -827,7 +980,12 @@
+
+ bail:
+ if (c->slept)
++ {
+ ClientWakeup(client);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doListFont: client [%lx] wakeup.\n", client);
++#endif
++ }
+ for (i = 0; i < c->num_fpes; i++)
+ FreeFPE(c->fpe_list[i]);
+ xfree(c->fpe_list);
+@@ -862,7 +1020,7 @@
+ xfree(c);
+ return BadAlloc;
+ }
+- c->names = MakeFontNamesRecord(max_names < 100 ? max_names : 100);
++ c->names = MakeFontNamesRecord(max_names < nxagentMaxFontNames ? max_names : nxagentMaxFontNames);
+ if (!c->names)
+ {
+ xfree(c->fpe_list);
+@@ -933,6 +1091,9 @@
+ {
+ ClientSleep(client, (ClientSleepProcPtr)doListFontsWithInfo, c);
+ c->slept = TRUE;
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doListFontWinfo (1): client [%lx] sleeping.\n", client);
++#endif
+ }
+ return TRUE;
+ }
+@@ -954,6 +1115,9 @@
+ (ClientSleepProcPtr)doListFontsWithInfo,
+ c);
+ c->slept = TRUE;
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doListFontWinfo (2): client [%lx] sleeping.\n", client);
++#endif
+ }
+ return TRUE;
+ }
+@@ -1035,6 +1199,23 @@
+ }
+ else if (err == Successful)
+ {
++
++ if (c->haveSaved)
++ {
++ numFonts = c->savedNumFonts;
++ name = c->savedName;
++ namelen = strlen(name);
++ }
++
++ if (nxagentFontLookUp(name) == 0)
++ {
++#ifdef NXAGENT_FONTMATCH_DEBUG
++ fprintf(stderr, "doListFontsAndAliases (with info):\n");
++ fprintf(stderr, " removing font: %s \n", name);
++#endif
++ continue;
++ }
++
+ length = sizeof(*reply) + pFontInfo->nprops * sizeof(xFontProp);
+ reply = c->reply;
+ if (c->length < length)
+@@ -1048,12 +1229,6 @@
+ c->reply = reply;
+ c->length = length;
+ }
+- if (c->haveSaved)
+- {
+- numFonts = c->savedNumFonts;
+- name = c->savedName;
+- namelen = strlen(name);
+- }
+ reply->type = X_Reply;
+ reply->length = (sizeof *reply - sizeof(xGenericReply) +
+ pFontInfo->nprops * sizeof(xFontProp) +
+@@ -1100,7 +1275,12 @@
+ WriteSwappedDataToClient(client, length, &finalReply);
+ bail:
+ if (c->slept)
++ {
+ ClientWakeup(client);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doListFontWinfo: client [%lx] wakeup.\n", client);
++#endif
++ }
+ for (i = 0; i < c->num_fpes; i++)
+ FreeFPE(c->fpe_list[i]);
+ xfree(c->reply);
+@@ -1347,6 +1527,11 @@
+ err = BadAlloc;
+ goto bail;
+ }
++
++ pGC->tileIsPixel = TRUE;
++ pGC->tile.pixel = 0;
++ pGC->stipple = NullPixmap;
++
+ if ((err = CopyGC(c->pGC, pGC, GCFunction |
+ GCPlaneMask | GCForeground |
+ GCBackground | GCFillStyle |
+@@ -1371,6 +1556,9 @@
+ ClientSleep(client,
+ (ClientSleepProcPtr)doPolyText,
+ (pointer) c);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doPolyText (1): client [%lx] sleeping.\n", client);
++#endif
+
+ /* Set up to perform steps 3 and 4 */
+ client_state = START_SLEEP;
+@@ -1419,6 +1607,9 @@
+ if (c->slept)
+ {
+ ClientWakeup(c->client);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doPolytext: client [%lx] wakeup.\n", client);
++#endif
+ ChangeGC(c->pGC, clearGCmask, clearGC);
+
+ /* Unreference the font from the scratch GC */
+@@ -1535,6 +1726,11 @@
+ err = BadAlloc;
+ goto bail;
+ }
++
++ pGC->tileIsPixel = TRUE;
++ pGC->tile.pixel = 0;
++ pGC->stipple = NullPixmap;
++
+ if ((err = CopyGC(c->pGC, pGC, GCFunction | GCPlaneMask |
+ GCForeground | GCBackground | GCFillStyle |
+ GCTile | GCStipple | GCTileStipXOrigin |
+@@ -1553,6 +1749,10 @@
+
+ c->slept = TRUE;
+ ClientSleep(client, (ClientSleepProcPtr)doImageText, (pointer) c);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doImageText (1): client [%lx] sleeping.\n", client);
++#endif
++
+ }
+ return TRUE;
+ }
+@@ -1575,6 +1775,9 @@
+ if (c->slept)
+ {
+ ClientWakeup(c->client);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: doImageText: client [%lx] wakeup.\n", client);
++#endif
+ ChangeGC(c->pGC, clearGCmask, clearGC);
+
+ /* Unreference the font from the scratch GC */
+@@ -1751,11 +1954,13 @@
+ err = (*fpe_functions[fpe->type].init_fpe) (fpe);
+ if (err != Successful)
+ {
++ #ifndef NXAGENT_SERVER
+ if (persist)
+ {
+ ErrorF("Could not init font path element %s, removing from list!\n",
+ fpe->name);
+ }
++ #endif
+ xfree (fpe->name);
+ xfree (fpe);
+ }
+@@ -1817,11 +2022,19 @@
+ bad;
+
+ /* get enough for string, plus values -- use up commas */
++#ifdef NX_TRANS_SOCKET
++ len = strlen(_NXGetFontPath(path)) + 1;
++#else
+ len = strlen(path) + 1;
++#endif
+ nump = cp = newpath = (unsigned char *) ALLOCATE_LOCAL(len);
+ if (!newpath)
+ return BadAlloc;
++#ifdef NX_TRANS_SOCKET
++ pp = (unsigned char *) _NXGetFontPath(path);
++#else
+ pp = (unsigned char *) path;
++#endif
+ cp++;
+ while (*pp) {
+ if (*pp == ',') {
+@@ -2148,3 +2361,445 @@
+ }
+
+ #endif
++
++
++typedef struct
++{
++ LFclosurePtr c;
++ OFclosurePtr oc;
++} nxFs,*nxFsPtr;
++
++static Bool
++#if NeedFunctionPrototypes
++nxdoListFontsAndAliases(ClientPtr client, nxFsPtr fss)
++#else
++nxdoListFontsAndAliases(client, fss)
++ ClientPtr client;
++ nxFsPtr fss;
++#endif
++{
++ LFclosurePtr c=fss->c;
++ OFclosurePtr oc=fss->oc;
++ FontPathElementPtr fpe;
++ int err = Successful;
++ char *name, *resolved=NULL;
++ int namelen, resolvedlen;
++ int i;
++ int aliascount = 0;
++ char tmp[256];
++ tmp[0]=0;
++ if (client->clientGone)
++ {
++ if (c->current.current_fpe < c->num_fpes)
++ {
++ fpe = c->fpe_list[c->current.current_fpe];
++ (*fpe_functions[fpe->type].client_died) ((pointer) client, fpe);
++ }
++ err = Successful;
++ goto bail;
++ }
++
++ if (!c->current.patlen)
++ goto finish;
++
++ while (c->current.current_fpe < c->num_fpes) {
++ fpe = c->fpe_list[c->current.current_fpe];
++ err = Successful;
++
++ if (!fpe_functions[fpe->type].start_list_fonts_and_aliases)
++ {
++ /* This FPE doesn't support/require list_fonts_and_aliases */
++
++ err = (*fpe_functions[fpe->type].list_fonts)
++ ((pointer) c->client, fpe, c->current.pattern,
++ c->current.patlen, c->current.max_names - c->names->nnames,
++ c->names);
++
++ if (err == Suspended) {
++ if (!c->slept) {
++ c->slept = TRUE;
++ ClientSleep(client,
++ (ClientSleepProcPtr)nxdoListFontsAndAliases,
++ (pointer) fss);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: nxdoListFont (1): client [%lx] sleeping.\n", client);
++#endif
++ }
++ return TRUE;
++ }
++
++ err = BadFontName;
++ }
++ else
++ {
++ /* Start of list_fonts_and_aliases functionality. Modeled
++ after list_fonts_with_info in that it resolves aliases,
++ except that the information collected from FPEs is just
++ names, not font info. Each list_next_font_or_alias()
++ returns either a name into name/namelen or an alias into
++ name/namelen and its target name into resolved/resolvedlen.
++ The code at this level then resolves the alias by polling
++ the FPEs. */
++
++ if (!c->current.list_started) {
++ err = (*fpe_functions[fpe->type].start_list_fonts_and_aliases)
++ ((pointer) c->client, fpe, c->current.pattern,
++ c->current.patlen, c->current.max_names - c->names->nnames,
++ &c->current.private);
++ if (err == Suspended) {
++ if (!c->slept) {
++ ClientSleep(client,
++ (ClientSleepProcPtr)nxdoListFontsAndAliases,
++ (pointer) fss);
++ c->slept = TRUE;
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: nxdoListFont (2): client [%lx] sleeping.\n", client);
++#endif
++ }
++ return TRUE;
++ }
++ if (err == Successful)
++ c->current.list_started = TRUE;
++ }
++ if (err == Successful) {
++ char *tmpname;
++ name = 0;
++ err = (*fpe_functions[fpe->type].list_next_font_or_alias)
++ ((pointer) c->client, fpe, &name, &namelen, &tmpname,
++ &resolvedlen, c->current.private);
++ if (err == Suspended) {
++ if (!c->slept) {
++ ClientSleep(client,
++ (ClientSleepProcPtr)nxdoListFontsAndAliases,
++ (pointer) fss);
++ c->slept = TRUE;
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: nxdoListFont (3): client [%lx] sleeping.\n", client);
++#endif
++ }
++ return TRUE;
++ }
++ if (err == FontNameAlias) {
++ if (resolved) xfree(resolved);
++ resolved = (char *) xalloc(resolvedlen + 1);
++ if (resolved)
++ {
++ memmove(resolved, tmpname, resolvedlen);
++ resolved[resolvedlen] = '\0';
++ }
++ }
++ }
++
++ if (err == Successful)
++ {
++ if (c->haveSaved)
++ {
++ if (c->savedName)
++ {
++ memcpy(tmp,c->savedName,c->savedNameLen>255?255:c->savedNameLen);
++ tmp[c->savedNameLen>255?256:c->savedNameLen]=0;
++ if (nxagentFontLookUp(tmp))
++ break;
++ else tmp[0]=0;
++ }
++ }
++ else
++ {
++ memcpy(tmp,name,namelen>255?255:namelen);
++ tmp[namelen>255?256:namelen]=0;
++ if (nxagentFontLookUp(tmp))
++ break;
++ else tmp[0]=0;
++ }
++ }
++
++ /*
++ * When we get an alias back, save our state and reset back to
++ * the start of the FPE looking for the specified name. As
++ * soon as a real font is found for the alias, pop back to the
++ * old state
++ */
++ else if (err == FontNameAlias) {
++ char tmp_pattern[XLFDMAXFONTNAMELEN];
++ /*
++ * when an alias recurses, we need to give
++ * the last FPE a chance to clean up; so we call
++ * it again, and assume that the error returned
++ * is BadFontName, indicating the alias resolution
++ * is complete.
++ */
++ memmove(tmp_pattern, resolved, resolvedlen);
++ if (c->haveSaved)
++ {
++ char *tmpname;
++ int tmpnamelen;
++
++ tmpname = 0;
++ (void) (*fpe_functions[fpe->type].list_next_font_or_alias)
++ ((pointer) c->client, fpe, &tmpname, &tmpnamelen,
++ &tmpname, &tmpnamelen, c->current.private);
++ if (--aliascount <= 0)
++ {
++ err = BadFontName;
++ goto ContBadFontName;
++ }
++ }
++ else
++ {
++ c->saved = c->current;
++ c->haveSaved = TRUE;
++ if (c->savedName)
++ xfree(c->savedName);
++ c->savedName = (char *)xalloc(namelen + 1);
++ if (c->savedName)
++ {
++ memmove(c->savedName, name, namelen);
++ c->savedName[namelen] = '\0';
++ }
++ c->savedNameLen = namelen;
++ aliascount = 20;
++ }
++ memmove(c->current.pattern, tmp_pattern, resolvedlen);
++ c->current.patlen = resolvedlen;
++ c->current.max_names = c->names->nnames + 1;
++ c->current.current_fpe = -1;
++ c->current.private = 0;
++ err = BadFontName;
++ }
++ }
++ /*
++ * At the end of this FPE, step to the next. If we've finished
++ * processing an alias, pop state back. If we've collected enough
++ * font names, quit.
++ */
++ if (err == BadFontName) {
++ ContBadFontName: ;
++ c->current.list_started = FALSE;
++ c->current.current_fpe++;
++ err = Successful;
++ if (c->haveSaved)
++ {
++ if (c->names->nnames == c->current.max_names ||
++ c->current.current_fpe == c->num_fpes) {
++ c->haveSaved = FALSE;
++ c->current = c->saved;
++ /* Give the saved namelist a chance to clean itself up */
++ continue;
++ }
++ }
++ if (c->names->nnames == c->current.max_names)
++ break;
++ }
++ }
++
++ /*
++ * send the reply
++ */
++bail:
++finish:
++ if (strlen(tmp))
++ {
++#ifdef NXAGENT_FONTMATCH_DEBUG
++ fprintf(stderr, "nxListFont changed (0) font to %s\n",tmp);
++#endif
++ memcpy(oc->fontname, tmp, strlen(tmp));
++ oc->fnamelen = strlen(tmp);
++
++ oc->origFontName = oc->fontname;
++ oc->origFontNameLen = oc->fnamelen;
++
++ }
++ else
++ {
++ for (i = 0; i < c->names->nnames; i++)
++ {
++ if (c->names->length[i] > 255)
++ continue;
++ else
++ {
++ memcpy(tmp, c->names->names[i], c->names->length[i]);
++ tmp[ c->names->length[i] ] = 0;
++ if (nxagentFontLookUp(tmp) == 0)
++ continue;
++ memcpy(oc->fontname, tmp, strlen(tmp));
++ oc->fnamelen = strlen(tmp);
++
++ oc->origFontName = oc->fontname;
++ oc->origFontNameLen = oc->fnamelen;
++
++#ifdef NXAGENT_FONTMATCH_DEBUG
++ fprintf(stderr, "nxListFont changed (1) font to %s\n",tmp);
++#endif
++ break;
++ }
++ }
++ }
++
++ if (c->slept)
++ {
++ ClientWakeup(client);
++#ifdef NXAGENT_DEBUG
++ fprintf(stderr, " NXdixfonts: nxdoListFont: client [%lx] wakeup.\n", client);
++#endif
++ }
++ for (i = 0; i < c->num_fpes; i++)
++ FreeFPE(c->fpe_list[i]);
++ xfree(c->fpe_list);
++ if (c->savedName) xfree(c->savedName);
++ FreeFontNames(c->names);
++ xfree(c);
++ xfree(fss);
++ if (resolved) xfree(resolved);
++
++ return doOpenFont(client, oc);
++}
++
++int
++nxOpenFont(client, fid, flags, lenfname, pfontname)
++ ClientPtr client;
++ XID fid;
++ Mask flags;
++ unsigned lenfname;
++ char *pfontname;
++{
++ nxFsPtr fss;
++ LFclosurePtr c;
++ OFclosurePtr oc;
++ int i;
++ FontPtr cached = (FontPtr)0;
++
++#ifdef FONTDEBUG
++ char *f;
++ f = (char *)xalloc(lenfname + 1);
++ memmove(f, pfontname, lenfname);
++ f[lenfname] = '\0';
++ ErrorF("OpenFont: fontname is \"%s\"\n", f);
++ xfree(f);
++#endif
++ if (!lenfname || lenfname > XLFDMAXFONTNAMELEN)
++ return BadName;
++ if (patternCache)
++ {
++
++ /*
++ ** Check name cache. If we find a cached version of this font that
++ ** is cachable, immediately satisfy the request with it. If we find
++ ** a cached version of this font that is non-cachable, we do not
++ ** satisfy the request with it. Instead, we pass the FontPtr to the
++ ** FPE's open_font code (the fontfile FPE in turn passes the
++ ** information to the rasterizer; the fserve FPE ignores it).
++ **
++ ** Presumably, the font is marked non-cachable because the FPE has
++ ** put some licensing restrictions on it. If the FPE, using
++ ** whatever logic it relies on, determines that it is willing to
++ ** share this existing font with the client, then it has the option
++ ** to return the FontPtr we passed it as the newly-opened font.
++ ** This allows the FPE to exercise its licensing logic without
++ ** having to create another instance of a font that already exists.
++ */
++
++ cached = FindCachedFontPattern(patternCache, pfontname, lenfname);
++ if (cached && cached->info.cachable)
++ {
++ if (!AddResource(fid, RT_FONT, (pointer) cached))
++ return BadAlloc;
++ cached->refcnt++;
++ return Success;
++ }
++ }
++ if (!(fss = (nxFsPtr) xalloc(sizeof(nxFs))))
++ return BadAlloc;
++
++ if (!(c = (LFclosurePtr) xalloc(sizeof *c)))
++ {
++ xfree(fss);
++ return BadAlloc;
++ }
++ c->fpe_list = (FontPathElementPtr *)
++ xalloc(sizeof(FontPathElementPtr) * num_fpes);
++ if (!c->fpe_list) {
++ xfree(c);
++ xfree(fss);
++ return BadAlloc;
++ }
++ c->names = MakeFontNamesRecord(100);
++ if (!c->names)
++ {
++ xfree(c->fpe_list);
++ xfree(c);
++ xfree(fss);
++ return BadAlloc;
++ }
++ memmove( c->current.pattern, pfontname, lenfname);
++ for (i = 0; i < num_fpes; i++) {
++ c->fpe_list[i] = font_path_elements[i];
++ UseFPE(c->fpe_list[i]);
++ }
++ c->client = client;
++ c->num_fpes = num_fpes;
++ c->current.patlen = lenfname;
++ c->current.current_fpe = 0;
++ c->current.max_names = nxagentMaxFontNames;
++ c->current.list_started = FALSE;
++ c->current.private = 0;
++ c->haveSaved = FALSE;
++ c->slept = FALSE;
++ c->savedName = 0;
++
++ oc = (OFclosurePtr) xalloc(sizeof(OFclosureRec));
++ if (!oc)
++ {
++ for (i = 0; i < c->num_fpes; i++)
++ FreeFPE(c->fpe_list[i]);
++ xfree(c->fpe_list);
++ xfree(c);
++ xfree(fss);
++ return BadAlloc;
++ }
++ oc->fontname = (char *) xalloc(256);/* I don't want to deal with future reallocs errors */
++ oc->origFontName = pfontname;
++ oc->origFontNameLen = lenfname;
++ if (!oc->fontname) {
++ for (i = 0; i < c->num_fpes; i++)
++ FreeFPE(c->fpe_list[i]);
++ xfree(c->fpe_list);
++ xfree(c);
++ xfree(oc);
++ xfree(fss);
++ return BadAlloc;
++ }
++ /*
++ * copy the current FPE list, so that if it gets changed by another client
++ * while we're blocking, the request still appears atomic
++ */
++ oc->fpe_list = (FontPathElementPtr *)
++ xalloc(sizeof(FontPathElementPtr) * num_fpes);
++ if (!oc->fpe_list) {
++ xfree(oc->fontname);
++ xfree(oc);
++ for (i = 0; i < c->num_fpes; i++)
++ FreeFPE(c->fpe_list[i]);
++ xfree(c->fpe_list);
++ xfree(c);
++ xfree(fss);
++ return BadAlloc;
++ }
++ memmove(oc->fontname, pfontname, lenfname);
++ for (i = 0; i < num_fpes; i++) {
++ oc->fpe_list[i] = font_path_elements[i];
++ UseFPE(oc->fpe_list[i]);
++ }
++ oc->client = client;
++ oc->fontid = fid;
++ oc->current_fpe = 0;
++ oc->num_fpes = num_fpes;
++ oc->fnamelen = lenfname;
++ oc->slept = FALSE;
++ oc->flags = flags;
++ oc->non_cachable_font = cached;
++ fss->c=c;
++ fss->oc=oc;
++ nxdoListFontsAndAliases(client, fss);
++ return Success;
++}
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXevents.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXevents.c.X.original
new file mode 100644
index 000000000..f2f9e37ee
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXevents.c.X.original
@@ -0,0 +1,648 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXevents.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXevents.c 2015-02-10 19:13:13.788686485 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XdotOrg: xc/programs/Xserver/dix/events.c,v 1.17 2005/08/25 22:11:04 anholt Exp $ */
+ /* $XFree86: xc/programs/Xserver/dix/events.c,v 3.51 2004/01/12 17:04:52 tsi Exp $ */
+ /************************************************************
+@@ -116,6 +133,7 @@
+ #endif
+
+ #include <X11/X.h>
++#include "Xlib.h"
+ #include "misc.h"
+ #include "resource.h"
+ #define NEED_EVENTS
+@@ -163,7 +181,22 @@
+
+ #include "dixevents.h"
+ #include "dixgrabs.h"
+-#include "dispatch.h"
++#include "../../dix/dispatch.h"
++
++#include "NXlib.h"
++
++#include "Events.h"
++#include "Windows.h"
++#include "Args.h"
++
++#ifdef NX_DEBUG_INPUT
++extern int nxagentDebugInput;
++extern int nxagentDebugInputDevices;
++#endif
++
++extern Display *nxagentDisplay;
++
++extern WindowPtr nxagentLastEnteredWindow;
+
+ #define EXTENSION_EVENT_BASE 64
+
+@@ -1322,6 +1355,51 @@
+ mouse->fromPassiveGrab = autoGrab;
+ PostNewCursor();
+ CheckGrabForSyncs(mouse,(Bool)grab->pointerMode, (Bool)grab->keyboardMode);
++
++ #ifdef NXAGENT_SERVER
++
++ /*
++ * If grab is synchronous, events are delivered to clients only if they send
++ * an AllowEvent request. If mode field in AllowEvent request is SyncPointer, the
++ * delivered event is saved in a queue and replayed later, when grab is released.
++ * We should export sync grab to X as async in order to avoid events to be
++ * queued twice, in the agent and in the X server. This solution have a drawback:
++ * replayed events are not delivered to that application that are not clients of
++ * the agent.
++ * A different solution could be to make the grab asynchronous in the agent and
++ * to export it as synchronous. But this seems to be less safe.
++ *
++ * To make internal grab asynchronous, change previous line as follows.
++ *
++ * if (nxagentOption(Rootless))
++ * {
++ * CheckGrabForSyncs(mouse, GrabModeAsync, (Bool)grab->keyboardMode);
++ * }
++ * else
++ * {
++ * CheckGrabForSyncs(mouse,(Bool)grab->pointerMode, (Bool)grab->keyboardMode);
++ * }
++ */
++
++ if (nxagentOption(Rootless) == 1)
++ {
++ /*
++ * FIXME: We should use the correct value
++ * for the cursor. Temporarily we set it
++ * to None.
++ */
++
++ int resource = nxagentWaitForResource(NXGetCollectGrabPointerResource,
++ nxagentCollectGrabPointerPredicate);
++
++ NXCollectGrabPointer(nxagentDisplay, resource, nxagentWindow(grab -> window),
++ 1, grab -> eventMask & PointerGrabMask,
++ GrabModeAsync, GrabModeAsync, (grab -> confineTo) ?
++ nxagentWindow(grab -> confineTo) : None,
++ None, CurrentTime);
++ }
++
++ #endif
+ }
+
+ void
+@@ -1346,6 +1424,22 @@
+ if (grab->cursor)
+ FreeCursor(grab->cursor, (Cursor)0);
+ ComputeFreezes();
++
++ #ifdef NXAGENT_SERVER
++
++ if (nxagentOption(Rootless) == 1)
++ {
++ XUngrabPointer(nxagentDisplay, CurrentTime);
++
++ if (sprite.win == ROOT)
++ {
++ mouse -> button -> state &=
++ ~(Button1Mask | Button2Mask | Button3Mask |
++ Button4Mask | Button5Mask);
++ }
++ }
++
++ #endif
+ }
+
+ void
+@@ -1546,6 +1640,17 @@
+ client->errorValue = stuff->mode;
+ return BadValue;
+ }
++
++ /*
++ * This is not necessary if we export grab to X as asynchronous.
++ *
++ * if (nxagentOption(Rootless) && stuff -> mode != ReplayKeyboard &&
++ * stuff -> mode != SyncKeyboard && stuff -> mode != AsyncKeyboard)
++ * {
++ * XAllowEvents(nxagentDisplay, stuff -> mode, CurrentTime);
++ * }
++ */
++
+ return Success;
+ }
+
+@@ -1582,11 +1687,28 @@
+ int i;
+ int type;
+
+-#ifdef DEBUG
++#ifdef NX_DEBUG_INPUT
++ if (grab && nxagentDebugInput && grab->window)
++ {
++ fprintf(stderr, "TryClientEvents: Grab window is [0x%x].\n",
++ (unsigned int)grab->window->drawable.id);
++ if (!SameClient(grab, client))
++ fprintf(stderr, "TryClientEvents: Events are going to be "
++ "discarded.\n");
++ }
++#endif
++#if defined(DEBUG) || defined(NX_DEBUG_INPUT)
++#ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInput == 1)
++ fprintf(stderr, "Event([%d, %d], mask=0x%x), client=%d",
++ pEvents->u.u.type, pEvents->u.u.detail, (unsigned int)mask,
++ client->index);
++#else
+ if (debug_events) ErrorF(
+ "Event([%d, %d], mask=0x%x), client=%d",
+ pEvents->u.u.type, pEvents->u.u.detail, mask, client->index);
+ #endif
++#endif
+ if ((client) && (client != serverClient) && (!client->clientGone) &&
+ ((filter == CantBeFiltered) || (mask & filter)))
+ {
+@@ -1600,10 +1722,17 @@
+ if (WID(inputInfo.pointer->valuator->motionHintWindow) ==
+ pEvents->u.keyButtonPointer.event)
+ {
+-#ifdef DEBUG
++#if defined(DEBUG) || defined(NX_DEBUG_INPUT)
++#ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr,"\nmotionHintWindow == keyButtonPointer.event\n");
++ }
++#else
+ if (debug_events) ErrorF("\n");
+ fprintf(stderr,"motionHintWindow == keyButtonPointer.event\n");
+ #endif
++#endif
+ return 1; /* don't send, but pretend we did */
+ }
+ pEvents->u.u.detail = NotifyHint;
+@@ -1640,16 +1769,26 @@
+ }
+
+ WriteEventsToClient(client, count, pEvents);
+-#ifdef DEBUG
++#if defined(DEBUG) || defined(NX_DEBUG_INPUT)
++#ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInput == 1)
++ fprintf(stderr, " delivered\n");
++#else
+ if (debug_events) ErrorF( " delivered\n");
+ #endif
++#endif
+ return 1;
+ }
+ else
+ {
+-#ifdef DEBUG
++#if defined(DEBUG) || defined(NX_DEBUG_INPUT)
++#ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInput == 1)
++ fprintf(stderr, "\n");
++#else
+ if (debug_events) ErrorF("\n");
+ #endif
++#endif
+ return 0;
+ }
+ }
+@@ -1727,6 +1866,12 @@
+ tempGrab.pointerMode = GrabModeAsync;
+ tempGrab.confineTo = NullWindow;
+ tempGrab.cursor = NullCursor;
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "DeliverEventsToWindow: Activating passive grab on pointer.\n");
++ }
++ #endif
+ (*inputInfo.pointer->ActivateGrab)(inputInfo.pointer, &tempGrab,
+ currentTime, TRUE);
+ }
+@@ -1999,7 +2144,26 @@
+ BoxRec box;
+
+ spriteTraceGood = 1; /* root window still there */
+- pWin = ROOT->firstChild;
++
++ if (nxagentOption(Rootless))
++ {
++ if (nxagentLastEnteredWindow == NULL)
++ {
++ return ROOT;
++ }
++
++ pWin = ROOT->lastChild;
++
++ while (pWin && pWin != ROOT->firstChild && pWin != nxagentLastEnteredWindow)
++ {
++ pWin = pWin->prevSib;
++ }
++ }
++ else
++ {
++ pWin = ROOT->firstChild;
++ }
++
+ while (pWin)
+ {
+ if ((pWin->mapped) &&
+@@ -2090,13 +2254,22 @@
+ ConfineToShape(sprite.hotShape, &sprite.hot.x, &sprite.hot.y);
+ #endif
+ sprite.hotPhys = sprite.hot;
+- if ((sprite.hotPhys.x != XE_KBPTR.rootX) ||
+- (sprite.hotPhys.y != XE_KBPTR.rootY))
+- {
+- (*sprite.hotPhys.pScreen->SetCursorPosition)(
+- sprite.hotPhys.pScreen,
+- sprite.hotPhys.x, sprite.hotPhys.y, FALSE);
+- }
++
++ /*
++ * This code force cursor position to be inside the
++ * root window of the agent. We can't view a reason
++ * to do this and it interacts in an undesirable way
++ * with toggling fullscreen.
++ *
++ * if ((sprite.hotPhys.x != XE_KBPTR.rootX) ||
++ * (sprite.hotPhys.y != XE_KBPTR.rootY))
++ * {
++ * (*sprite.hotPhys.pScreen->SetCursorPosition)(
++ * sprite.hotPhys.pScreen,
++ * sprite.hotPhys.x, sprite.hotPhys.y, FALSE);
++ * }
++ */
++
+ XE_KBPTR.rootX = sprite.hot.x;
+ XE_KBPTR.rootY = sprite.hot.y;
+ }
+@@ -2176,6 +2349,10 @@
+ DefineInitialRootWindow(register WindowPtr win)
+ {
+ register ScreenPtr pScreen = win->drawable.pScreen;
++ #ifdef VIEWPORT_FRAME
++ extern void nxagentInitViewportFrame(ScreenPtr, WindowPtr);
++ #endif
++ extern int nxagentShadowInit(ScreenPtr, WindowPtr);
+
+ sprite.hotPhys.pScreen = pScreen;
+ sprite.hotPhys.x = pScreen->width / 2;
+@@ -2215,6 +2392,18 @@
+ REGION_NULL(pScreen, &sprite.Reg2);
+ }
+ #endif
++
++ #ifdef VIEWPORT_FRAME
++ nxagentInitViewportFrame(pScreen, win);
++ #endif
++
++ if (nxagentOption(Shadow))
++ {
++ if (nxagentShadowInit(pScreen, win) == -1)
++ {
++ FatalError("Failed to connect to display '%s'", nxagentShadowDisplayName);
++ }
++ }
+ }
+
+ /*
+@@ -2553,6 +2742,13 @@
+ tempGrab.modifiersDetail.exact&(~0x1f00);
+ }
+ #endif
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "CheckPassiveGrabsOnWindow: Activating passive grab on %s.\n",
++ device == inputInfo.keyboard ? "keyboard" : "pointer");
++ }
++ #endif
+ (*device->ActivateGrab)(device, grab, currentTime, TRUE);
+
+ FixUpEventFromWindow(xE, grab->window, None, TRUE);
+@@ -2911,7 +3107,17 @@
+ else
+ DeliverFocusedEvent(keybd, xE, sprite.win, count);
+ if (deactivateGrab)
++ #ifdef NX_DEBUG_INPUT
++ {
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcessKeyboardEvent: Deactivating grab on keyboard.\n");
++ }
++ #endif
+ (*keybd->DeactivateGrab)(keybd);
++ #ifdef NX_DEBUG_INPUT
++ }
++ #endif
+ }
+
+ #ifdef XKB
+@@ -2961,7 +3167,9 @@
+ Bool deactivateGrab = FALSE;
+ register ButtonClassPtr butc = mouse->button;
+ #ifdef XKB
+- XkbSrvInfoPtr xkbi= inputInfo.keyboard->key->xkbInfo;
++ XkbSrvInfoPtr xkbi;
++
++ xkbi = inputInfo.keyboard->key->xkbInfo;
+ #endif
+ #ifdef XEVIE
+ if(xevieFlag && clients[xevieClientIndex] && !xeviegrabState &&
+@@ -2970,6 +3178,12 @@
+ xevieEventSent = 0;
+ else {
+ xeviemouse = mouse;
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: Going to send XEVIE event.\n");
++ }
++ #endif
+ WriteToClient(clients[xevieClientIndex], sizeof(xEvent), (char *)xE);
+ return;
+ }
+@@ -3024,14 +3238,38 @@
+ #if !defined(XFree86Server) || !defined(XINPUT)
+ xE->u.u.detail = butc->map[key];
+ #endif
++ #ifdef NX_DEBUG_INPUT
++ if (xE->u.u.detail == 0)
++ {
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: WARNING! detail == 0"
++ " for ButtonPress.\n");
++ }
++ return;
++ }
++ #else
+ if (xE->u.u.detail == 0)
+ return;
++ #endif
+ if (xE->u.u.detail <= 5)
+ butc->state |= (Button1Mask >> 1) << xE->u.u.detail;
+ filters[MotionNotify] = Motion_Filter(butc);
+ if (!grab)
++ #ifdef NX_DEBUG_INPUT
++ if (CheckDeviceGrabs(mouse, xE, 0, count))
++ {
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: CheckDeviceGrabs"
++ " returned True for ButtonPress.\n");
++ }
++ return;
++ }
++ #else
+ if (CheckDeviceGrabs(mouse, xE, 0, count))
+ return;
++ #endif
+ break;
+ case ButtonRelease:
+ mouse->valuator->motionHintWindow = NullWindow;
+@@ -3043,8 +3281,20 @@
+ #if !defined(XFree86Server) || !defined(XINPUT)
+ xE->u.u.detail = butc->map[key];
+ #endif
++ #ifdef NX_DEBUG_INPUT
+ if (xE->u.u.detail == 0)
++ {
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: WARNING! detail == 0"
++ " for ButtonRelease.\n");
++ }
+ return;
++ }
++ #else
++ if (xE->u.u.detail == 0)
++ return;
++ #endif
+ if (xE->u.u.detail <= 5)
+ butc->state &= ~((Button1Mask >> 1) << xE->u.u.detail);
+ filters[MotionNotify] = Motion_Filter(butc);
+@@ -3055,6 +3305,36 @@
+ FatalError("bogus pointer event from ddx");
+ }
+ }
++ #ifdef NX_DEBUG_INPUT
++ else if (!CheckMotion(xE))
++ {
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: CheckMotion returned False"
++ " for MotionNotify.\n");
++ }
++ return;
++ }
++ if (grab)
++ {
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: Going to deliver grabbed "
++ "events (count = %d).\n", count);
++ }
++ DeliverGrabbedEvent(xE, mouse, deactivateGrab, count);
++ }
++ else
++ {
++ if (nxagentDebugInput == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: Going to deliver device "
++ "events (count = %d).\n", count);
++ }
++ DeliverDeviceEvents(sprite.win, xE, NullGrab, NullWindow,
++ mouse, count);
++ }
++ #else
+ else if (!CheckMotion(xE))
+ return;
+ if (grab)
+@@ -3062,8 +3342,19 @@
+ else
+ DeliverDeviceEvents(sprite.win, xE, NullGrab, NullWindow,
+ mouse, count);
++ #endif
+ if (deactivateGrab)
++ #ifdef NX_DEBUG_INPUT
++ {
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcessPointerEvent: Deactivating grab on pointer.\n");
++ }
++ #endif
+ (*mouse->DeactivateGrab)(mouse);
++ #ifdef NX_DEBUG_INPUT
++ }
++ #endif
+ }
+
+ #define AtMostOneClient \
+@@ -3784,6 +4075,12 @@
+ pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess);
+ if (!pWin)
+ return BadWindow;
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcGrabPointer: pWin [%p] client [%d].\n", pWin, client -> index);
++ }
++ #endif
+ if (stuff->confineTo == None)
+ confineTo = NullWindow;
+ else
+@@ -3843,6 +4140,12 @@
+ tempGrab.keyboardMode = stuff->keyboardMode;
+ tempGrab.pointerMode = stuff->pointerMode;
+ tempGrab.device = device;
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcGrabPointer: Activating active grab on pointer.\n");
++ }
++ #endif
+ (*device->ActivateGrab)(device, &tempGrab, time, FALSE);
+ if (oldCursor)
+ FreeCursor (oldCursor, (Cursor)0);
+@@ -3906,6 +4209,12 @@
+ TimeStamp time;
+ REQUEST(xResourceReq);
+
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcUngrabPointer: client [%d].\n", client -> index);
++ }
++ #endif
+ REQUEST_SIZE_MATCH(xResourceReq);
+ UpdateCurrentTime();
+ grab = device->grab;
+@@ -3913,7 +4222,25 @@
+ if ((CompareTimeStamps(time, currentTime) != LATER) &&
+ (CompareTimeStamps(time, device->grabTime) != EARLIER) &&
+ (grab) && SameClient(grab, client))
++ #ifdef NX_DEBUG_INPUT
++ {
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcUngrabPointer: Deactivating grab on pointer.\n");
++ }
++ #endif
+ (*device->DeactivateGrab)(device);
++ #ifdef NX_DEBUG_INPUT
++ }
++ else
++ {
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcUngrabPointer: current time [%lu] request time [%lu] grab time [%lu].\n",
++ currentTime.milliseconds, time.milliseconds, device->grabTime.milliseconds);
++ }
++ }
++ #endif
+ return Success;
+ }
+
+@@ -3968,6 +4295,12 @@
+ tempGrab.pointerMode = other_mode;
+ tempGrab.eventMask = mask;
+ tempGrab.device = dev;
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "GrabDevice: Activating active grab on keyboard.\n");
++ }
++ #endif
+ (*dev->ActivateGrab)(dev, &tempGrab, time, FALSE);
+ *status = GrabSuccess;
+ }
+@@ -3981,6 +4314,12 @@
+ REQUEST(xGrabKeyboardReq);
+ int result;
+
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcGrabKeyboard: client [%d].\n", client -> index);
++ }
++ #endif
+ REQUEST_SIZE_MATCH(xGrabKeyboardReq);
+ #ifdef XCSECURITY
+ if (!SecurityCheckDeviceAccess(client, inputInfo.keyboard, TRUE))
+@@ -4011,6 +4350,12 @@
+ TimeStamp time;
+ REQUEST(xResourceReq);
+
++ #ifdef NX_DEBUG_INPUT
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcUngrabKeyboard: client [%d].\n", client -> index);
++ }
++ #endif
+ REQUEST_SIZE_MATCH(xResourceReq);
+ UpdateCurrentTime();
+ grab = device->grab;
+@@ -4018,7 +4363,25 @@
+ if ((CompareTimeStamps(time, currentTime) != LATER) &&
+ (CompareTimeStamps(time, device->grabTime) != EARLIER) &&
+ (grab) && SameClient(grab, client))
++ #ifdef NX_DEBUG_INPUT
++ {
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcUngrabKeyboard: Deactivating grab on keyboard.\n");
++ }
++ #endif
+ (*device->DeactivateGrab)(device);
++ #ifdef NX_DEBUG_INPUT
++ }
++ else
++ {
++ if (nxagentDebugInputDevices == 1)
++ {
++ fprintf(stderr, "ProcUngrabKeyboard: current time [%lu] request time [%lu] grab time [%lu].\n",
++ currentTime.milliseconds, time.milliseconds, device->grabTime.milliseconds);
++ }
++ }
++ #endif
+ return Success;
+ }
+
+@@ -4152,6 +4515,17 @@
+ /* The client's event type must be a core event type or one defined by an
+ extension. */
+
++
++#ifdef NXAGENT_CLIPBOARD
++
++ if (stuff -> event.u.u.type == SelectionNotify)
++ {
++ extern int nxagentSendNotify(xEvent*);
++ if (nxagentSendNotify(&stuff->event) == 1)
++ return Success;
++ }
++#endif
++
+ if ( ! ((stuff->event.u.u.type > X_Reply &&
+ stuff->event.u.u.type < LASTEvent) ||
+ (stuff->event.u.u.type >= EXTENSION_EVENT_BASE &&
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXextension.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXextension.c.X.original
new file mode 100644
index 000000000..84c5b130a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXextension.c.X.original
@@ -0,0 +1,70 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXextension.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXextension.c 2015-02-10 19:13:13.804685886 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/programs/Xserver/dix/extension.c,v 3.11 2001/12/14 19:59:31 dawes Exp $ */
+ /***********************************************************
+
+@@ -60,7 +77,7 @@
+ #include "extnsionst.h"
+ #include "gcstruct.h"
+ #include "scrnintstr.h"
+-#include "dispatch.h"
++#include "../../dix/dispatch.h"
+ #ifdef XCSECURITY
+ #define _SECURITY_SERVER
+ #include <X11/extensions/security.h>
+@@ -69,6 +86,8 @@
+ #include "lbxserve.h"
+ #endif
+
++#include "Trap.h"
++
+ #define EXTENSION_BASE 128
+ #define EXTENSION_EVENT_BASE 64
+ #define LAST_EVENT 128
+@@ -324,6 +343,13 @@
+ {
+ i = FindExtension((char *)&stuff[1], stuff->nbytes);
+ if (i < 0
++
++ /*
++ * Hide RENDER if our implementation
++ * is faulty.
++ */
++
++ || (nxagentRenderTrap && strcmp(extensions[i]->name, "RENDER") == 0)
+ #ifdef XCSECURITY
+ /* don't show insecure extensions to untrusted clients */
+ || (client->trustLevel == XSecurityClientUntrusted &&
+@@ -370,6 +396,14 @@
+ !extensions[i]->secure)
+ continue;
+ #endif
++ /*
++ * Hide RENDER if our implementation
++ * is faulty.
++ */
++
++ if (nxagentRenderTrap && strcmp(extensions[i]->name, "RENDER") == 0)
++ continue;
++
+ total_length += strlen(extensions[i]->name) + 1;
+ reply.nExtensions += 1 + extensions[i]->num_aliases;
+ for (j = extensions[i]->num_aliases; --j >= 0;)
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglxext.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglxext.c.X.original
new file mode 100644
index 000000000..a8dbfe0fd
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglxext.c.X.original
@@ -0,0 +1,118 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXglxext.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXglxext.c 2015-02-10 19:13:13.808685737 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.9 2003/09/28 20:15:43 alanh Exp $
+ ** The contents of this file are subject to the GLX Public License Version 1.0
+ ** (the "License"). You may not use this file except in compliance with the
+@@ -33,6 +50,12 @@
+ #include "glxext.h"
+ #include "micmap.h"
+
++#include "Trap.h"
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
+
+ void GlxWrapInitVisuals(miInitVisualsProcPtr *);
+ void GlxSetVisualConfigs(int nconfigs,
+@@ -395,6 +418,8 @@
+ */
+ static int __glXDispatch(ClientPtr client)
+ {
++ int result;
++
+ REQUEST(xGLXSingleReq);
+ CARD8 opcode;
+ int (*proc)(__GLXclientState *cl, GLbyte *pc);
+@@ -444,11 +469,35 @@
+ ** Use the opcode to index into the procedure table.
+ */
+ proc = __glXSingleTable[opcode];
+- return (*proc)(cl, (GLbyte *) stuff);
++
++ /*
++ * Report upstream that we are
++ * dispatching a GLX operation.
++ */
++
++ nxagentGlxTrap = 1;
++
++ #ifdef TEST
++ fprintf(stderr, "__glXDispatch: Going to dispatch GLX operation [%d] for client [%d].\n",
++ opcode, client -> index);
++ #endif
++
++ result = (*proc)(cl, (GLbyte *) stuff);
++
++ nxagentGlxTrap = 0;
++
++ #ifdef TEST
++ fprintf(stderr, "__glXDispatch: Dispatched GLX operation [%d] for client [%d].\n",
++ opcode, client -> index);
++ #endif
++
++ return result;
+ }
+
+ static int __glXSwapDispatch(ClientPtr client)
+ {
++ int result;
++
+ REQUEST(xGLXSingleReq);
+ CARD8 opcode;
+ int (*proc)(__GLXclientState *cl, GLbyte *pc);
+@@ -490,7 +539,29 @@
+ ** Use the opcode to index into the procedure table.
+ */
+ proc = __glXSwapSingleTable[opcode];
+- return (*proc)(cl, (GLbyte *) stuff);
++
++ /*
++ * Report upstream that we are
++ * dispatching a GLX operation.
++ */
++
++ nxagentGlxTrap = 1;
++
++ #ifdef TEST
++ fprintf(stderr, "__glXDispatch: Going to dispatch GLX operation [%d] for client [%d].\n",
++ opcode, client -> index);
++ #endif
++
++ result = (*proc)(cl, (GLbyte *) stuff);
++
++ nxagentGlxTrap = 0;
++
++ #ifdef TEST
++ fprintf(stderr, "__glXDispatch: Dispatched GLX operation [%d] for client [%d].\n",
++ opcode, client -> index);
++ #endif
++
++ return result;
+ }
+
+ int __glXNoSuchSingleOpcode(__GLXclientState *cl, GLbyte *pc)
+@@ -502,4 +573,3 @@
+ {
+ return;
+ }
+-
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyph.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyph.c.X.original
new file mode 100644
index 000000000..8ac8e4662
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyph.c.X.original
@@ -0,0 +1,160 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXglyph.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXglyph.c 2015-02-10 19:13:13.824685138 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * $XFree86: xc/programs/Xserver/render/glyph.c,v 1.5 2001/01/30 07:01:22 keithp Exp $
+ *
+@@ -40,9 +57,25 @@
+ #include "dixstruct.h"
+ #include "gcstruct.h"
+ #include "servermd.h"
++
++#ifdef NXAGENT_SERVER
++
++#include "NXpicturestr.h"
++#include "NXglyphstr.h"
++#include "Render.h"
++
++#define PANIC
++#define WARNING
++#undef DEBUG
++#undef TEST
++
++#else
++
+ #include "picturestr.h"
+ #include "glyphstr.h"
+
++#endif
++
+ #if HAVE_STDINT_H
+ #include <stdint.h>
+ #elif !defined(UINT32_MAX)
+@@ -293,7 +326,7 @@
+ gr->signature = hash;
+ globalGlyphs[glyphSet->fdepth].tableEntries++;
+ }
+-
++
+ /* Insert/replace glyphset value */
+ gr = FindGlyphRef (&glyphSet->hash, id, FALSE, 0);
+ ++glyph->refcnt;
+@@ -303,6 +336,13 @@
+ glyphSet->hash.tableEntries++;
+ gr->glyph = glyph;
+ gr->signature = id;
++
++ #ifdef NXAGENT_SERVER
++
++ gr -> corruptedGlyph = 1;
++
++ #endif
++
+ CheckDuplicates (&globalGlyphs[glyphSet->fdepth], "AddGlyph bottom");
+ }
+
+@@ -324,6 +364,36 @@
+ return FALSE;
+ }
+
++#ifdef NXAGENT_SERVER
++
++GlyphPtr FindGlyph (GlyphSetPtr glyphSet, Glyph id)
++{
++ GlyphRefPtr gr;
++ GlyphPtr glyph;
++
++ gr = FindGlyphRef (&glyphSet->hash, id, FALSE, 0);
++ glyph = gr -> glyph;
++
++ if (glyph == DeletedGlyph)
++ {
++ glyph = 0;
++ }
++ else if (gr -> corruptedGlyph == 1)
++ {
++ #ifdef DEBUG
++ fprintf(stderr, "FindGlyphRef: Going to synchronize the glyph [%p] for glyphset [%p].\n",
++ (void *) glyph, (void *) glyphSet);
++ #endif
++
++ nxagentAddGlyphs(glyphSet, &id, &(glyph -> info), 1,
++ (CARD8*)(glyph + 1), glyph -> size - sizeof(xGlyphInfo));
++ }
++
++ return glyph;
++}
++
++#else
++
+ GlyphPtr
+ FindGlyph (GlyphSetPtr glyphSet, Glyph id)
+ {
+@@ -335,6 +405,8 @@
+ return glyph;
+ }
+
++#endif
++
+ GlyphPtr
+ AllocateGlyph (xGlyphInfo *gi, int fdepth)
+ {
+@@ -379,6 +451,12 @@
+ int oldSize;
+ CARD32 s;
+
++ #ifdef NXAGENT_SERVER
++
++ CARD32 c;
++
++ #endif
++
+ tableEntries = hash->tableEntries + change;
+ hashSet = FindGlyphHashSet (tableEntries);
+ if (hashSet == hash->hashSet)
+@@ -396,9 +474,23 @@
+ if (glyph && glyph != DeletedGlyph)
+ {
+ s = hash->table[i].signature;
++
++ #ifdef NXAGENT_SERVER
++
++ c = hash->table[i].corruptedGlyph;
++
++ #endif
++
+ gr = FindGlyphRef (&newHash, s, global, glyph);
+ gr->signature = s;
+ gr->glyph = glyph;
++
++ #ifdef NXAGENT_SERVER
++
++ gr -> corruptedGlyph = c;
++
++ #endif
++
+ ++newHash.tableEntries;
+ }
+ }
+@@ -486,3 +578,4 @@
+ }
+ return Success;
+ }
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphcurs.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphcurs.c.X.original
new file mode 100644
index 000000000..c8d302c97
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphcurs.c.X.original
@@ -0,0 +1,121 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXglyphcurs.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXglyphcurs.c 2015-02-10 19:13:13.808685737 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /************************************************************************
+
+ Copyright 1987, 1998 The Open Group
+@@ -62,6 +79,12 @@
+ #include "opaque.h"
+ #include "servermd.h"
+
++#include "../../fb/fb.h"
++#include "Pixmaps.h"
++
++#ifndef True
++#define True 1
++#endif
+
+ /*
+ get the bits out of the font in a portable way. to avoid
+@@ -98,44 +121,68 @@
+ /* zeroing the (pad) bits seems to help some ddx cursor handling */
+ bzero(pbits, nby);
+
+- ppix = (PixmapPtr)(*pScreen->CreatePixmap)(pScreen, cm->width,
+- cm->height, 1);
++ ppix = fbCreatePixmap(pScreen, cm->width, cm->height, 1);
+ pGC = GetScratchGC(1, pScreen);
+ if (!ppix || !pGC)
+ {
+ if (ppix)
+- (*pScreen->DestroyPixmap)(ppix);
++ fbDestroyPixmap(ppix);
+ if (pGC)
+ FreeScratchGC(pGC);
+ xfree(pbits);
+ return BadAlloc;
+ }
+
++ #ifdef TEST
++ fprintf(stderr, "ServerBitsFromGlyph: Created virtual pixmap at [%p] with width [%d] height [%d] depth [%d].\n",
++ (void *) ppix, cm->width, cm->height, 1);
++ #endif
++
++ nxagentPixmapPriv(ppix) -> id = 0;
++ nxagentPixmapPriv(ppix) -> mid = 0;
++ nxagentPixmapPriv(ppix) -> isVirtual = True;
++ nxagentPixmapPriv(ppix) -> pRealPixmap = NULL;
++ nxagentPixmapPriv(ppix) -> pVirtualPixmap = NULL;
++
+ rect.x = 0;
+ rect.y = 0;
+ rect.width = cm->width;
+ rect.height = cm->height;
+
+- /* fill the pixmap with 0 */
+- gcval[0].val = GXcopy;
+- gcval[1].val = 0;
+- gcval[2].ptr = (pointer)pfont;
+- dixChangeGC(NullClient, pGC, GCFunction | GCForeground | GCFont,
+- NULL, gcval);
++ pGC->stateChanges |= GCFunction | GCForeground | GCFont;
++ pGC->alu = GXcopy;
++
++ pGC->fgPixel = 0;
++
++ pfont->refcnt++;
++
++ if (pGC->font)
++ CloseFont(pGC->font, (Font)0);
++
++ pGC->font = pfont;
++
+ ValidateGC((DrawablePtr)ppix, pGC);
+- (*pGC->ops->PolyFillRect)((DrawablePtr)ppix, pGC, 1, &rect);
++ fbPolyFillRect((DrawablePtr)ppix, pGC, 1, &rect);
+
+ /* draw the glyph */
+ gcval[0].val = 1;
+- dixChangeGC(NullClient, pGC, GCForeground, NULL, gcval);
++ pGC->fgPixel = 1;
++
++ pGC->stateChanges |= GCForeground;
++
+ ValidateGC((DrawablePtr)ppix, pGC);
+- (*pGC->ops->PolyText16)((DrawablePtr)ppix, pGC, cm->xhot, cm->yhot,
+- 1, (unsigned short *)char2b);
+- (*pScreen->GetImage)((DrawablePtr)ppix, 0, 0, cm->width, cm->height,
+- XYPixmap, 1, pbits);
++ miPolyText16((DrawablePtr)ppix, pGC, (int)cm->xhot, (int)cm->yhot, (int)1, (unsigned short*)char2b);
++ fbGetImage((DrawablePtr)ppix, 0, 0, cm->width, cm->height,
++ XYPixmap, 1, pbits);
+ *ppbits = (unsigned char *)pbits;
+ FreeScratchGC(pGC);
+- (*pScreen->DestroyPixmap)(ppix);
++ fbDestroyPixmap(ppix);
++
++ #ifdef TEST
++ fprintf(stderr, "ServerBitsFromGlyph: Destroyed virtual pixmap at [%p].\n",
++ (void *) ppix);
++ #endif
++
+ return Success;
+ }
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphstr.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphstr.h.X.original
new file mode 100644
index 000000000..76f0a1625
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXglyphstr.h.X.original
@@ -0,0 +1,59 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXglyphstr.h.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXglyphstr.h 2015-02-10 19:13:13.780686785 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * $XFree86: xc/programs/Xserver/render/glyphstr.h,v 1.3 2000/11/20 07:13:13 keithp Exp $
+ *
+@@ -23,11 +40,18 @@
+ * Author: Keith Packard, SuSE, Inc.
+ */
+
++/*
++ * This must keep the same symbol as the original glyphstr.h
++ * or symbols will be redefined. The code here adds a field
++ * to _GlyphSet. This should be done by defining a new type
++ * and casting when appropriate.
++ */
++
+ #ifndef _GLYPHSTR_H_
+ #define _GLYPHSTR_H_
+
+ #include <X11/extensions/renderproto.h>
+-#include "picture.h"
++#include "../../render/picture.h"
+ #include "screenint.h"
+
+ #define GlyphFormat1 0
+@@ -47,6 +71,7 @@
+ typedef struct _GlyphRef {
+ CARD32 signature;
+ GlyphPtr glyph;
++ CARD16 corruptedGlyph;
+ } GlyphRefRec, *GlyphRefPtr;
+
+ #define DeletedGlyph ((GlyphPtr) 1)
+@@ -70,6 +95,7 @@
+ GlyphHashRec hash;
+ int maxPrivate;
+ pointer *devPrivates;
++ CARD32 remoteID;
+ } GlyphSetRec, *GlyphSetPtr;
+
+ #define GlyphSetGetPrivate(pGlyphSet,n) \
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiexpose.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiexpose.c.X.original
new file mode 100644
index 000000000..829a95df4
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiexpose.c.X.original
@@ -0,0 +1,116 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiexpose.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiexpose.c 2015-02-10 19:13:13.768687235 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XdotOrg: xc/programs/Xserver/mi/miexpose.c,v 1.6 2005/07/03 08:53:51 daniels Exp $ */
+ /* $XFree86: xc/programs/Xserver/mi/miexpose.c,v 3.9tsi Exp $ */
+ /***********************************************************
+@@ -109,6 +126,12 @@
+ the region package can call this.
+ */
+
++#ifdef NXAGENT_SERVER
++
++#include "Windows.h"
++
++#endif
++
+ #ifndef RECTLIMIT
+ #define RECTLIMIT 25 /* pick a number, any number > 8 */
+ #endif
+@@ -158,6 +181,20 @@
+ BoxRec expBox;
+ Bool extents;
+
++#ifdef NXAGENT_SERVER
++
++ /*
++ * Set the elements reported by the compiler
++ * as uninitialized.
++ */
++
++ expBox.x1 = 0;
++ expBox.y1 = 0;
++ expBox.x2 = 0;
++ expBox.y2 = 0;
++
++#endif
++
+ /* This prevents warning about pscr not being used. */
+ pGC->pScreen = pscr = pGC->pScreen;
+
+@@ -498,6 +535,11 @@
+ WindowPtr pWin;
+ register RegionPtr prgn, other_exposed;
+ {
++#ifdef NXAGENT_SERVER
++
++ int total;
++
++#endif
+ RegionPtr exposures = prgn;
+ if (pWin->backStorage && prgn)
+ /*
+@@ -533,7 +575,20 @@
+ }
+ exposures = other_exposed;
+ }
++#ifdef NXAGENT_SERVER
++
++ /*
++ * If the number of rectangles is greater
++ * than 4, let the function decide.
++ */
++
++ total = REGION_NUM_RECTS(exposures);
++
++ if (clientInterested && exposures && (total > RECTLIMIT ||
++ (total > 4 && nxagentExtentsPredicate(total) == 1)))
++#else
+ if (clientInterested && exposures && (REGION_NUM_RECTS(exposures) > RECTLIMIT))
++#endif
+ {
+ /*
+ * If we have LOTS of rectangles, we decide to take the extents
+@@ -666,6 +721,25 @@
+ register xRectangle *prect;
+ int numRects;
+
++#ifdef NXAGENT_SERVER
++
++ /*
++ * Set the elements reported by the compiler
++ * as uninitialized.
++ */
++
++ prgnWin.extents.x1 = 0;
++ prgnWin.extents.y1 = 0;
++ prgnWin.extents.x2 = 0;
++ prgnWin.extents.y2 = 0;
++
++ prgnWin.data = NULL;
++
++ oldCorner.x = 0;
++ oldCorner.y = 0;
++
++#endif
++
+ gcmask = 0;
+
+ if (what == PW_BACKGROUND)
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiglyph.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiglyph.c.X.original
new file mode 100644
index 000000000..37b68d613
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiglyph.c.X.original
@@ -0,0 +1,156 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiglyph.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiglyph.c 2015-02-10 19:13:13.804685886 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * $XFree86: xc/programs/Xserver/render/miglyph.c,v 1.4 2000/11/20 07:13:13 keithp Exp $
+ *
+@@ -35,6 +52,12 @@
+ #include "picturestr.h"
+ #include "mipict.h"
+
++#ifdef NXAGENT_SERVER
++
++#include "Render.h"
++
++#endif
++
+ void
+ miGlyphExtents (int nlist,
+ GlyphListPtr list,
+@@ -45,7 +68,7 @@
+ int n;
+ GlyphPtr glyph;
+ int x, y;
+-
++
+ x = 0;
+ y = 0;
+ extents->x1 = MAXSHORT;
+@@ -113,25 +136,58 @@
+ int error;
+ BoxRec extents;
+ CARD32 component_alpha;
+-
++
++ #ifdef NXAGENT_SERVER
++
++ /*
++ * Get rid of the warning.
++ */
++
++ extents.x1 = 0;
++ extents.y1 = 0;
++
++ #endif
++
+ if (maskFormat)
+ {
+ GCPtr pGC;
+ xRectangle rect;
+-
+- miGlyphExtents (nlist, list, glyphs, &extents);
+-
++
++ #ifdef NXAGENT_SERVER
++
++ if (nxagentGlyphsExtents != NullBox)
++ {
++ memcpy(&extents, nxagentGlyphsExtents, sizeof(BoxRec));
++ }
++ else
++ {
++ nxagentGlyphsExtents = (BoxPtr) xalloc(sizeof(BoxRec));
++
++ miGlyphExtents (nlist, list, glyphs, &extents);
++
++ memcpy(nxagentGlyphsExtents, &extents, sizeof(BoxRec));
++ }
++
++ #else
++
++ miGlyphExtents (nlist, list, glyphs, &extents);
++
++ #endif
++
+ if (extents.x2 <= extents.x1 || extents.y2 <= extents.y1)
+ return;
+ width = extents.x2 - extents.x1;
+ height = extents.y2 - extents.y1;
+ pMaskPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, maskFormat->depth);
++
+ if (!pMaskPixmap)
+ return;
++
+ component_alpha = NeedsComponent(maskFormat->format);
+ pMask = CreatePicture (0, &pMaskPixmap->drawable,
+ maskFormat, CPComponentAlpha, &component_alpha,
+ serverClient, &error);
++
+ if (!pMask)
+ {
+ (*pScreen->DestroyPixmap) (pMaskPixmap);
+@@ -160,6 +216,7 @@
+ x += list->xOff;
+ y += list->yOff;
+ n = list->len;
++
+ while (n--)
+ {
+ glyph = *glyphs++;
+@@ -184,6 +241,21 @@
+ (*pScreen->ModifyPixmapHeader) (pPixmap,
+ glyph->info.width, glyph->info.height,
+ 0, 0, -1, (pointer) (glyph + 1));
++
++ #ifdef NXAGENT_SERVER
++
++ /*
++ * The following line fixes a problem with glyphs that appeared
++ * as clipped. It was a side effect due the validate function
++ * "ValidatePicture" that makes a check on the Drawable serial
++ * number instead of the picture serial number, failing thus
++ * the clip mask update.
++ */
++
++ pPicture->pDrawable->serialNumber = NEXT_SERIAL_NUMBER;
++
++ #endif
++
+ pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
+ if (maskFormat)
+ {
+@@ -215,6 +287,7 @@
+ x += glyph->info.xOff;
+ y += glyph->info.yOff;
+ }
++
+ list++;
+ if (pPicture)
+ {
+@@ -237,7 +310,9 @@
+ 0, 0,
+ x, y,
+ width, height);
++
+ FreePicture ((pointer) pMask, (XID) 0);
+ (*pScreen->DestroyPixmap) (pMaskPixmap);
+ }
++
+ }
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmitrap.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmitrap.c.X.original
new file mode 100644
index 000000000..220b26a49
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmitrap.c.X.original
@@ -0,0 +1,65 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXmitrap.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXmitrap.c 2015-02-10 19:13:13.820685287 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * $XFree86: xc/programs/Xserver/render/mitrap.c,v 1.8 2002/09/03 19:28:28 keithp Exp $
+ *
+@@ -35,6 +52,12 @@
+ #include "picturestr.h"
+ #include "mipict.h"
+
++#ifdef NXAGENT_SERVER
++
++#include "Render.h"
++
++#endif
++
+ PicturePtr
+ miCreateAlphaPicture (ScreenPtr pScreen,
+ PicturePtr pDst,
+@@ -159,7 +182,27 @@
+ xDst = traps[0].left.p1.x >> 16;
+ yDst = traps[0].left.p1.y >> 16;
+
+- miTrapezoidBounds (ntrap, traps, &bounds);
++ #ifdef NXAGENT_SERVER
++
++ if (nxagentTrapezoidExtents != NullBox)
++ {
++ memcpy(&bounds, nxagentTrapezoidExtents, sizeof(BoxRec));
++ }
++ else
++ {
++ nxagentTrapezoidExtents = (BoxPtr) xalloc(sizeof(BoxRec));
++
++ miTrapezoidBounds (ntrap, traps, &bounds);
++
++ memcpy(nxagentTrapezoidExtents, &bounds, sizeof(BoxRec));
++ }
++
++ #else
++
++ miTrapezoidBounds (ntrap, traps, &bounds);
++
++ #endif
++
+ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2)
+ return;
+ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiwindow.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiwindow.c.X.original
new file mode 100644
index 000000000..7d6be7b0c
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXmiwindow.c.X.original
@@ -0,0 +1,53 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiwindow.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiwindow.c 2015-02-10 19:13:13.776686935 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/programs/Xserver/mi/miwindow.c,v 1.9tsi Exp $ */
+ /***********************************************************
+
+@@ -1048,8 +1065,29 @@
+ bsExposed = (*pScreen->TranslateBackingStore)
+ (pWin, 0, 0, pOldClip,
+ pWin->drawable.x, pWin->drawable.y);
++#ifdef NXAGENT_SERVER
++
++ /*
++ * We got a few, rare, segfaults here after having
++ * started using the backing store. It may be a
++ * different bug but miChangeSaveUnder() calls mi-
++ * CheckSubSaveUnder() that, in turn, can change
++ * the backing store attribute of the window. This
++ * means that we may try to destroy the region
++ * even if it was not created at the beginning of
++ * this function as, at the time, the backing store
++ * was off. miCheckSubSaveUnder() appear to get a
++ * pointer to the parent, so maybe doesn't change
++ * the attribute of the window itself. This is to
++ * be better investigated.
++ */
++
++ if (WasViewable && pOldClip)
++ REGION_DESTROY(pScreen, pOldClip);
++#else
+ if (WasViewable)
+ REGION_DESTROY(pScreen, pOldClip);
++#endif
+ if (bsExposed)
+ {
+ RegionPtr valExposed = NullRegion;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicture.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicture.c.X.original
new file mode 100644
index 000000000..9713e4495
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicture.c.X.original
@@ -0,0 +1,615 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c 2015-02-13 14:03:44.744441510 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * $XFree86: xc/programs/Xserver/render/picture.c,v 1.29 2002/11/23 02:38:15 keithp Exp $
+ *
+@@ -40,7 +57,21 @@
+ #include "dixstruct.h"
+ #include "gcstruct.h"
+ #include "servermd.h"
+-#include "picturestr.h"
++#include "NXpicturestr.h"
++
++#include "Screen.h"
++#include "Pixmaps.h"
++#include "Drawable.h"
++#include "Render.h"
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++
++void *nxagentVisualFromID(ScreenPtr pScreen, VisualID visual);
++
++void *nxagentMatchingFormats(PictFormatPtr pForm);
+
+ int PictureScreenPrivateIndex = -1;
+ int PictureWindowPrivateIndex;
+@@ -50,6 +81,13 @@
+ RESTYPE GlyphSetType;
+ int PictureCmapPolicy = PictureCmapPolicyDefault;
+
++typedef struct _formatInit {
++ CARD32 format;
++ CARD8 depth;
++} FormatInitRec, *FormatInitPtr;
++
++void nxagentPictureCreateDefaultFormats(ScreenPtr pScreen, FormatInitRec *formats, int *nformats);
++
+ /* Picture Private machinery */
+
+ static int picturePrivateCount;
+@@ -189,11 +227,6 @@
+ return 0;
+ }
+
+-typedef struct _formatInit {
+- CARD32 format;
+- CARD8 depth;
+-} FormatInitRec, *FormatInitPtr;
+-
+ static int
+ addFormat (FormatInitRec formats[256],
+ int nformat,
+@@ -207,6 +240,11 @@
+ return nformat;
+ formats[nformat].format = format;
+ formats[nformat].depth = depth;
++
++ #ifdef DEBUG
++ fprintf(stderr, "addFormat: Added format [%lu] depth [%d].\n", format, depth);
++ #endif
++
+ return ++nformat;
+ }
+
+@@ -215,10 +253,13 @@
+ PictFormatPtr
+ PictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp)
+ {
+- int nformats, f;
++ int nformats, f;
+ PictFormatPtr pFormats;
+ FormatInitRec formats[1024];
+ CARD32 format;
++
++#ifndef NXAGENT_SERVER
++
+ CARD8 depth;
+ VisualPtr pVisual;
+ int v;
+@@ -228,7 +269,16 @@
+ int d;
+ DepthPtr pDepth;
+
++#endif
++
+ nformats = 0;
++
++#ifdef NXAGENT_SERVER
++
++ nxagentPictureCreateDefaultFormats(pScreen, formats, &nformats);
++
++#else
++
+ /* formats required by protocol */
+ formats[nformats].format = PICT_a1;
+ formats[nformats].depth = 1;
+@@ -254,6 +304,7 @@
+ if (!depth)
+ continue;
+ bpp = BitsPerPixel (depth);
++
+ switch (pVisual->class) {
+ case DirectColor:
+ case TrueColor:
+@@ -296,6 +347,7 @@
+ break;
+ }
+ }
++
+ /*
+ * Walk supported depths and add useful Direct formats
+ */
+@@ -304,16 +356,18 @@
+ pDepth = &pScreen->allowedDepths[d];
+ bpp = BitsPerPixel (pDepth->depth);
+ format = 0;
++
+ switch (bpp) {
+ case 16:
+ /* depth 12 formats */
+- if (pDepth->depth >= 12)
+- {
+- nformats = addFormat (formats, nformats,
+- PICT_x4r4g4b4, pDepth->depth);
+- nformats = addFormat (formats, nformats,
+- PICT_x4b4g4r4, pDepth->depth);
+- }
++ if (pDepth->depth >= 12)
++ {
++ nformats = addFormat (formats, nformats,
++ PICT_x4r4g4b4, pDepth->depth);
++ nformats = addFormat (formats, nformats,
++ PICT_x4b4g4r4, pDepth->depth);
++ }
++
+ /* depth 15 formats */
+ if (pDepth->depth >= 15)
+ {
+@@ -325,18 +379,18 @@
+ /* depth 16 formats */
+ if (pDepth->depth >= 16)
+ {
+- nformats = addFormat (formats, nformats,
+- PICT_a1r5g5b5, pDepth->depth);
+- nformats = addFormat (formats, nformats,
+- PICT_a1b5g5r5, pDepth->depth);
++ nformats = addFormat (formats, nformats,
++ PICT_a1r5g5b5, pDepth->depth);
++ nformats = addFormat (formats, nformats,
++ PICT_a1b5g5r5, pDepth->depth);
+ nformats = addFormat (formats, nformats,
+ PICT_r5g6b5, pDepth->depth);
+ nformats = addFormat (formats, nformats,
+ PICT_b5g6r5, pDepth->depth);
+ nformats = addFormat (formats, nformats,
+ PICT_a4r4g4b4, pDepth->depth);
+- nformats = addFormat (formats, nformats,
+- PICT_a4b4g4r4, pDepth->depth);
++ nformats = addFormat (formats, nformats,
++ PICT_a4b4g4r4, pDepth->depth);
+ }
+ break;
+ case 24:
+@@ -359,7 +413,8 @@
+ break;
+ }
+ }
+-
++
++#endif
+
+ pFormats = (PictFormatPtr) xalloc (nformats * sizeof (PictFormatRec));
+ if (!pFormats)
+@@ -368,9 +423,9 @@
+ for (f = 0; f < nformats; f++)
+ {
+ pFormats[f].id = FakeClientID (0);
+- pFormats[f].depth = formats[f].depth;
+- format = formats[f].format;
+- pFormats[f].format = format;
++ pFormats[f].depth = formats[f].depth;
++ format = formats[f].format;
++ pFormats[f].format = format;
+ switch (PICT_FORMAT_TYPE(format)) {
+ case PICT_TYPE_ARGB:
+ pFormats[f].type = PictTypeDirect;
+@@ -427,6 +482,29 @@
+ pFormats[f].index.vid = pScreen->visuals[PICT_FORMAT_VIS(format)].vid;
+ break;
+ }
++
++#ifdef NXAGENT_SERVER
++ if (nxagentMatchingFormats(&pFormats[f]) != NULL)
++ {
++ #ifdef DEBUG
++ fprintf(stderr, "PictureCreateDefaultFormats: Format with type [%d] depth [%d] rgb [%d,%d,%d] "
++ "mask rgb [%d,%d,%d] alpha [%d] alpha mask [%d] matches.\n",
++ pFormats[f].type, pFormats[f].depth, pFormats[f].direct.red, pFormats[f].direct.green,
++ pFormats[f].direct.blue, pFormats[f].direct.redMask, pFormats[f].direct.greenMask,
++ pFormats[f].direct.blueMask, pFormats[f].direct.alpha, pFormats[f].direct.alphaMask);
++ #endif
++ }
++ else
++ {
++ #ifdef DEBUG
++ fprintf(stderr, "PictureCreateDefaultFormats: Format with type [%d] depth [%d] rgb [%d,%d,%d] "
++ "mask rgb [%d,%d,%d] alpha [%d] alpha mask [%d] doesn't match.\n",
++ pFormats[f].type, pFormats[f].depth, pFormats[f].direct.red, pFormats[f].direct.green,
++ pFormats[f].direct.blue, pFormats[f].direct.redMask, pFormats[f].direct.greenMask,
++ pFormats[f].direct.blueMask, pFormats[f].direct.alpha, pFormats[f].direct.alphaMask);
++ #endif
++ }
++#endif
+ }
+ *nformatp = nformats;
+ return pFormats;
+@@ -795,9 +873,20 @@
+ else
+ ppriv->ptr = (pointer)NULL;
+ }
++
++ nxagentPicturePriv(pPicture) -> picture = 0;
++
+ return pPicture;
+ }
+
++/*
++ * Let picture always point to the virtual pixmap.
++ * For sure this is not the best way to deal with
++ * the virtual frame-buffer.
++ */
++
++#define NXAGENT_PICTURE_ALWAYS_POINTS_TO_VIRTUAL
++
+ PicturePtr
+ CreatePicture (Picture pid,
+ DrawablePtr pDrawable,
+@@ -823,6 +912,12 @@
+ pPicture->format = pFormat->format | (pDrawable->bitsPerPixel << 24);
+ if (pDrawable->type == DRAWABLE_PIXMAP)
+ {
++ #ifdef NXAGENT_PICTURE_ALWAYS_POINTS_TO_VIRTUAL
++
++ pPicture->pDrawable = nxagentVirtualDrawable(pDrawable);
++
++ #endif
++
+ ++((PixmapPtr)pDrawable)->refcnt;
+ pPicture->pNext = 0;
+ }
+@@ -972,7 +1067,49 @@
+ static PicturePtr createSourcePicture(void)
+ {
+ PicturePtr pPicture;
+- pPicture = (PicturePtr) xalloc(sizeof(PictureRec));
++
++ extern int nxagentPicturePrivateIndex;
++
++ unsigned int totalPictureSize;
++
++ DevUnion *ppriv;
++
++ char *privPictureRecAddr;
++
++ int i;
++
++ /*
++ * Compute size of entire PictureRect, plus privates.
++ */
++
++ totalPictureSize = sizeof(PictureRec) +
++ picturePrivateCount * sizeof(DevUnion) +
++ sizeof(nxagentPrivPictureRec);
++
++ pPicture = (PicturePtr) xalloc(totalPictureSize);
++
++ if (pPicture != NULL)
++ {
++ ppriv = (DevUnion *) (pPicture + 1);
++
++ for (i = 0; i < picturePrivateCount; ++i)
++ {
++ /*
++ * Other privates are inaccessible.
++ */
++
++ ppriv[i].ptr = NULL;
++ }
++
++ privPictureRecAddr = (char *) &ppriv[picturePrivateCount];
++
++ ppriv[nxagentPicturePrivateIndex].ptr = (pointer) privPictureRecAddr;
++
++ pPicture -> devPrivates = ppriv;
++
++ nxagentPicturePriv(pPicture) -> picture = 0;
++ }
++
+ pPicture->pDrawable = 0;
+ pPicture->pFormat = 0;
+ pPicture->pNext = 0;
+@@ -1294,6 +1431,12 @@
+ pPixmap->refcnt++;
+ }
+ }
++
++ #ifdef DEBUG
++ fprintf(stderr, "ChangePicture: Going to call ChangePictureClip with clipType [%d] pPixmap [%p].\n",
++ clipType, (void *) pPixmap);
++ #endif
++
+ error = (*ps->ChangePictureClip)(pPicture, clipType,
+ (pointer)pPixmap, 0);
+ break;
+@@ -1600,6 +1743,10 @@
+
+ if (--pPicture->refcnt == 0)
+ {
++#ifdef NXAGENT_SERVER
++ nxagentDestroyPicture(pPicture);
++#endif
++
+ if (pPicture->transform)
+ xfree (pPicture->transform);
+ if (!pPicture->pDrawable) {
+@@ -1698,6 +1845,13 @@
+
+ ValidatePicture (pSrc);
+ ValidatePicture (pDst);
++
++ #ifdef TEST
++ fprintf(stderr, "CompositeGlyphs: Going to composite glyphs with "
++ "source at [%p] and destination at [%p].\n",
++ (void *) pSrc, (void *) pDst);
++ #endif
++
+ (*ps->Glyphs) (op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, lists, glyphs);
+ }
+
+@@ -1862,3 +2016,255 @@
+ vector->vector[2] = xFixed1;
+ return TRUE;
+ }
++
++#ifndef True
++# define True 1
++#endif
++
++#ifndef False
++# define False 0
++#endif
++
++void nxagentReconnectPictFormat(void*, XID, void*);
++
++Bool nxagentReconnectAllPictFormat(void *p)
++{
++ PictFormatPtr formats_old, formats;
++ int nformats, nformats_old;
++ VisualPtr pVisual;
++ Bool success = True;
++ Bool matched;
++ int i, n;
++ CARD32 type, a, r, g, b;
++
++ #if defined(NXAGENT_RECONNECT_DEBUG) || defined(NXAGENT_RECONNECT_PICTFORMAT_DEBUG)
++ fprintf(stderr, "nxagentReconnectAllPictFormat\n");
++ #endif
++
++ formats_old = GetPictureScreen(nxagentDefaultScreen) -> formats;
++ nformats_old = GetPictureScreen(nxagentDefaultScreen) -> nformats;
++
++ /*
++ * TODO: We could copy PictureCreateDefaultFormats,
++ * in order not to waste ID with FakeClientID().
++ */
++ formats = PictureCreateDefaultFormats (nxagentDefaultScreen, &nformats);
++
++ if (!formats)
++ return False;
++
++ for (n = 0; n < nformats; n++)
++ {
++ if (formats[n].type == PictTypeIndexed)
++ {
++ pVisual = nxagentVisualFromID(nxagentDefaultScreen, formats[n].index.vid);
++
++ if ((pVisual->class | DynamicClass) == PseudoColor)
++ type = PICT_TYPE_COLOR;
++ else
++ type = PICT_TYPE_GRAY;
++ a = r = g = b = 0;
++ }
++ else
++ {
++ if ((formats[n].direct.redMask|
++ formats[n].direct.blueMask|
++ formats[n].direct.greenMask) == 0)
++ type = PICT_TYPE_A;
++ else if (formats[n].direct.red > formats[n].direct.blue)
++ type = PICT_TYPE_ARGB;
++ else
++ type = PICT_TYPE_ABGR;
++ a = Ones (formats[n].direct.alphaMask);
++ r = Ones (formats[n].direct.redMask);
++ g = Ones (formats[n].direct.greenMask);
++ b = Ones (formats[n].direct.blueMask);
++ }
++ formats[n].format = PICT_FORMAT(0,type,a,r,g,b);
++ }
++
++ for (n = 0; n < nformats_old; n++)
++ {
++ for (i = 0, matched = False; (!matched) && (i < nformats); i++)
++ {
++ if (formats_old[n].format == formats[i].format &&
++ formats_old[n].type == formats[i].type &&
++ formats_old[n].direct.red == formats[i].direct.red &&
++ formats_old[n].direct.green == formats[i].direct.green &&
++ formats_old[n].direct.blue == formats[i].direct.blue &&
++ formats_old[n].direct.redMask == formats[i].direct.redMask &&
++ formats_old[n].direct.greenMask == formats[i].direct.greenMask &&
++ formats_old[n].direct.blueMask == formats[i].direct.blueMask &&
++ formats_old[n].direct.alpha == formats[i].direct.alpha &&
++ formats_old[n].direct.alphaMask == formats[i].direct.alphaMask)
++ {
++ /*
++ * Regard depth 16 and 15 as were the same, if all other values match.
++ */
++
++ if ((formats_old[n].depth == formats[i].depth) ||
++ ((formats_old[n].depth == 15 || formats_old[n].depth == 16) &&
++ (formats[i].depth == 15 || formats[i].depth == 16)))
++ {
++ matched = True;
++ }
++ }
++ }
++
++ if (!matched)
++ {
++ return False;
++ }
++ }
++
++ xfree(formats);
++
++ /* TODO: Perhaps do i have to do PictureFinishInit ?. */
++ /* TODO: We have to check for new Render protocol version. */
++
++ for (i = 0; (i < MAXCLIENTS) && (success); i++)
++ {
++ if (clients[i])
++ {
++ FindClientResourcesByType(clients[i], PictFormatType, nxagentReconnectPictFormat, &success);
++ }
++ }
++
++ return success;
++}
++
++/*
++ * It seem we don't have nothing
++ * to do for reconnect PictureFormat.
++ */
++
++void nxagentReconnectPictFormat(void *p0, XID x1, void *p2)
++{
++ PictFormatPtr pFormat;
++ Bool *pBool;
++
++ pFormat = (PictFormatPtr)p0;
++ pBool = (Bool*)p2;
++
++ #if defined(NXAGENT_RECONNECT_DEBUG) || defined(NXAGENT_RECONNECT_PICTFORMAT_DEBUG)
++ fprintf(stderr, "nxagentReconnectPictFormat.\n");
++ #endif
++}
++
++/*
++ * The set of picture formats may change considerably
++ * between different X servers. This poses a problem
++ * while migrating NX sessions, because a requisite to
++ * successfully reconnect the session is that all pic-
++ * ture formats have to be available on the new X server.
++ * To reduce such problems, we use a limited set of
++ * pictures available on the most X servers.
++ */
++
++void nxagentPictureCreateDefaultFormats(ScreenPtr pScreen, FormatInitRec *formats, int *nformats)
++{
++ DepthPtr pDepth;
++ VisualPtr pVisual;
++
++ CARD32 format;
++ CARD8 depth;
++
++ int r, g, b;
++ int bpp;
++ int d;
++ int v;
++
++
++ formats[*nformats].format = PICT_a1;
++ formats[*nformats].depth = 1;
++ *nformats += 1;
++ formats[*nformats].format = PICT_a4;
++ formats[*nformats].depth = 4;
++ *nformats += 1;
++ formats[*nformats].format = PICT_a8;
++ formats[*nformats].depth = 8;
++ *nformats += 1;
++ formats[*nformats].format = PICT_a8r8g8b8;
++ formats[*nformats].depth = 32;
++ *nformats += 1;
++
++ /*
++ * This format should be required by the
++ * protocol, but it's not used by Xgl.
++ *
++ * formats[*nformats].format = PICT_x8r8g8b8;
++ * formats[*nformats].depth = 32;
++ * *nformats += 1;
++ */
++
++ /* now look through the depths and visuals adding other formats */
++ for (v = 0; v < pScreen->numVisuals; v++)
++ {
++ pVisual = &pScreen->visuals[v];
++ depth = visualDepth (pScreen, pVisual);
++ if (!depth)
++ continue;
++
++ bpp = BitsPerPixel (depth);
++
++ switch (pVisual->class)
++ {
++ case DirectColor:
++ case TrueColor:
++ r = Ones (pVisual->redMask);
++ g = Ones (pVisual->greenMask);
++ b = Ones (pVisual->blueMask);
++
++ if (pVisual->offsetBlue == 0 &&
++ pVisual->offsetGreen == b &&
++ pVisual->offsetRed == b + g)
++ {
++ format = PICT_FORMAT(bpp, PICT_TYPE_ARGB, 0, r, g, b);
++ *nformats = addFormat (formats, *nformats, format, depth);
++ }
++ break;
++ case StaticColor:
++ case PseudoColor:
++ case StaticGray:
++ case GrayScale:
++ break;
++ }
++ }
++
++ for (d = 0; d < pScreen -> numDepths; d++)
++ {
++ pDepth = &pScreen -> allowedDepths[d];
++ bpp = BitsPerPixel(pDepth -> depth);
++
++ switch (bpp) {
++ case 16:
++ if (pDepth->depth == 15)
++ {
++ *nformats = addFormat (formats, *nformats,
++ PICT_x1r5g5b5, pDepth->depth);
++ }
++
++ if (pDepth->depth == 16)
++ {
++ *nformats = addFormat (formats, *nformats,
++ PICT_r5g6b5, pDepth->depth);
++ }
++ break;
++ case 24:
++ if (pDepth->depth == 24)
++ {
++ *nformats = addFormat (formats, *nformats,
++ PICT_r8g8b8, pDepth->depth);
++ }
++ break;
++ case 32:
++ if (pDepth->depth == 24)
++ {
++ *nformats = addFormat (formats, *nformats,
++ PICT_x8r8g8b8, pDepth->depth);
++ }
++ break;
++ }
++ }
++}
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicturestr.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicturestr.h.X.original
new file mode 100644
index 000000000..9150cfae8
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXpicturestr.h.X.original
@@ -0,0 +1,42 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h 2015-02-13 14:03:44.744441510 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * $Id: picturestr.h,v 1.15 2005/12/09 18:35:21 ajax Exp $
+ *
+@@ -23,10 +40,17 @@
+ * Author: Keith Packard, SuSE, Inc.
+ */
+
++/*
++ * This must keep the same symbol as the original
++ * picturestr.h or symbols will be redefined. We
++ * should define a new types and cast when appro-
++ * priate.
++ */
++
+ #ifndef _PICTURESTR_H_
+ #define _PICTURESTR_H_
+
+-#include "glyphstr.h"
++#include "NXglyphstr.h"
+ #include "scrnintstr.h"
+ #include "resource.h"
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXproperty.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXproperty.c.X.original
new file mode 100644
index 000000000..7327501ac
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXproperty.c.X.original
@@ -0,0 +1,358 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXproperty.c.X.original 2015-02-13 14:03:44.744441510 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXproperty.c 2015-02-10 19:13:13.772687085 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/programs/Xserver/dix/property.c,v 3.12 2002/02/19 11:09:22 alanh Exp $ */
+ /***********************************************************
+
+@@ -58,7 +75,7 @@
+ #include "windowstr.h"
+ #include "propertyst.h"
+ #include "dixstruct.h"
+-#include "dispatch.h"
++#include "../../dix/dispatch.h"
+ #include "swaprep.h"
+ #ifdef XCSECURITY
+ #define _SECURITY_SERVER
+@@ -69,6 +86,11 @@
+ #include "lbxtags.h"
+ #endif
+
++#include "Options.h"
++#include "Rootless.h"
++#include "Client.h"
++#include "Windows.h"
++
+ #if defined(LBX) || defined(LBX_COMPAT)
+ #if 0 /* no header in X11 environment, not used in X11 environment */
+ int fWriteToClient(ClientPtr client, int len, char *buf)
+@@ -78,6 +100,17 @@
+ #endif
+ #endif
+
++extern Atom clientCutProperty;
++
++#ifdef NXAGENT_SERVER
++typedef struct
++{
++ CARD32 state;
++ Window icon;
++}
++nxagentWMStateRec;
++#endif
++
+ /*****************************************************************
+ * Property Stuff
+ *
+@@ -234,6 +267,15 @@
+ totalSize = len * sizeInBytes;
+ REQUEST_FIXED_SIZE(xChangePropertyReq, totalSize);
+
++#ifdef NXAGENT_CLIPBOARD
++ {
++ extern WindowPtr nxagentGetClipboardWindow(Atom, WindowPtr);
++
++ pWin = nxagentGetClipboardWindow(stuff->property, NULL);
++ }
++
++ if (pWin == NULL)
++#endif
+ pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
+ SecurityWriteAccess);
+ if (!pWin)
+@@ -261,6 +303,18 @@
+ }
+ #endif
+
++#ifdef NXAGENT_ARTSD
++ {
++ /* Do not process MCOPGLOBALS property changes,
++ they are already set reflecting the server side settings.
++ Just return success.
++ */
++ extern Atom mcop_local_atom;
++ if (stuff->property == mcop_local_atom)
++ return client->noClientException;
++ }
++#endif
++
+ #ifdef LBX
+ err = LbxChangeWindowProperty(client, pWin, stuff->property, stuff->type,
+ (int)format, (int)mode, len, TRUE, (pointer)&stuff[1], TRUE, NULL);
+@@ -271,7 +325,23 @@
+ if (err != Success)
+ return err;
+ else
+- return client->noClientException;
++ {
++ if (nxagentOption(Rootless) == 1)
++ {
++ nxagentExportProperty(pWin, stuff->property, stuff->type, (int) format,
++ (int) mode, len, (pointer) &stuff[1]);
++ }
++
++ nxagentGuessClientHint(client, stuff->property, (char *) &stuff[1]);
++
++ nxagentGuessShadowHint(client, stuff->property);
++
++ #ifdef NX_DEBUG_INPUT
++ nxagentGuessDumpInputInfo(client, stuff->property, (char *) &stuff[1]);
++ #endif
++
++ return client->noClientException;
++ }
+ }
+
+ int
+@@ -289,10 +359,23 @@
+ int sizeInBytes;
+ int totalSize;
+ pointer data;
++ int copySize;
+
+ sizeInBytes = format>>3;
+ totalSize = len * sizeInBytes;
+
++ copySize = nxagentOption(CopyBufferSize);
++
++ if (copySize != COPY_UNLIMITED && property == clientCutProperty)
++ {
++ if (totalSize > copySize)
++ {
++ totalSize = copySize;
++ totalSize = totalSize - (totalSize % sizeInBytes);
++ len = totalSize / sizeInBytes;
++ }
++ }
++
+ /* first see if property already exists */
+
+ pProp = wUserProps (pWin);
+@@ -491,6 +574,11 @@
+ int
+ ProcGetProperty(ClientPtr client)
+ {
++ #ifdef NXAGENT_SERVER
++ nxagentWMStateRec wmState;
++ nxagentWMStateRec *wmsP = &wmState;
++ #endif
++
+ PropertyPtr pProp, prevProp;
+ unsigned long n, len, ind;
+ WindowPtr pWin;
+@@ -498,6 +586,7 @@
+ REQUEST(xGetPropertyReq);
+
+ REQUEST_SIZE_MATCH(xGetPropertyReq);
++
+ if (stuff->delete)
+ UpdateCurrentTime();
+ pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
+@@ -533,6 +622,59 @@
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
++
++ #ifdef NXAGENT_SERVER
++
++ /*
++ * Creating a reply for WM_STATE property if it doesn't exist.
++ * This is intended to allow drag & drop work in JAva 1.6 when
++ * the agent is connected to NXWin in multiwindow mode.
++ */
++
++ if (nxagentOption(Rootless) &&
++ nxagentWindowTopLevel(pWin) &&
++ (!pProp) &&
++ strcmp(NameForAtom(stuff->property), "WM_STATE") == 0)
++ {
++ wmState.state = 1;
++ wmState.icon = None;
++
++ if (ChangeWindowProperty(pWin, stuff->property, stuff->property, 32, 0, 2, &wmState, 1) == Success)
++ {
++ nxagentExportProperty(pWin, stuff->property, stuff->property, 32, 0, 2, &wmState);
++ }
++
++ n = 8;
++ ind = stuff->longOffset << 2;
++
++ if (n < ind)
++ {
++ client->errorValue = stuff->longOffset;
++ return BadValue;
++ }
++
++ len = min(n - ind, 4 * stuff->longLength);
++
++ reply.bytesAfter = n - (ind + len);
++ reply.length = (len + 3) >> 2;
++
++ reply.format = 32;
++ reply.nItems = len / 4;
++ reply.propertyType = stuff->property;
++
++ WriteReplyToClient(client, sizeof(xGenericReply), &reply);
++
++ if (len)
++ {
++ client->pSwapReplyFunc = (ReplySwapPtr)CopySwap32Write;
++
++ WriteSwappedDataToClient(client, len, (char *)wmsP + ind);
++ }
++
++ return(client->noClientException);
++ }
++ #endif
++
+ if (!pProp)
+ return NullPropertyReply(client, None, 0, &reply);
+
+@@ -643,6 +785,126 @@
+ return(client->noClientException);
+ }
+
++#ifdef NXAGENT_CLIPBOARD
++/* GetWindowProperty clipboard use only */
++int
++GetWindowProperty(pWin, property, longOffset, longLength, delete,
++ type, actualType, format, nItems, bytesAfter, propData )
++ WindowPtr pWin;
++ Atom property;
++ long longOffset;
++ long longLength;
++ Bool delete;
++ Atom type;
++ Atom *actualType;
++ int *format;
++ unsigned long *nItems;
++ unsigned long *bytesAfter;
++ unsigned char **propData;
++{
++ PropertyPtr pProp, prevProp;
++ unsigned long n, len, ind;
++
++ if (!pWin)
++ return BadWindow;
++
++
++ if (!ValidAtom(property))
++ {
++ return(BadAtom);
++ }
++ if ((type != AnyPropertyType) && !ValidAtom(type))
++ {
++ return(BadAtom);
++ }
++
++ pProp = wUserProps (pWin);
++ prevProp = (PropertyPtr)NULL;
++
++ while (pProp)
++ {
++ if (pProp->propertyName == property)
++ break;
++ prevProp = pProp;
++ pProp = pProp->next;
++ }
++
++
++ if (!pProp)
++ return (BadAtom);
++
++ /* If the request type and actual type don't match. Return the
++ property information, but not the data. */
++
++ if (((type != pProp->type) &&
++ (type != AnyPropertyType))
++ )
++ {
++ *bytesAfter = pProp->size;
++ *format = pProp->format;
++ *nItems = 0;
++ *actualType = pProp->type;
++ return(Success);
++ }
++
++/*
++ * Return type, format, value to client
++ */
++ n = (pProp->format/8) * pProp->size; /* size (bytes) of prop */
++ ind = longOffset << 2;
++
++ /* If longOffset is invalid such that it causes "len" to
++ be negative, it's a value error. */
++
++ if (n < ind)
++ {
++ return BadValue;
++ }
++
++ len = min(n - ind, 4 * longLength);
++
++ *bytesAfter = n - (ind + len);
++ *format = pProp->format;
++ *nItems = len / (pProp->format / 8 );
++ *actualType = pProp->type;
++
++ if (delete && (*bytesAfter == 0))
++ { /* send the event */
++ xEvent event;
++
++ event.u.u.type = PropertyNotify;
++ event.u.property.window = pWin->drawable.id;
++ event.u.property.state = PropertyDelete;
++ event.u.property.atom = pProp->propertyName;
++ event.u.property.time = currentTime.milliseconds;
++ DeliverEvents(pWin, &event, 1, (WindowPtr)NULL);
++ }
++
++ if (len)
++ {
++ *propData = (unsigned char *)(pProp->data) + ind;
++ }
++
++ if (delete && (*bytesAfter == 0))
++ { /* delete the Property */
++#ifdef LBX
++ if (pProp->tag_id)
++ TagDeleteTag(pProp->tag_id);
++#endif
++ if (prevProp == (PropertyPtr)NULL) /* takes care of head */
++ {
++ if (!(pWin->optional->userProps = pProp->next))
++ CheckWindowOptionalNeed (pWin);
++ }
++ else
++ prevProp->next = pProp->next;
++ xfree(pProp->data);
++ xfree(pProp);
++ }
++ return(Success);
++}
++#endif
++
+ int
+ ProcListProperties(ClientPtr client)
+ {
+@@ -727,3 +989,4 @@
+ else
+ return(result);
+ }
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXrender.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXrender.c.X.original
new file mode 100644
index 000000000..62c9e339f
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXrender.c.X.original
@@ -0,0 +1,948 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXrender.c.X.original 2015-02-13 14:03:44.748441432 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXrender.c 2015-02-10 19:13:13.800686036 +0100
+@@ -24,6 +24,23 @@
+ * Author: Keith Packard, SuSE, Inc.
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #define NEED_REPLIES
+ #define NEED_EVENTS
+ #ifdef HAVE_DIX_CONFIG_H
+@@ -44,8 +61,6 @@
+ #include "servermd.h"
+ #include <X11/extensions/render.h>
+ #include <X11/extensions/renderproto.h>
+-#include "picturestr.h"
+-#include "glyphstr.h"
+ #include <X11/Xfuncproto.h>
+ #include "cursorstr.h"
+ #ifdef EXTMODULE
+@@ -56,6 +71,95 @@
+ #define UINT32_MAX 0xffffffffU
+ #endif
+
++#include "NXpicturestr.h"
++#include "NXglyphstr.h"
++
++#include "Trap.h"
++
++#include "Render.h"
++#include "Pixmaps.h"
++#include "Options.h"
++#include "Screen.h"
++#include "Cursor.h"
++
++/*
++ * Set here the required log level.
++ */
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++
++#ifdef TEST
++#include "Literals.h"
++#endif
++
++/*
++ * From NXmiglyph.c.
++ */
++
++void miGlyphExtents(int nlist, GlyphListPtr list,
++ GlyphPtr *glyphs, BoxPtr extents);
++
++/*
++ * From NXmitrap.c.
++ */
++
++void miTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box);
++
++/*
++ * Functions from Render.c.
++ */
++
++int nxagentCursorSaveRenderInfo(ScreenPtr, CursorPtr);
++void nxagentCursorPostSaveRenderInfo(CursorPtr, ScreenPtr, PicturePtr, int, int);
++int nxagentRenderRealizeCursor(ScreenPtr, CursorPtr);
++int nxagentCreatePicture(PicturePtr, Mask);
++void nxagentChangePicture(PicturePtr, Mask);
++int nxagentChangePictureClip(PicturePtr, int, int, xRectangle *, int, int);
++void nxagentComposite(CARD8, PicturePtr, PicturePtr, PicturePtr, INT16, INT16,
++ INT16, INT16, INT16, INT16, CARD16, CARD16);
++void nxagentCompositeRects(CARD8, PicturePtr, xRenderColor *, int, xRectangle *);
++void nxagentCreateGlyphSet(GlyphSetPtr glyphSet);
++void nxagentReferenceGlyphSet(GlyphSetPtr glyphSet);
++void nxagentFreeGlyphs(GlyphSetPtr glyphSet, CARD32 *gids, int nglyph);
++void nxagentFreeGlyphSet(GlyphSetPtr glyphSet);
++void nxagentSetPictureTransform(PicturePtr pPicture, pointer transform);
++void nxagentSetPictureFilter(PicturePtr pPicture, char *filter, int name_size,
++ pointer params, int nparams);
++void nxagentTrapezoids(CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat,
++ INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid *traps);
++
++void nxagentRenderCreateSolidFill(PicturePtr pPicture, xRenderColor *color);
++
++void nxagentRenderCreateLinearGradient(PicturePtr pPicture, xPointFixed *p1,
++ xPointFixed *p2, int nStops,
++ xFixed *stops,
++ xRenderColor *colors);
++
++void nxagentRenderCreateRadialGradient(PicturePtr pPicture, xPointFixed *inner,
++ xPointFixed *outer,
++ xFixed innerRadius,
++ xFixed outerRadius,
++ int nStops,
++ xFixed *stops,
++ xRenderColor *colors);
++
++void nxagentRenderCreateConicalGradient(PicturePtr pPicture,
++ xPointFixed *center,
++ xFixed angle, int nStops,
++ xFixed *stops,
++ xRenderColor *colors);
++
++
++/*
++ * The void pointer is actually a XGlyphElt8.
++ */
++
++void nxagentGlyphs(CARD8, PicturePtr, PicturePtr, PictFormatPtr,
++ INT16, INT16, int, void *, int, GlyphPtr *);
++
+ static int ProcRenderQueryVersion (ClientPtr pClient);
+ static int ProcRenderQueryPictFormats (ClientPtr pClient);
+ static int ProcRenderQueryPictIndexValues (ClientPtr pClient);
+@@ -290,8 +394,8 @@
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+- rep.majorVersion = RENDER_MAJOR;
+- rep.minorVersion = RENDER_MINOR;
++ rep.majorVersion = nxagentRenderVersionMajor;
++ rep.minorVersion = nxagentRenderVersionMinor;
+ if (client->swapped) {
+ swaps(&rep.sequenceNumber, n);
+ swapl(&rep.length, n);
+@@ -363,6 +467,8 @@
+ int n;
+ int numScreens;
+ int numSubpixel;
++
++ extern int nxagentAlphaEnabled;
+ /* REQUEST(xRenderQueryPictFormatsReq); */
+
+ REQUEST_SIZE_MATCH(xRenderQueryPictFormatsReq);
+@@ -439,7 +545,7 @@
+ pictForm->direct.greenMask = pFormat->direct.greenMask;
+ pictForm->direct.blue = pFormat->direct.blue;
+ pictForm->direct.blueMask = pFormat->direct.blueMask;
+- pictForm->direct.alpha = pFormat->direct.alpha;
++ pictForm->direct.alpha = nxagentAlphaEnabled ? pFormat->direct.alpha : 0;
+ pictForm->direct.alphaMask = pFormat->direct.alphaMask;
+ if (pFormat->type == PictTypeIndexed && pFormat->index.pColormap)
+ pictForm->colormap = pFormat->index.pColormap->mid;
+@@ -656,6 +762,8 @@
+ &error);
+ if (!pPicture)
+ return error;
++ nxagentCreatePicture(pPicture, stuff -> mask);
++
+ if (!AddResource (stuff->pid, PictureType, (pointer)pPicture))
+ return BadAlloc;
+ return Success;
+@@ -667,6 +775,7 @@
+ PicturePtr pPicture;
+ REQUEST(xRenderChangePictureReq);
+ int len;
++ int error;
+
+ REQUEST_AT_LEAST_SIZE(xRenderChangePictureReq);
+ VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess,
+@@ -676,8 +785,12 @@
+ if (Ones(stuff->mask) != len)
+ return BadLength;
+
+- return ChangePicture (pPicture, stuff->mask, (XID *) (stuff + 1),
++ error = ChangePicture (pPicture, stuff->mask, (XID *) (stuff + 1),
+ (DevUnion *) 0, client);
++
++ nxagentChangePicture(pPicture, stuff->mask);
++
++ return error;
+ }
+
+ static int
+@@ -694,13 +807,26 @@
+ if (!pPicture->pDrawable)
+ return BadDrawable;
+
+- nr = (client->req_len << 2) - sizeof(xRenderChangePictureReq);
++ /*
++ * The original code used sizeof(xRenderChangePictureReq).
++ * This was harmless, as both structures have the same size.
++ *
++ * nr = (client->req_len << 2) - sizeof(xRenderChangePictureReq);
++ */
++ nr = (client->req_len << 2) - sizeof(xRenderSetPictureClipRectanglesReq);
+ if (nr & 4)
+ return BadLength;
+ nr >>= 3;
+ result = SetPictureClipRects (pPicture,
+ stuff->xOrigin, stuff->yOrigin,
+ nr, (xRectangle *) &stuff[1]);
++ nxagentChangePictureClip (pPicture,
++ CT_NONE,
++ nr,
++ (xRectangle *) &stuff[1],
++ (int)stuff -> xOrigin,
++ (int)stuff -> yOrigin);
++
+ if (client->noClientException != Success)
+ return(client->noClientException);
+ else
+@@ -717,6 +843,7 @@
+
+ VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityDestroyAccess,
+ RenderErrBase + BadPicture);
++
+ FreeResource (stuff->picture, RT_NONE);
+ return(client->noClientException);
+ }
+@@ -733,6 +860,71 @@
+ return FALSE;
+ }
+
++/*
++ * Check if both pictures have drawables which are
++ * virtual pixmaps. See the corresponding define
++ * in NXpicture.c
++ */
++
++#define NXAGENT_PICTURE_ALWAYS_POINTS_TO_VIRTUAL
++
++#ifdef NXAGENT_PICTURE_ALWAYS_POINTS_TO_VIRTUAL
++
++#define nxagentCompositePredicate(pSrc, pDst) TRUE
++
++#else
++
++/*
++ * This is still under development. The final
++ * goal is to let pictures point to the real
++ * pixmaps instead of pointing to virtuals.
++ */
++
++int nxagentCompositePredicate(PicturePtr pSrc, PicturePtr pDst)
++{
++ PixmapPtr pPixmap1;
++ PixmapPtr pPixmap2;
++
++ pPixmap1 = (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP ?
++ ((PixmapPtr) pSrc -> pDrawable) : NULL);
++
++ pPixmap2 = (pDst -> pDrawable -> type == DRAWABLE_PIXMAP ?
++ ((PixmapPtr) pDst -> pDrawable) : NULL);
++
++ if (pPixmap1 == NULL || pPixmap2 == NULL)
++ {
++ #ifdef TEST
++ fprintf(stderr, "nxagentCompositePredicate: Case 0.\n");
++ #endif
++
++ return FALSE;
++ }
++ else
++ {
++ #ifdef TEST
++ fprintf(stderr, "nxagentCompositePredicate: Case 1.\n");
++ #endif
++
++ if (nxagentPixmapIsVirtual(pPixmap1) == 1 &&
++ nxagentPixmapIsVirtual(pPixmap2) == 1)
++ {
++ #ifdef TEST
++ fprintf(stderr, "nxagentCompositePredicate: Case 2.\n");
++ #endif
++
++ return TRUE;
++ }
++ }
++
++ #ifdef TEST
++ fprintf(stderr, "nxagentCompositePredicate: Case 3.\n");
++ #endif
++
++ return FALSE;
++}
++
++#endif
++
+ static int
+ ProcRenderComposite (ClientPtr client)
+ {
+@@ -753,9 +945,32 @@
+ RenderErrBase + BadPicture);
+ VERIFY_ALPHA (pMask, stuff->mask, client, SecurityReadAccess,
+ RenderErrBase + BadPicture);
++/*
++FIXME: Imported change from newest version of Xorg. Changed pSrc to pDst.
++
+ if ((pSrc->pDrawable && pSrc->pDrawable->pScreen != pDst->pDrawable->pScreen) ||
+ (pMask && pMask->pDrawable && pSrc->pDrawable->pScreen != pMask->pDrawable->pScreen))
+ return BadMatch;
++*/
++ if ((pSrc->pDrawable && pSrc->pDrawable->pScreen != pDst->pDrawable->pScreen) ||
++ (pMask && pMask->pDrawable && pDst->pDrawable->pScreen != pMask->pDrawable->pScreen))
++ return BadMatch;
++
++ ValidatePicture (pSrc);
++ if (pMask)
++ ValidatePicture (pMask);
++ ValidatePicture (pDst);
++
++ #ifdef NXAGENT_PICTURE_ALWAYS_POINTS_TO_VIRTUAL
++
++ if (nxagentCompositePredicate(pSrc, pDst))
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcRenderComposite: Going to composite with "
++ "source at [%p] mask at [%p] and destination at [%p].\n",
++ (void *) pSrc, (void *) pMask, (void *) pDst);
++ #endif
++
+ CompositePicture (stuff->op,
+ pSrc,
+ pMask,
+@@ -768,6 +983,78 @@
+ stuff->yDst,
+ stuff->width,
+ stuff->height);
++ }
++
++ #else
++
++ if (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP &&
++ pDst -> pDrawable -> type == DRAWABLE_PIXMAP &&
++ (!pMask || pMask -> pDrawable -> type == DRAWABLE_PIXMAP))
++ {
++ PixmapPtr pVirtualPixmapSrc;
++ PixmapPtr pVirtualPixmapDst;
++ PixmapPtr pVirtualPixmapMask;
++
++ PicturePtr pVirtualPictureSrc;
++ PicturePtr pVirtualPictureDst;
++ PicturePtr pVirtualPictureMask;
++
++ pVirtualPixmapSrc = (PixmapPtr) pSrc -> pDrawable;
++ pVirtualPictureSrc = nxagentPixmapPriv(pVirtualPixmapSrc) -> pPicture;
++
++ pVirtualPixmapDst = (PixmapPtr) pDst -> pDrawable;
++ pVirtualPictureDst = nxagentPixmapPriv(pVirtualPixmapDst) -> pPicture;
++
++ if (pMask)
++ {
++ pVirtualPixmapMask = (PixmapPtr) pMask -> pDrawable;
++ pVirtualPictureMask = nxagentPixmapPriv(pVirtualPixmapMask) -> pPicture;
++ }
++ else
++ {
++ pVirtualPixmapMask = NULL;
++ pVirtualPictureMask = NULL;
++ }
++
++ if (pVirtualPictureSrc && pVirtualPictureDst)
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcRenderComposite: Going to composite with "
++ "source at [%p] mask at [%p] and destination at [%p].\n",
++ (void *) pVirtualPixmapSrc, (void *) pVirtualPixmapMask,
++ (void *) pVirtualPixmapDst);
++ #endif
++
++ CompositePicture (stuff->op,
++ pVirtualPictureSrc,
++ pVirtualPictureMask,
++ pVirtualPictureDst,
++ stuff->xSrc,
++ stuff->ySrc,
++ stuff->xMask,
++ stuff->yMask,
++ stuff->xDst,
++ stuff->yDst,
++ stuff->width,
++ stuff->height);
++ }
++ }
++
++ #endif
++
++ nxagentComposite (stuff -> op,
++ pSrc,
++ pMask,
++ pDst,
++ stuff -> xSrc,
++ stuff -> ySrc,
++ stuff -> xMask,
++ stuff -> yMask,
++ stuff -> xDst,
++ stuff -> yDst,
++ stuff -> width,
++ stuff -> height);
++
+ return Success;
+ }
+
+@@ -818,9 +1105,33 @@
+ return BadLength;
+ ntraps /= sizeof (xTrapezoid);
+ if (ntraps)
++ {
++ if (pFormat != NULL)
++ {
++ nxagentTrapezoidExtents = (BoxPtr) xalloc(sizeof(BoxRec));
++
++ miTrapezoidBounds (ntraps, (xTrapezoid *) &stuff[1], nxagentTrapezoidExtents);
++ }
++
++ if (nxagentCompositePredicate(pSrc, pDst) == 1)
++ {
+ CompositeTrapezoids (stuff->op, pSrc, pDst, pFormat,
+ stuff->xSrc, stuff->ySrc,
+ ntraps, (xTrapezoid *) &stuff[1]);
++ }
++
++ nxagentTrapezoids (stuff->op, pSrc, pDst, pFormat,
++ stuff->xSrc, stuff->ySrc,
++ ntraps, (xTrapezoid *) &stuff[1]);
++
++ if (nxagentTrapezoidExtents != NullBox)
++ {
++ xfree(nxagentTrapezoidExtents);
++
++ nxagentTrapezoidExtents = NullBox;
++ }
++ }
++
+ return client->noClientException;
+ }
+
+@@ -1029,6 +1340,9 @@
+ return BadAlloc;
+ if (!AddResource (stuff->gsid, GlyphSetType, (pointer)glyphSet))
+ return BadAlloc;
++
++ nxagentCreateGlyphSet(glyphSet);
++
+ return Success;
+ }
+
+@@ -1052,6 +1366,9 @@
+ return RenderErrBase + BadGlyphSet;
+ }
+ glyphSet->refcnt++;
++
++ nxagentReferenceGlyphSet(glyphSet);
++
+ if (!AddResource (stuff->gsid, GlyphSetType, (pointer)glyphSet))
+ return BadAlloc;
+ return client->noClientException;
+@@ -1076,6 +1393,9 @@
+ client->errorValue = stuff->glyphset;
+ return RenderErrBase + BadGlyphSet;
+ }
++
++ nxagentFreeGlyphSet(glyphSet);
++
+ FreeResource (stuff->glyphset, RT_NONE);
+ return client->noClientException;
+ }
+@@ -1092,7 +1412,7 @@
+ REQUEST(xRenderAddGlyphsReq);
+ GlyphNewRec glyphsLocal[NLOCALGLYPH];
+ GlyphNewPtr glyphsBase, glyphs;
+- GlyphPtr glyph;
++ GlyphPtr glyph = NULL;
+ int remain, nglyphs;
+ CARD32 *gids;
+ xGlyphInfo *gi;
+@@ -1100,6 +1420,8 @@
+ int size;
+ int err = BadAlloc;
+
++ int totSizeImages;
++
+ REQUEST_AT_LEAST_SIZE(xRenderAddGlyphsReq);
+ glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client,
+ stuff->glyphset,
+@@ -1128,10 +1450,12 @@
+
+ glyphs = glyphsBase;
+
++ totSizeImages = 0;
+ gids = (CARD32 *) (stuff + 1);
+ gi = (xGlyphInfo *) (gids + nglyphs);
+ bits = (CARD8 *) (gi + nglyphs);
+ remain -= (sizeof (CARD32) + sizeof (xGlyphInfo)) * nglyphs;
++
+ while (remain >= 0 && nglyphs)
+ {
+ glyph = AllocateGlyph (gi, glyphSet->fdepth);
+@@ -1152,12 +1476,14 @@
+ if (size & 3)
+ size += 4 - (size & 3);
+ bits += size;
++ totSizeImages += size;
+ remain -= size;
+ gi++;
+ gids++;
+ glyphs++;
+ nglyphs--;
+ }
++
+ if (nglyphs || remain)
+ {
+ err = BadLength;
+@@ -1216,6 +1542,9 @@
+ }
+ nglyph = ((client->req_len << 2) - sizeof (xRenderFreeGlyphsReq)) >> 2;
+ gids = (CARD32 *) (stuff + 1);
++
++ nxagentFreeGlyphs(glyphSet, gids, nglyph);
++
+ while (nglyph-- > 0)
+ {
+ glyph = *gids++;
+@@ -1228,6 +1557,14 @@
+ return client->noClientException;
+ }
+
++typedef struct XGlyphElt8{
++ GlyphSet glyphset;
++ _Xconst char *chars;
++ int nchars;
++ int xOff;
++ int yOff;
++} XGlyphElt8;
++
+ static int
+ ProcRenderCompositeGlyphs (ClientPtr client)
+ {
+@@ -1248,6 +1585,8 @@
+ int size;
+ int n;
+
++ XGlyphElt8 *elements, *elementsBase;
++
+ REQUEST(xRenderCompositeGlyphsReq);
+
+ REQUEST_AT_LEAST_SIZE(xRenderCompositeGlyphsReq);
+@@ -1335,9 +1674,15 @@
+ if (!listsBase)
+ return BadAlloc;
+ }
++
++ elementsBase = xalloc(nlist * sizeof(XGlyphElt8));
++ if (!elementsBase)
++ return BadAlloc;
++
+ buffer = (CARD8 *) (stuff + 1);
+ glyphs = glyphsBase;
+ lists = listsBase;
++ elements = elementsBase;
+ while (buffer + sizeof (xGlyphElt) < end)
+ {
+ elt = (xGlyphElt *) buffer;
+@@ -1345,6 +1690,11 @@
+
+ if (elt->len == 0xff)
+ {
++ #ifdef DEBUG
++ fprintf(stderr, "ProcRenderCompositeGlyphs: Glyphset change with base size [%d].\n",
++ size);
++ #endif
++
+ if (buffer + sizeof (GlyphSet) < end)
+ {
+ memcpy(&gs, buffer, sizeof(GlyphSet));
+@@ -1370,6 +1720,22 @@
+ lists->yOff = elt->deltay;
+ lists->format = glyphSet->format;
+ lists->len = 0;
++
++ if (glyphSet -> remoteID == 0)
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcRenderCompositeGlyphs: Going to reconnect glyphset at [%p].\n",
++ (void *) glyphSet);
++ #endif
++
++ nxagentReconnectGlyphSet(glyphSet, (XID) 0, (void*) NULL);
++ }
++
++ elements -> glyphset = glyphSet -> remoteID;
++ elements -> chars = (char *) buffer;
++ elements -> nchars = elt->len;
++ elements -> xOff = elt->deltax;
++ elements -> yOff = elt->deltay;
+ n = elt->len;
+ while (n--)
+ {
+@@ -1396,26 +1762,65 @@
+ if (space & 3)
+ buffer += 4 - (space & 3);
+ lists++;
++ elements++;
+ }
+ }
+ if (buffer > end)
+ return BadLength;
+
+- CompositeGlyphs (stuff->op,
+- pSrc,
+- pDst,
+- pFormat,
+- stuff->xSrc,
+- stuff->ySrc,
+- nlist,
+- listsBase,
+- glyphsBase);
++ /*
++ * We need to know the glyphs extents to synchronize
++ * the drawables involved in the composite text ope-
++ * ration. Also we need to synchronize only the back-
++ * ground of the text we are going to render, so the
++ * operations on the framebuffer must be executed
++ * after the X requests.
++ */
++
++ nxagentGlyphsExtents = (BoxPtr) xalloc(sizeof(BoxRec));
++
++ miGlyphExtents(nlist, listsBase, glyphsBase, nxagentGlyphsExtents);
++
++ nxagentGlyphs(stuff -> op,
++ pSrc,
++ pDst,
++ pFormat,
++ stuff -> xSrc,
++ stuff -> ySrc,
++ nlist,
++ elementsBase,
++ size,
++ glyphsBase);
++
++ if (nxagentCompositePredicate(pSrc, pDst) == 1)
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcRenderCompositeGlyphs: Going to composite glyphs with "
++ "source at [%p] and destination at [%p].\n",
++ (void *) pSrc, (void *) pDst);
++ #endif
++
++ CompositeGlyphs(stuff -> op,
++ pSrc,
++ pDst,
++ pFormat,
++ stuff -> xSrc,
++ stuff -> ySrc,
++ nlist,
++ listsBase,
++ glyphsBase);
++ }
++
++ xfree(nxagentGlyphsExtents);
++ nxagentGlyphsExtents = NullBox;
+
+ if (glyphsBase != glyphsLocal)
+ DEALLOCATE_LOCAL (glyphsBase);
+ if (listsBase != listsLocal)
+ DEALLOCATE_LOCAL (listsBase);
+
++ xfree(elementsBase);
++
+ return client->noClientException;
+ }
+
+@@ -1447,6 +1852,13 @@
+ &stuff->color,
+ things,
+ (xRectangle *) &stuff[1]);
++
++ ValidatePicture (pDst);
++ nxagentCompositeRects(stuff -> op,
++ pDst,
++ &stuff -> color,
++ things,
++ (xRectangle *) &stuff[1]);
+
+ return client->noClientException;
+ }
+@@ -1495,6 +1907,8 @@
+ CARD32 twocolor[3];
+ int ncolor;
+
++ RealizeCursorProcPtr saveRealizeCursor;
++
+ REQUEST_SIZE_MATCH (xRenderCreateCursorReq);
+ LEGAL_NEW_RESOURCE(stuff->cid, client);
+
+@@ -1662,6 +2076,20 @@
+ cm.height = height;
+ cm.xhot = stuff->x;
+ cm.yhot = stuff->y;
++
++ /*
++ * This cursor uses RENDER, so we make sure
++ * that it is allocated in a way that allows
++ * the mi and dix layers to handle it but we
++ * later create it on the server by mirror-
++ * ing the RENDER operation we got from the
++ * client.
++ */
++
++ saveRealizeCursor = pScreen -> RealizeCursor;
++
++ pScreen -> RealizeCursor = nxagentCursorSaveRenderInfo;
++
+ pCursor = AllocCursorARGB (srcbits, mskbits, argbbits, &cm,
+ GetColor(twocolor[0], 16),
+ GetColor(twocolor[0], 8),
+@@ -1669,7 +2097,27 @@
+ GetColor(twocolor[1], 16),
+ GetColor(twocolor[1], 8),
+ GetColor(twocolor[1], 0));
+- if (pCursor && AddResource(stuff->cid, RT_CURSOR, (pointer)pCursor))
++
++ pScreen -> RealizeCursor = saveRealizeCursor;
++
++ /*
++ * Store into the private data members the
++ * information needed to recreate it at
++ * reconnection. This is done in two steps
++ * as in the first step we don't have the
++ * picture info.
++ */
++
++ if (pCursor == NULL)
++ {
++ return BadAlloc;
++ }
++
++ nxagentCursorPostSaveRenderInfo(pCursor, pScreen, pSrc, stuff -> x, stuff -> y);
++
++ nxagentRenderRealizeCursor(pScreen, pCursor);
++
++ if (AddResource(stuff->cid, RT_CURSOR, (pointer)pCursor))
+ return (client->noClientException);
+ return BadAlloc;
+ }
+@@ -1685,6 +2133,9 @@
+ VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess,
+ RenderErrBase + BadPicture);
+ result = SetPictureTransform (pPicture, (PictTransform *) &stuff->transform);
++
++ nxagentSetPictureTransform(pPicture, &stuff->transform);
++
+ if (client->noClientException != Success)
+ return(client->noClientException);
+ else
+@@ -1785,7 +2236,7 @@
+ {
+ register int n;
+
+- for (i = 0; i < reply->numAliases; i++)
++ for (i = 0; i < (int)reply->numAliases; i++)
+ {
+ swaps (&aliases[i], n);
+ }
+@@ -1817,6 +2268,9 @@
+ params = (xFixed *) (name + ((stuff->nbytes + 3) & ~3));
+ nparams = ((xFixed *) stuff + client->req_len) - params;
+ result = SetPictureFilter (pPicture, name, stuff->nbytes, params, nparams);
++
++ nxagentSetPictureFilter(pPicture, name, stuff->nbytes, params, nparams);
++
+ return result;
+ }
+
+@@ -1859,7 +2313,14 @@
+ xfree (cursors);
+ if (ret != Success)
+ return ret;
+-
++
++ nxagentAnimCursorBits = pCursor -> bits;
++
++ for (i = 0; i < MAXSCREENS; i++)
++ {
++ pCursor -> devPriv[i] = NULL;
++ }
++
+ if (AddResource (stuff->cid, RT_CURSOR, (pointer)pCursor))
+ return client->noClientException;
+ return BadAlloc;
+@@ -1901,6 +2362,11 @@
+ pPicture = CreateSolidPicture(stuff->pid, &stuff->color, &error);
+ if (!pPicture)
+ return error;
++ /* AGENT SERVER */
++
++ nxagentRenderCreateSolidFill(pPicture, &stuff -> color);
++
++ /* AGENT SERVER */
+ if (!AddResource (stuff->pid, PictureType, (pointer)pPicture))
+ return BadAlloc;
+ return Success;
+@@ -1932,6 +2398,12 @@
+ stuff->nStops, stops, colors, &error);
+ if (!pPicture)
+ return error;
++ /* AGENT SERVER */
++
++ nxagentRenderCreateLinearGradient(pPicture, &stuff->p1, &stuff->p2,
++ stuff->nStops, stops, colors);
++
++ /* AGENT SERVER */
+ if (!AddResource (stuff->pid, PictureType, (pointer)pPicture))
+ return BadAlloc;
+ return Success;
+@@ -1962,6 +2434,14 @@
+ stuff->nStops, stops, colors, &error);
+ if (!pPicture)
+ return error;
++ /* AGENT SERVER */
++
++ nxagentRenderCreateRadialGradient(pPicture, &stuff->inner, &stuff->outer,
++ stuff->inner_radius,
++ stuff->outer_radius,
++ stuff->nStops, stops, colors);
++
++ /* AGENT SERVER */
+ if (!AddResource (stuff->pid, PictureType, (pointer)pPicture))
+ return BadAlloc;
+ return Success;
+@@ -1991,6 +2471,13 @@
+ stuff->nStops, stops, colors, &error);
+ if (!pPicture)
+ return error;
++ /* AGENT SERVER */
++
++ nxagentRenderCreateConicalGradient(pPicture, &stuff->center,
++ stuff->angle, stuff->nStops, stops,
++ colors);
++
++ /* AGENT SERVER */
+ if (!AddResource (stuff->pid, PictureType, (pointer)pPicture))
+ return BadAlloc;
+ return Success;
+@@ -2000,10 +2487,41 @@
+ static int
+ ProcRenderDispatch (ClientPtr client)
+ {
++ int result;
++
+ REQUEST(xReq);
++
++ /*
++ * Let the client fail if we are
++ * hiding the RENDER extension.
++ */
+
++ if (nxagentRenderTrap)
++ {
++ return BadRequest;
++ }
++
+ if (stuff->data < RenderNumberRequests)
+- return (*ProcRenderVector[stuff->data]) (client);
++ {
++ #ifdef TEST
++ fprintf(stderr, "ProcRenderDispatch: Request [%s] OPCODE#%d.\n",
++ nxagentRenderRequestLiteral[stuff->data], stuff->data);
++ #endif
++
++ /*
++ * Set the nxagentGCTrap flag while
++ * dispatching a render operation to
++ * avoid reentrancy in GCOps.c.
++ */
++
++ nxagentGCTrap = 1;
++
++ result = (*ProcRenderVector[stuff->data]) (client);
++
++ nxagentGCTrap = 0;
++
++ return result;
++ }
+ else
+ return BadRequest;
+ }
+@@ -2253,7 +2771,7 @@
+ SProcRenderAddGlyphs (ClientPtr client)
+ {
+ register int n;
+- register int i;
++ register unsigned int i;
+ CARD32 *gids;
+ void *end;
+ xGlyphInfo *gi;
+@@ -2595,10 +3113,36 @@
+ static int
+ SProcRenderDispatch (ClientPtr client)
+ {
++ int result;
++
+ REQUEST(xReq);
+
++ /*
++ * Let the client fail if we are
++ * hiding the RENDER extension.
++ */
++
++ if (nxagentRenderTrap)
++ {
++ return BadRequest;
++ }
++
+ if (stuff->data < RenderNumberRequests)
+- return (*SProcRenderVector[stuff->data]) (client);
++ {
++ /*
++ * Set the nxagentGCTrap flag while
++ * dispatching a render operation to
++ * avoid reentrancy in GCOps.c.
++ */
++
++ nxagentGCTrap = 1;
++
++ result = (*SProcRenderVector[stuff->data]) (client);
++
++ nxagentGCTrap = 0;
++
++ return result;
++ }
+ else
+ return BadRequest;
+ }
+@@ -3314,3 +3858,4 @@
+ }
+
+ #endif /* PANORAMIX */
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXresource.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXresource.c.X.original
new file mode 100644
index 000000000..3c7f45e46
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXresource.c.X.original
@@ -0,0 +1,426 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXresource.c.X.original 2015-02-13 14:03:44.748441432 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXresource.c 2015-02-10 19:13:13.820685287 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /************************************************************
+
+ Copyright 1987, 1998 The Open Group
+@@ -125,6 +142,20 @@
+ #endif
+ #include <assert.h>
+
++#ifdef NXAGENT_SERVER
++
++#include "Agent.h"
++#include "Font.h"
++#include "Pixmaps.h"
++#include "GCs.h"
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++
++#endif
++
+ static void RebuildTable(
+ int /*client*/
+ );
+@@ -170,6 +201,10 @@
+
+ #endif
+
++#ifdef NXAGENT_SERVER
++static int nxagentResChangedFlag = 0;
++#endif
++
+ RESTYPE
+ CreateNewResourceType(DeleteType deleteFunc)
+ {
+@@ -422,13 +457,107 @@
+ return id;
+ }
+
++#ifdef NXAGENT_SERVER
++
++int nxagentFindClientResource(int client, RESTYPE type, pointer value)
++{
++ ResourcePtr pResource;
++ ResourcePtr *resources;
++
++ int i;
++
++ for (i = 0; i < clientTable[client].buckets; i++)
++ {
++ resources = clientTable[client].resources;
++
++ for (pResource = resources[i]; pResource; pResource = pResource -> next)
++ {
++ if (pResource -> type == type && pResource -> value == value)
++ {
++ #ifdef TEST
++ fprintf(stderr, "nxagentFindClientResource: Found resource [%p] type [%lu] "
++ "for client [%d].\n", (void *) value,
++ pResource -> type, client);
++ #endif
++
++ return 1;
++ }
++ }
++ }
++
++ return 0;
++}
++
++int nxagentSwitchResourceType(int client, RESTYPE type, pointer value)
++{
++ ResourcePtr pResource;
++ ResourcePtr *resources;
++
++ RESTYPE internalType = 0;
++
++ int i;
++
++ if (type == RT_PIXMAP)
++ {
++ internalType = RT_NX_PIXMAP;
++ }
++ else if (type == RT_GC)
++ {
++ internalType = RT_NX_GC;
++ }
++ else if (type == RT_FONT)
++ {
++ internalType = RT_NX_FONT;
++ }
++ else
++ {
++ return 0;
++ }
++
++ if (client == serverClient -> index)
++ {
++ #ifdef TEST
++ fprintf(stderr, "nxagentSwitchResourceType: Requesting client is [%d]. Skipping the resource switch.\n",
++ client);
++ #endif
++
++ return 0;
++ }
++
++ for (i = 0; i < clientTable[serverClient -> index].buckets; i++)
++ {
++ resources = clientTable[serverClient -> index].resources;
++
++ for (pResource = resources[i]; pResource; pResource = pResource -> next)
++ {
++ if (pResource -> type == internalType &&
++ pResource -> value == value)
++ {
++ #ifdef TEST
++ fprintf(stderr, "nxagentSwitchResourceType: Changing resource [%p] type from [%lu] to "
++ "[%lu] for server client [%d].\n", (void *) value,
++ (unsigned long) pResource -> type, (unsigned long) type, serverClient -> index);
++ #endif
++
++ FreeResource(pResource -> id, RT_NONE);
++
++ return 1;
++ }
++ }
++ }
++
++ return 0;
++}
++
++#endif
++
+ Bool
+ AddResource(XID id, RESTYPE type, pointer value)
+ {
+ int client;
+ register ClientResourceRec *rrec;
+ register ResourcePtr res, *head;
+-
++
+ client = CLIENT_ID(id);
+ rrec = &clientTable[client];
+ if (!rrec->buckets)
+@@ -437,6 +566,18 @@
+ (unsigned long)id, type, (unsigned long)value, client);
+ FatalError("client not in use\n");
+ }
++
++#ifdef NXAGENT_SERVER
++
++ nxagentSwitchResourceType(client, type, value);
++
++ #ifdef TEST
++ fprintf(stderr, "AddResource: Adding resource for client [%d] type [%lu] value [%p] id [%lu].\n",
++ client, (unsigned long) type, (void *) value, (unsigned long) id);
++ #endif
++
++#endif
++
+ if ((rrec->elements >= 4*rrec->buckets) &&
+ (rrec->hashsize < MAXHASHSIZE))
+ RebuildTable(client);
+@@ -453,6 +594,9 @@
+ res->value = value;
+ *head = res;
+ rrec->elements++;
++ #ifdef NXAGENT_SERVER
++ nxagentResChangedFlag = 1;
++ #endif
+ if (!(id & SERVER_BIT) && (id >= rrec->expectID))
+ rrec->expectID = id + 1;
+ return TRUE;
+@@ -517,6 +661,14 @@
+ int elements;
+ Bool gotOne = FALSE;
+
++#ifdef NXAGENT_SERVER
++
++ #ifdef TEST
++ fprintf(stderr, "FreeResource: Freeing resource id [%lu].\n", (unsigned long) id);
++ #endif
++
++#endif
++
+ if (((cid = CLIENT_ID(id)) < MAXCLIENTS) && clientTable[cid].buckets)
+ {
+ head = &clientTable[cid].resources[Hash(cid, id)];
+@@ -530,6 +682,9 @@
+ RESTYPE rtype = res->type;
+ *prev = res->next;
+ elements = --*eltptr;
++ #ifdef NXAGENT_SERVER
++ nxagentResChangedFlag = 1;
++ #endif
+ if (rtype & RC_CACHED)
+ FlushClientCaches(res->id);
+ if (rtype != skipDeleteFuncType)
+@@ -570,6 +725,9 @@
+ if (res->id == id && res->type == type)
+ {
+ *prev = res->next;
++ #ifdef NXAGENT_SERVER
++ nxagentResChangedFlag = 1;
++ #endif
+ if (type & RC_CACHED)
+ FlushClientCaches(res->id);
+ if (!skipFree)
+@@ -634,10 +792,28 @@
+ int i, elements;
+ register int *eltptr;
+
++ #ifdef NXAGENT_SERVER
++ register ResourcePtr **resptr;
++ #endif
++
+ if (!client)
+ client = serverClient;
+
++/*
++ * If func triggers a resource table
++ * rebuild then restart the loop.
++ */
++
++#ifdef NXAGENT_SERVER
++RestartLoop:
++#endif
++
+ resources = clientTable[client->index].resources;
++
++ #ifdef NXAGENT_SERVER
++ resptr = &clientTable[client->index].resources;
++ #endif
++
+ eltptr = &clientTable[client->index].elements;
+ for (i = 0; i < clientTable[client->index].buckets; i++)
+ {
+@@ -646,8 +822,44 @@
+ next = this->next;
+ if (!type || this->type == type) {
+ elements = *eltptr;
++
++ /*
++ * FIXME:
++ * It is not safe to let a function change the resource
++ * table we are reading!
++ */
++
++ #ifdef NXAGENT_SERVER
++ nxagentResChangedFlag = 0;
++ #endif
+ (*func)(this->value, this->id, cdata);
++
++ /*
++ * Avoid that a call to RebuildTable() could invalidate the
++ * pointer. This is safe enough, because in RebuildTable()
++ * the new pointer is allocated just before the old one is
++ * freed, so it can't point to the same address.
++ */
++
++ #ifdef NXAGENT_SERVER
++ if (*resptr != resources)
++ goto RestartLoop;
++ #endif
++
++ /*
++ * It's not enough to check if the number of elements has
++ * changed, beacause it could happen that the number of
++ * resources that have been added matches the number of
++ * the freed ones.
++ * 'nxagentResChangedFlag' is set if a resource has been
++ * added or freed.
++ */
++
++ #ifdef NXAGENT_SERVER
++ if (*eltptr != elements || nxagentResChangedFlag)
++ #else
+ if (*eltptr != elements)
++ #endif
+ next = resources[i]; /* start over */
+ }
+ }
+@@ -665,10 +877,28 @@
+ int i, elements;
+ register int *eltptr;
+
++ #ifdef NXAGENT_SERVER
++ register ResourcePtr **resptr;
++ #endif
++
+ if (!client)
+ client = serverClient;
+
++/*
++ * If func triggers a resource table
++ * rebuild then restart the loop.
++ */
++
++#ifdef NXAGENT_SERVER
++RestartLoop:
++#endif
++
+ resources = clientTable[client->index].resources;
++
++ #ifdef NXAGENT_SERVER
++ resptr = &clientTable[client->index].resources;
++ #endif
++
+ eltptr = &clientTable[client->index].elements;
+ for (i = 0; i < clientTable[client->index].buckets; i++)
+ {
+@@ -676,8 +906,44 @@
+ {
+ next = this->next;
+ elements = *eltptr;
++
++ /*
++ * FIXME:
++ * It is not safe to let a function change the resource
++ * table we are reading!
++ */
++
++ #ifdef NXAGENT_SERVER
++ nxagentResChangedFlag = 0;
++ #endif
+ (*func)(this->value, this->id, this->type, cdata);
++
++ /*
++ * Avoid that a call to RebuildTable() could invalidate the
++ * pointer. This is safe enough, because in RebuildTable()
++ * the new pointer is allocated just before the old one is
++ * freed, so it can't point to the same address.
++ */
++
++ #ifdef NXAGENT_SERVER
++ if (*resptr != resources)
++ goto RestartLoop;
++ #endif
++
++ /*
++ * It's not enough to check if the number of elements has
++ * changed, beacause it could happen that the number of
++ * resources that have been added matches the number of
++ * the freed ones.
++ * 'nxagentResChangedFlag' is set if a resource has been
++ * added or freed.
++ */
++
++ #ifdef NXAGENT_SERVER
++ if (*eltptr != elements || nxagentResChangedFlag)
++ #else
+ if (*eltptr != elements)
++ #endif
+ next = resources[i]; /* start over */
+ }
+ }
+@@ -695,15 +961,44 @@
+ ResourcePtr this;
+ int i;
+
++ #ifdef NXAGENT_SERVER
++ ResourcePtr **resptr;
++ Bool res;
++ #endif
++
+ if (!client)
+ client = serverClient;
+
++/*
++ * If func triggers a resource table
++ * rebuild then restart the loop.
++ */
++
++#ifdef NXAGENT_SERVER
++RestartLoop:
++#endif
++
+ resources = clientTable[client->index].resources;
++
++ #ifdef NXAGENT_SERVER
++ resptr = &clientTable[client->index].resources;
++ #endif
++
+ for (i = 0; i < clientTable[client->index].buckets; i++) {
+ for (this = resources[i]; this; this = this->next) {
+ if (!type || this->type == type) {
++ #ifdef NXAGENT_SERVER
++ res = (*func)(this->value, this->id, cdata);
++
++ if (*resptr != resources)
++ goto RestartLoop;
++
++ if (res)
++ return this->value;
++ #else
+ if((*func)(this->value, this->id, cdata))
+ return this->value;
++ #endif
+ }
+ }
+ }
+@@ -952,3 +1247,4 @@
+ }
+
+ #endif /* XCSECURITY */
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXshm.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXshm.c.X.original
new file mode 100644
index 000000000..ecc5d490c
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXshm.c.X.original
@@ -0,0 +1,373 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXshm.c.X.original 2015-02-13 14:03:44.748441432 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXshm.c 2015-02-10 19:13:13.812685587 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/programs/Xserver/Xext/shm.c,v 3.41 2003/12/17 23:28:56 alanh Exp $ */
+ /************************************************************
+
+@@ -73,6 +90,31 @@
+
+ #include "modinit.h"
+
++#include "Trap.h"
++#include "Agent.h"
++#include "Drawable.h"
++#include "Pixmaps.h"
++
++/*
++ * Set here the required log level.
++ */
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++
++#ifdef TEST
++#include "Literals.h"
++#endif
++
++extern void fbGetImage(DrawablePtr pDrw, int x, int y, int w, int h,
++ unsigned int format, unsigned long planeMask, char *d);
++
++extern void fbPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
++ int x, int y, int w, int h, int leftPad, int format,
++ char *pImage);
++
+ typedef struct _ShmDesc {
+ struct _ShmDesc *next;
+ int shmid;
+@@ -216,15 +258,25 @@
+ }
+ #endif
+
++ if (nxagentOption(SharedMemory) == False)
++ {
++ return;
++ }
++
+ sharedPixmaps = xFalse;
+ pixmapFormat = 0;
+ {
+- sharedPixmaps = xTrue;
++ sharedPixmaps = nxagentOption(SharedPixmaps);
+ pixmapFormat = shmPixFormat[0];
+ for (i = 0; i < screenInfo.numScreens; i++)
+ {
+ if (!shmFuncs[i])
++ {
++ #ifdef TEST
++ fprintf(stderr, "ShmExtensionInit: Registering shmFuncs as miFuncs.\n");
++ #endif
+ shmFuncs[i] = &miFuncs;
++ }
+ if (!shmFuncs[i]->CreatePixmap)
+ sharedPixmaps = xFalse;
+ if (shmPixFormat[i] && (shmPixFormat[i] != pixmapFormat))
+@@ -335,6 +387,9 @@
+ ShmRegisterFbFuncs(pScreen)
+ ScreenPtr pScreen;
+ {
++ #ifdef TEST
++ fprintf(stderr, "ShmRegisterFbFuncs: Registering shmFuncs as fbFuncs.\n");
++ #endif
+ shmFuncs[pScreen->myNum] = &fbFuncs;
+ }
+
+@@ -512,12 +567,17 @@
+ PixmapPtr pmap;
+ GCPtr putGC;
+
++ nxagentShmTrap = 0;
+ putGC = GetScratchGC(depth, dst->pScreen);
+ if (!putGC)
++ {
++ nxagentShmTrap = 1;
+ return;
++ }
+ pmap = (*dst->pScreen->CreatePixmap)(dst->pScreen, sw, sh, depth);
+ if (!pmap)
+ {
++ nxagentShmTrap = 1;
+ FreeScratchGC(putGC);
+ return;
+ }
+@@ -532,6 +592,7 @@
+ (void)(*pGC->ops->CopyArea)((DrawablePtr)pmap, dst, pGC, 0, 0, sw, sh,
+ dx, dy);
+ (*pmap->drawable.pScreen->DestroyPixmap)(pmap);
++ nxagentShmTrap = 1;
+ }
+
+ static void
+@@ -542,6 +603,15 @@
+ unsigned int format;
+ char *data;
+ {
++ int length;
++ char *newdata;
++ extern int nxagentImageLength(int, int, int, int, int);
++
++ #ifdef TEST
++ fprintf(stderr, "fbShmPutImage: Called with drawable at [%p] GC at [%p] data at [%p].\n",
++ (void *) dst, (void *) pGC, (void *) data);
++ #endif
++
+ if ((format == ZPixmap) || (depth == 1))
+ {
+ PixmapPtr pPixmap;
+@@ -556,11 +626,45 @@
+ else
+ (void)(*pGC->ops->CopyArea)((DrawablePtr)pPixmap, dst, pGC,
+ sx, sy, sw, sh, dx, dy);
++
++ /*
++ * We updated the internal framebuffer,
++ * now we want to go on the real X.
++ */
++
++ #ifdef TEST
++ fprintf(stderr, "fbShmPutImage: Realizing the PutImage with depth [%d] "
++ " format [%d] w [%d] h [%d] sx [%d] sy [%d] sw [%d] "
++ " sh [%d] dx [%d].\n", depth, format, w, h,
++ sx, sy, sw, sh, dx);
++ #endif
++
++ length = nxagentImageLength(sw, sh, format, 0, depth);
++
++ if ((newdata = xalloc(length)) != NULL)
++ {
++ fbGetImage((DrawablePtr) pPixmap, sx, sy, sw, sh, format, AllPlanes, newdata);
++ (*pGC->ops->PutImage)(dst, pGC, depth, dx, dy, sw, sh, 0, format, newdata);
++
++ xfree(newdata);
++ }
++ else
++ {
++ #ifdef WARNING
++ fprintf(stderr, "fbShmPutImage: WARNING! Data allocation failed.\n");
++ #endif
++ }
++
+ FreeScratchPixmapHeader(pPixmap);
+ }
+ else
++ {
++ #ifdef TEST
++ fprintf(stderr, "fbShmPutImage: Calling miShmPutImage().\n");
++ #endif
+ miShmPutImage(dst, pGC, depth, format, w, h, sx, sy, sw, sh, dx, dy,
+ data);
++ }
+ }
+
+
+@@ -895,26 +999,22 @@
+ return BadValue;
+ }
+
+- if ((((stuff->format == ZPixmap) && (stuff->srcX == 0)) ||
+- ((stuff->format != ZPixmap) &&
+- (stuff->srcX < screenInfo.bitmapScanlinePad) &&
+- ((stuff->format == XYBitmap) ||
+- ((stuff->srcY == 0) &&
+- (stuff->srcHeight == stuff->totalHeight))))) &&
+- ((stuff->srcX + stuff->srcWidth) == stuff->totalWidth))
+- (*pGC->ops->PutImage) (pDraw, pGC, stuff->depth,
+- stuff->dstX, stuff->dstY,
+- stuff->totalWidth, stuff->srcHeight,
+- stuff->srcX, stuff->format,
+- shmdesc->addr + stuff->offset +
+- (stuff->srcY * length));
+- else
+- (*shmFuncs[pDraw->pScreen->myNum]->PutImage)(
+- pDraw, pGC, stuff->depth, stuff->format,
+- stuff->totalWidth, stuff->totalHeight,
+- stuff->srcX, stuff->srcY,
+- stuff->srcWidth, stuff->srcHeight,
+- stuff->dstX, stuff->dstY,
++ #ifdef TEST
++ fprintf(stderr, "ProcShmPutImage: Format [%d] srcX [%d] srcY [%d], "
++ "totalWidth [%d] totalHeight [%d]\n", stuff->format, stuff->srcX,
++ stuff->srcY, stuff->totalWidth, stuff->totalHeight);
++ #endif
++
++ #ifdef TEST
++ fprintf(stderr, "ProcShmPutImage: Calling (*shmFuncs[pDraw->pScreen->myNum]->PutImage)().\n");
++ #endif
++
++ (*shmFuncs[pDraw->pScreen->myNum]->PutImage)(
++ pDraw, pGC, stuff->depth, stuff->format,
++ stuff->totalWidth, stuff->totalHeight,
++ stuff->srcX, stuff->srcY,
++ stuff->srcWidth, stuff->srcHeight,
++ stuff->dstX, stuff->dstY,
+ shmdesc->addr + stuff->offset);
+
+ if (stuff->sendEvent)
+@@ -1056,15 +1156,37 @@
+ {
+ register PixmapPtr pPixmap;
+
+- pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth);
++ nxagentShmPixmapTrap = 1;
++
++ pPixmap = (*pScreen->CreatePixmap)(pScreen, width, height, depth);
++
+ if (!pPixmap)
+- return NullPixmap;
++ {
++ nxagentShmPixmapTrap = 0;
++
++ return NullPixmap;
++ }
++
++ #ifdef TEST
++ fprintf(stderr,"fbShmCreatePixmap: Width [%d] Height [%d] Depth [%d]\n", width, height, depth);
++ #endif
+
+ if (!(*pScreen->ModifyPixmapHeader)(pPixmap, width, height, depth,
+- BitsPerPixel(depth), PixmapBytePad(width, depth), (pointer)addr)) {
+- (*pScreen->DestroyPixmap)(pPixmap);
+- return NullPixmap;
++ BitsPerPixel(depth), PixmapBytePad(width, depth), (pointer)addr))
++ {
++ #ifdef WARNING
++ fprintf(stderr,"fbShmCreatePixmap: Return Null Pixmap.\n");
++ #endif
++
++ (*pScreen->DestroyPixmap)(pPixmap);
++
++ nxagentShmPixmapTrap = 0;
++
++ return NullPixmap;
+ }
++
++ nxagentShmPixmapTrap = 0;
++
+ return pPixmap;
+ }
+
+@@ -1146,6 +1268,18 @@
+ register ClientPtr client;
+ {
+ REQUEST(xReq);
++
++ #ifdef TEST
++ fprintf(stderr, "ProcShmDispatch: Going to execute operation [%d] for client [%d].\n",
++ stuff -> data, client -> index);
++
++ if (stuff->data <= X_ShmCreatePixmap)
++ {
++ fprintf(stderr, "ProcShmDispatch: Request [%s] OPCODE#%d.\n",
++ nxagentShmRequestLiteral[stuff->data], stuff->data);
++ }
++ #endif
++
+ switch (stuff->data)
+ {
+ case X_ShmQueryVersion:
+@@ -1155,11 +1289,38 @@
+ case X_ShmDetach:
+ return ProcShmDetach(client);
+ case X_ShmPutImage:
++ {
++ int result;
++
++ #ifdef TEST
++ fprintf(stderr, "ProcShmDispatch: Going to execute ProcShmPutImage() for client [%d].\n",
++ client -> index);
++ #endif
++
++ nxagentShmTrap = 1;
++
+ #ifdef PANORAMIX
+ if ( !noPanoramiXExtension )
+- return ProcPanoramiXShmPutImage(client);
++ {
++ result = ProcPanoramiXShmPutImage(client);
++
++ nxagentShmTrap = 0;
++
++ return result;
++ }
+ #endif
+- return ProcShmPutImage(client);
++
++ result = ProcShmPutImage(client);
++
++ nxagentShmTrap = 0;
++
++ #ifdef TEST
++ fprintf(stderr, "ProcShmDispatch: Returning from ProcShmPutImage() for client [%d].\n",
++ client -> index);
++ #endif
++
++ return result;
++ }
+ case X_ShmGetImage:
+ #ifdef PANORAMIX
+ if ( !noPanoramiXExtension )
+@@ -1290,6 +1451,12 @@
+ register ClientPtr client;
+ {
+ REQUEST(xReq);
++
++ #ifdef TEST
++ fprintf(stderr, "SProcShmDispatch: Going to execute operation [%d] for client [%d].\n",
++ stuff -> data, client -> index);
++ #endif
++
+ switch (stuff->data)
+ {
+ case X_ShmQueryVersion:
+@@ -1299,7 +1466,27 @@
+ case X_ShmDetach:
+ return SProcShmDetach(client);
+ case X_ShmPutImage:
+- return SProcShmPutImage(client);
++ {
++ int result;
++
++ #ifdef TEST
++ fprintf(stderr, "SProcShmDispatch: Going to execute SProcShmPutImage() for client [%d].\n",
++ client -> index);
++ #endif
++
++ nxagentShmTrap = 1;
++
++ result = SProcShmPutImage(client);
++
++ nxagentShmTrap = 0;
++
++ #ifdef TEST
++ fprintf(stderr, "SProcShmDispatch: Returning from SProcShmPutImage() for client [%d].\n",
++ client -> index);
++ #endif
++
++ return result;
++ }
+ case X_ShmGetImage:
+ return SProcShmGetImage(client);
+ case X_ShmCreatePixmap:
+@@ -1308,3 +1495,4 @@
+ return BadRequest;
+ }
+ }
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXwindow.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXwindow.c.X.original
new file mode 100644
index 000000000..667dadc42
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXwindow.c.X.original
@@ -0,0 +1,561 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXwindow.c.X.original 2015-02-13 14:03:44.748441432 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXwindow.c 2015-02-10 19:13:13.780686785 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XdotOrg: xc/programs/Xserver/dix/window.c,v 1.12 2005/07/03 08:53:38 daniels Exp $ */
+ /* $Xorg: window.c,v 1.4 2001/02/09 02:04:41 xorgcvs Exp $ */
+ /*
+@@ -97,9 +114,10 @@
+ #include "dixstruct.h"
+ #include "gcstruct.h"
+ #include "servermd.h"
++#include "selection.h"
+ #ifdef PANORAMIX
+-#include "panoramiX.h"
+-#include "panoramiXsrv.h"
++#include "../../Xext/panoramiX.h"
++#include "../../Xext/panoramiXsrv.h"
+ #endif
+ #include "dixevents.h"
+ #include "globals.h"
+@@ -112,6 +130,19 @@
+ #include <X11/extensions/security.h>
+ #endif
+
++#include "Screen.h"
++#include "Options.h"
++#include "Atoms.h"
++#include "Clipboard.h"
++#include "Splash.h"
++#include "Rootless.h"
++#include "Composite.h"
++#include "Drawable.h"
++#include "Colormap.h"
++
++extern Bool nxagentWMIsRunning;
++extern Bool nxagentScreenTrap;
++
+ /******
+ * Window stuff for server
+ *
+@@ -160,10 +191,25 @@
+ #define SubStrSend(pWin,pParent) (StrSend(pWin) || SubSend(pParent))
+
+
++/*
++ * Set here the required log level.
++ */
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++
+ int numSaveUndersViewable = 0;
+ int deltaSaveUndersViewable = 0;
+
+-#ifdef DEBUG
++WindowPtr nxagentRootTileWindow;
++
++/*
++ * This block used the DEBUG symbol.
++ */
++
++#ifdef WINDOW_TREE_DEBUG
+ /******
+ * PrintWindowTree
+ * For debugging only
+@@ -289,6 +335,31 @@
+ #endif
+ }
+
++#ifdef NXAGENT_SERVER
++
++void nxagentClearSplash(WindowPtr pW)
++{
++ int w, h;
++ ScreenPtr pScreen;
++
++ w = pW->drawable.width;
++ h = pW->drawable.height;
++
++ pScreen = pW->drawable.pScreen;
++
++ if (pW->backgroundState == BackgroundPixmap)
++ {
++ (*pScreen->DestroyPixmap)(pW->background.pixmap);
++ }
++
++ pW->backgroundState = BackgroundPixel;
++ pW->background.pixel = nxagentLogoBlack;
++
++ (*pScreen->ChangeWindowAttributes)(pW, CWBackPixmap|CWBackPixel);
++}
++
++#endif /* NXAGENT_SERVER */
++
+ static void
+ MakeRootTile(WindowPtr pWin)
+ {
+@@ -333,6 +404,9 @@
+
+ FreeScratchGC(pGC);
+
++#ifdef NXAGENT_SERVER
++ nxagentRootTileWindow = pWin;
++#endif /* NXAGENT_SERVER */
+ }
+
+ WindowPtr
+@@ -458,9 +532,16 @@
+ return FALSE;
+
+ if (disableBackingStore)
+- pScreen->backingStoreSupport = NotUseful;
++ {
++ pScreen -> backingStoreSupport = NotUseful;
++ }
++
+ if (enableBackingStore)
+- pScreen->backingStoreSupport = Always;
++ {
++ pScreen -> backingStoreSupport = Always;
++ }
++
++ pScreen->saveUnderSupport = False;
+
+ #ifdef DO_SAVE_UNDERS
+ if ((pScreen->backingStoreSupport != NotUseful) &&
+@@ -480,6 +561,107 @@
+ return TRUE;
+ }
+
++#ifdef NXAGENT_SERVER
++
++void
++InitRootWindow(WindowPtr pWin)
++{
++ ScreenPtr pScreen;
++
++ #ifdef TEST
++ fprintf(stderr, "InitRootWindow: Called for window at [%p][%ld] with parent [%p].\n",
++ (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent);
++ #endif
++
++ if (nxagentOption(Rootless))
++ {
++ #ifdef TEST
++ fprintf(stderr, "InitRootWindow: Assigned agent root to window at [%p][%ld] with parent [%p].\n",
++ (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent);
++ #endif
++
++ nxagentRootlessWindow = pWin;
++ }
++
++ pScreen = pWin->drawable.pScreen;
++
++ /*
++ * A root window is created for each screen by main
++ * and the pointer is saved in WindowTable as in the
++ * following snippet:
++ *
++ * for (i = 0; i < screenInfo.numScreens; i++)
++ * InitRootWindow(WindowTable[i]);
++ *
++ * Our root window on the real display was already
++ * created at the time the screen was opened, so it
++ * is unclear how this window (or the other window,
++ * if you prefer) fits in the big picture.
++ */
++
++ #ifdef TEST
++ fprintf(stderr, "InitRootWindow: Going to create window as root at [%p][%ld] with parent [%p].\n",
++ (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent);
++ #endif
++
++ if (!(*pScreen->CreateWindow)(pWin))
++ return; /* XXX */
++
++ #ifdef TEST
++ fprintf(stderr, "InitRootWindow: Created window as root at [%p][%ld] with parent [%p].\n",
++ (void *) pWin, nxagentWindowPriv(pWin)->window, (void *) pWin -> parent);
++ #endif
++
++ (*pScreen->PositionWindow)(pWin, 0, 0);
++
++ pWin->cursorIsNone = FALSE;
++ pWin->optional->cursor = rootCursor;
++ rootCursor->refcnt++;
++ pWin->backingStore = defaultBackingStore;
++ pWin->forcedBS = (defaultBackingStore != NotUseful);
++
++ #ifdef NXAGENT_SPLASH
++ /* We SHOULD check for an error value here XXX */
++ pWin -> background.pixel = pScreen -> blackPixel;
++ (*pScreen->ChangeWindowAttributes)(pWin,
++ CWBackPixel|CWBorderPixel|CWCursor|CWBackingStore);
++ #else
++ (*pScreen->ChangeWindowAttributes)(pWin,
++ CWBackPixmap|CWBorderPixel|CWCursor|CWBackingStore);
++ #endif
++
++ MakeRootTile(pWin);
++
++ /*
++ * Map both the root and the default agent window.
++ */
++
++ #ifdef TEST
++ fprintf(stderr, "InitRootWindow: Mapping default windows.\n");
++ #endif
++
++ nxagentInitAtoms(pWin);
++
++ nxagentInitClipboard(pWin);
++
++ nxagentMapDefaultWindows();
++
++ nxagentRedirectDefaultWindows();
++
++ #ifdef NXAGENT_ARTSD
++ {
++ char artsd_port[10];
++ int nPort;
++ extern void nxagentPropagateArtsdProperties(ScreenPtr pScreen, char *port);
++ nPort = atoi(display) + 7000;
++ sprintf(artsd_port,"%d", nPort);
++ nxagentPropagateArtsdProperties(pScreen, artsd_port);
++ }
++ #endif
++}
++
++#else /* NXAGENT_SERVER */
++
+ void
+ InitRootWindow(WindowPtr pWin)
+ {
+@@ -502,6 +684,8 @@
+ MapWindow(pWin, serverClient);
+ }
+
++#endif /* NXAGENT_SERVER */
++
+ /* Set the region to the intersection of the rectangle and the
+ * window's winSize. The window is typically the parent of the
+ * window from which the region came.
+@@ -512,7 +696,9 @@
+ register int x, register int y,
+ register int w, register int h)
+ {
++#ifndef NXAGENT_SERVER
+ ScreenPtr pScreen = pWin->drawable.pScreen;
++#endif /* NXAGENT_SERVER */
+ BoxRec box;
+
+ box = *(REGION_EXTENTS(pScreen, &pWin->winSize));
+@@ -907,6 +1093,14 @@
+ if (pWin->prevSib)
+ pWin->prevSib->nextSib = pWin->nextSib;
+ }
++
++ if (pWin -> optional &&
++ pWin -> optional -> colormap &&
++ pWin -> parent)
++ {
++ nxagentSetInstalledColormapWindows(pWin -> drawable.pScreen);
++ }
++
+ xfree(pWin);
+ return Success;
+ }
+@@ -1147,6 +1341,12 @@
+ goto PatchUp;
+ }
+ pWin->backingStore = val;
++
++ #ifdef TEST
++ fprintf(stderr, "ChangeWindowAttributes: Changed backing store value to %d for window at %p.\n",
++ val, (void*)pWin);
++ #endif
++
+ pWin->forcedBS = FALSE;
+ break;
+ case CWBackingPlanes:
+@@ -1227,6 +1427,22 @@
+ #endif /* DO_SAVE_UNDERS */
+ break;
+ case CWEventMask:
++ /*
++ * TODO: Some applications like java bean shell
++ * don' t work if they cannot monitor the root
++ * window for Structure Redirect events. However
++ * this doesn't seem to be the best solution, since
++ * also an X server with a window manager running,
++ * doesn't allow to monitor for those events, but
++ * the java bean shell works flawlessy on this
++ * server.
++ *
++ * if (nxagentCheckIllegalRootMonitoring(pWin, (Mask)*pVlist))
++ * {
++ * return BadAccess;
++ * }
++ */
++
+ result = EventSelectForWindow(pWin, client, (Mask )*pVlist);
+ if (result)
+ {
+@@ -1611,8 +1827,9 @@
+ pRgn = REGION_CREATE(pWin->drawable.pScreen, &box, 1);
+ #ifdef SHAPE
+ if (wBoundingShape (pWin) || wClipShape (pWin)) {
++#ifndef NXAGENT_SERVER
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+-
++#endif /* NXAGENT_SERVER */
+ REGION_TRANSLATE(pScreen, pRgn, - pWin->drawable.x,
+ - pWin->drawable.y);
+ if (wBoundingShape (pWin))
+@@ -1647,8 +1864,9 @@
+ (int)pWin->drawable.height);
+ #ifdef SHAPE
+ if (wBoundingShape (pWin) || wClipShape (pWin)) {
++#ifndef NXAGENT_SERVER
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+-
++#endif /* NXAGENT_SERVER */
+ REGION_TRANSLATE(pScreen, &pWin->winSize, - pWin->drawable.x,
+ - pWin->drawable.y);
+ if (wBoundingShape (pWin))
+@@ -1689,8 +1907,9 @@
+ (int)(pWin->drawable.height + (bw<<1)));
+ #ifdef SHAPE
+ if (wBoundingShape (pWin)) {
++#ifndef NXAGENT_SERVER
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+-
++#endif /* NXAGENT_SERVER */
+ REGION_TRANSLATE(pScreen, &pWin->borderSize, - pWin->drawable.x,
+ - pWin->drawable.y);
+ REGION_INTERSECT(pScreen, &pWin->borderSize, &pWin->borderSize,
+@@ -1800,7 +2019,19 @@
+ pSib->drawable.y = pWin->drawable.y + pSib->origin.y;
+ SetWinSize (pSib);
+ SetBorderSize (pSib);
+- (*pScreen->PositionWindow)(pSib, pSib->drawable.x, pSib->drawable.y);
++
++ /*
++ * Don't force X to move children. It will position them
++ * according with gravity.
++ *
++ * (*pScreen->PositionWindow)(pSib, pSib->drawable.x, pSib->drawable.y);
++ */
++
++ /*
++ * Update pSib privates, as this window is moved by X.
++ */
++
++ nxagentAddConfiguredWindow(pSib, CW_Update);
+
+ if ( (pChild = pSib->firstChild) )
+ {
+@@ -1812,8 +2043,10 @@
+ pChild->origin.y;
+ SetWinSize (pChild);
+ SetBorderSize (pChild);
+- (*pScreen->PositionWindow)(pChild,
+- pChild->drawable.x, pChild->drawable.y);
++
++ (*pScreen->PositionWindow)(pChild, pChild->drawable.x,
++ pChild->drawable.y);
++
+ if (pChild->firstChild)
+ {
+ pChild = pChild->firstChild;
+@@ -1900,8 +2133,9 @@
+ BoxPtr pBox)
+ {
+ RegionPtr pRgn;
++#ifndef NXAGENT_SERVER
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+-
++#endif /* NXAGENT_SERVER */
+ pRgn = REGION_CREATE(pScreen, pBox, 1);
+ if (wBoundingShape (pWin)) {
+ REGION_TRANSLATE(pScreen, pRgn, -pWin->origin.x,
+@@ -2286,6 +2520,28 @@
+ /* Figure out if the window should be moved. Doesnt
+ make the changes to the window if event sent */
+
++ #ifdef TEST
++ if (nxagentWindowTopLevel(pWin))
++ {
++
++ fprintf(stderr, "ConfigureWindow: pWin [%p] mask [%lu] client [%p]\n",
++ pWin, mask, client);
++
++ fprintf(stderr, "ConfigureWindow: x [%d] y [%d] w [%d] h [%d] CWStackMode [%d] "
++ "smode [%d] pSib [%p]\n",
++ x, y, w, h, (mask & CWStackMode) ? 1 : 0, smode, pSib);
++ }
++ #endif
++
++ if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin) &&
++ pWin -> overrideRedirect == 0 &&
++ nxagentScreenTrap == 0)
++ {
++ nxagentConfigureRootlessWindow(pWin, x, y, w, h, bw, pSib, smode, mask);
++
++ return Success;
++ }
++
+ if (mask & CWStackMode)
+ pSib = WhereDoIGoInTheStack(pWin, pSib, pParent->drawable.x + x,
+ pParent->drawable.y + y,
+@@ -2443,6 +2699,9 @@
+
+ if (action != RESTACK_WIN)
+ CheckCursorConfinement(pWin);
++
++ nxagentFlushConfigureWindow();
++
+ return(Success);
+ #undef RESTACK_WIN
+ #undef MOVE_WIN
+@@ -2468,6 +2727,20 @@
+ xEvent event;
+ BoxRec box;
+
++ #ifdef TEST
++ fprintf(stderr, "CirculateWindow: pParent [%p] direction [%d] client [%p]\n",
++ pParent, direction, client);
++ #endif
++
++ /*
++ * if (nxagentOption(Rootless) && nxagentWMIsRunning &&
++ * nxagentWindowTopLevel(pWin) && pWin -> overrideRedirect == 0)
++ * {
++ * nxagentCirculateRootlessWindows(direction);
++ * return Success;
++ * }
++ */
++
+ pHead = RealChildHead(pParent);
+ pFirst = pHead ? pHead->nextSib : pParent->firstChild;
+ if (direction == RaiseLowest)
+@@ -2582,6 +2855,12 @@
+ /* insert at begining of pParent */
+ pWin->parent = pParent;
+ pPrev = RealChildHead(pParent);
++
++ if (pWin->parent == WindowTable[0])
++ {
++ nxagentSetTopLevelEventMask(pWin);
++ }
++
+ if (pPrev)
+ {
+ pWin->nextSib = pPrev->nextSib;
+@@ -2614,7 +2893,9 @@
+
+ if (pScreen->ReparentWindow)
+ (*pScreen->ReparentWindow)(pWin, pPriorParent);
++
+ (*pScreen->PositionWindow)(pWin, pWin->drawable.x, pWin->drawable.y);
++
+ ResizeChildrenWinSize(pWin, 0, 0, 0, 0);
+
+ CheckWindowOptionalNeed(pWin);
+@@ -2677,6 +2958,13 @@
+ #endif
+ WindowPtr pLayerWin;
+
++ #ifdef TEST
++ if (nxagentWindowTopLevel(pWin))
++ {
++ fprintf(stderr, "MapWindow: pWin [%p] client [%p]\n", pWin, client);
++ }
++ #endif
++
+ if (pWin->mapped)
+ return(Success);
+
+@@ -2782,6 +3070,8 @@
+ REGION_UNINIT(pScreen, &temp);
+ }
+
++ nxagentFlushConfigureWindow();
++
+ return(Success);
+ }
+
+@@ -2981,6 +3271,14 @@
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ WindowPtr pLayerWin = pWin;
+
++ #ifdef TEST
++ if (nxagentWindowTopLevel(pWin))
++ {
++ fprintf(stderr, "UnmapWindow: pWin [%p] fromConfigure [%d]\n", pWin,
++ fromConfigure);
++ }
++ #endif
++
+ if ((!pWin->mapped) || (!(pParent = pWin->parent)))
+ return(Success);
+ if (SubStrSend(pWin, pParent))
+@@ -3324,9 +3622,19 @@
+ (* screenInfo.screens[i]->SaveScreen) (screenInfo.screens[i], on);
+ if (savedScreenInfo[i].ExternalScreenSaver)
+ {
+- if ((*savedScreenInfo[i].ExternalScreenSaver)
+- (screenInfo.screens[i], type, on == SCREEN_SAVER_FORCER))
+- continue;
++ if (nxagentOption(Timeout) != 0)
++ {
++ #ifdef TEST
++ fprintf(stderr, "SaveScreens: An external screen-saver handler is installed. "
++ "Ignoring it to let the auto-disconnect feature work.\n");
++ #endif
++ }
++ else
++ {
++ if ((*savedScreenInfo[i].ExternalScreenSaver)
++ (screenInfo.screens[i], type, on == SCREEN_SAVER_FORCER))
++ continue;
++ }
+ }
+ if (type == screenIsSaved)
+ continue;
+@@ -3669,6 +3977,11 @@
+ }
+ else
+ pWin->cursorIsNone = TRUE;
++/* FIXME
++ There is an error when disposing ClientResources on Agent exit
++ this xfree is not valid in some window at exit
++*/
++
+ xfree (pWin->optional);
+ pWin->optional = NULL;
+ }
+@@ -3851,3 +4164,4 @@
+ }
+
+ #endif
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXxvdisp.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXxvdisp.c.X.original
new file mode 100644
index 000000000..d8c20669d
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_hw_nxagent_X_NXxvdisp.c.X.original
@@ -0,0 +1,266 @@
+--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c.X.original 2015-02-13 14:03:44.748441432 +0100
++++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c 2015-02-13 14:03:44.748441432 +0100
+@@ -1,3 +1,20 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NXAGENT, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XdotOrg: xc/programs/Xserver/Xext/xvdisp.c,v 1.6 2005/07/03 08:53:36 daniels Exp $ */
+ /***********************************************************
+ Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
+@@ -71,6 +88,11 @@
+ #include <X11/extensions/shmstr.h>
+ #endif
+
++#include "Trap.h"
++
++#undef TEST
++#undef DEBUG
++
+ #ifdef EXTMODULE
+ #include "xf86_ansic.h"
+ #endif
+@@ -227,129 +249,175 @@
+ int
+ ProcXvDispatch(ClientPtr client)
+ {
++ int result;
++
+ REQUEST(xReq);
+
+ UpdateCurrentTime();
+
++ /*
++ * Report upstream that we are
++ * dispatching a XVideo operation.
++ */
++
++ nxagentXvTrap = 1;
++
++ #ifdef TEST
++ fprintf(stderr, "ProcXvDispatch: Going to dispatch XVideo operation [%d] for client [%d].\n",
++ stuff->data, client -> index);
++ #endif
++
+ switch (stuff->data)
+ {
+- case xv_QueryExtension: return(ProcXvQueryExtension(client));
+- case xv_QueryAdaptors: return(ProcXvQueryAdaptors(client));
+- case xv_QueryEncodings: return(ProcXvQueryEncodings(client));
++ case xv_QueryExtension: result = (ProcXvQueryExtension(client)); break;
++ case xv_QueryAdaptors: result = (ProcXvQueryAdaptors(client)); break;
++ case xv_QueryEncodings: result = (ProcXvQueryEncodings(client)); break;
+ case xv_PutVideo:
+ #ifdef PANORAMIX
+ if(!noPanoramiXExtension)
+- return(XineramaXvPutVideo(client));
++ result = (XineramaXvPutVideo(client)); break;
+ else
+ #endif
+- return(ProcXvPutVideo(client));
++ result = (ProcXvPutVideo(client)); break;
+ case xv_PutStill:
+ #ifdef PANORAMIX
+ if(!noPanoramiXExtension)
+- return(XineramaXvPutStill(client));
++ result = (XineramaXvPutStill(client)); break
+ else
+ #endif
+- return(ProcXvPutStill(client));
+- case xv_GetVideo: return(ProcXvGetVideo(client));
+- case xv_GetStill: return(ProcXvGetStill(client));
+- case xv_GrabPort: return(ProcXvGrabPort(client));
+- case xv_UngrabPort: return(ProcXvUngrabPort(client));
+- case xv_SelectVideoNotify: return(ProcXvSelectVideoNotify(client));
+- case xv_SelectPortNotify: return(ProcXvSelectPortNotify(client));
++ result = (ProcXvPutStill(client)); break;
++ case xv_GetVideo: result = (ProcXvGetVideo(client)); break;
++ case xv_GetStill: result = (ProcXvGetStill(client)); break;
++ case xv_GrabPort: result = (ProcXvGrabPort(client)); break;
++ case xv_UngrabPort: result = (ProcXvUngrabPort(client)); break;
++ case xv_SelectVideoNotify: result = (ProcXvSelectVideoNotify(client)); break;
++ case xv_SelectPortNotify: result = (ProcXvSelectPortNotify(client)); break;
+ case xv_StopVideo:
+ #ifdef PANORAMIX
+ if(!noPanoramiXExtension)
+- return(XineramaXvStopVideo(client));
++ result = (XineramaXvStopVideo(client)); break;
+ else
+ #endif
+- return(ProcXvStopVideo(client));
++ result = (ProcXvStopVideo(client)); break;
+ case xv_SetPortAttribute:
+ #ifdef PANORAMIX
+ if(!noPanoramiXExtension)
+- return(XineramaXvSetPortAttribute(client));
++ result = (XineramaXvSetPortAttribute(client)); break;
+ else
+ #endif
+- return(ProcXvSetPortAttribute(client));
+- case xv_GetPortAttribute: return(ProcXvGetPortAttribute(client));
+- case xv_QueryBestSize: return(ProcXvQueryBestSize(client));
+- case xv_QueryPortAttributes: return(ProcXvQueryPortAttributes(client));
++ result = (ProcXvSetPortAttribute(client)); break;
++ case xv_GetPortAttribute: result = (ProcXvGetPortAttribute(client)); break;
++ case xv_QueryBestSize: result = (ProcXvQueryBestSize(client)); break;
++ case xv_QueryPortAttributes: result = (ProcXvQueryPortAttributes(client)); break;
+ case xv_PutImage:
+ #ifdef PANORAMIX
+ if(!noPanoramiXExtension)
+- return(XineramaXvPutImage(client));
++ result = (XineramaXvPutImage(client)); break;
+ else
+ #endif
+- return(ProcXvPutImage(client));
++ result = (ProcXvPutImage(client)); break;
+ #ifdef MITSHM
+ case xv_ShmPutImage:
+ #ifdef PANORAMIX
+ if(!noPanoramiXExtension)
+- return(XineramaXvShmPutImage(client));
++ result = (XineramaXvShmPutImage(client)); break;
+ else
+ #endif
+- return(ProcXvShmPutImage(client));
++ result = (ProcXvShmPutImage(client)); break;
+ #endif
+- case xv_QueryImageAttributes: return(ProcXvQueryImageAttributes(client));
+- case xv_ListImageFormats: return(ProcXvListImageFormats(client));
++ case xv_QueryImageAttributes: result = (ProcXvQueryImageAttributes(client)); break;
++ case xv_ListImageFormats: result = (ProcXvListImageFormats(client)); break;
+ default:
+ if (stuff->data < xvNumRequests)
+ {
+ SendErrorToClient(client, XvReqCode, stuff->data, 0,
+ BadImplementation);
+- return(BadImplementation);
++ result = (BadImplementation); break;
+ }
+ else
+ {
+ SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest);
+- return(BadRequest);
++ result = (BadRequest); break;
+ }
+ }
++
++ nxagentXvTrap = 0;
++
++ #ifdef TEST
++ fprintf(stderr, "ProcXvDispatch: Dispatched XVideo operation [%d] for client [%d].\n",
++ stuff->data, client -> index);
++ #endif
++
++ return result;
+ }
+
+ int
+ SProcXvDispatch(ClientPtr client)
+ {
++ int result;
++
+ REQUEST(xReq);
+
+ UpdateCurrentTime();
+
++ /*
++ * Report upstream that we are
++ * dispatching a XVideo operation.
++ */
++
++ nxagentXvTrap = 1;
++
++ #ifdef TEST
++ fprintf(stderr, "SProcXvDispatch: Going to dispatch XVideo operation [%d] for client [%d].\n",
++ stuff->data, client -> index);
++ #endif
++
+ switch (stuff->data)
+ {
+- case xv_QueryExtension: return(SProcXvQueryExtension(client));
+- case xv_QueryAdaptors: return(SProcXvQueryAdaptors(client));
+- case xv_QueryEncodings: return(SProcXvQueryEncodings(client));
+- case xv_PutVideo: return(SProcXvPutVideo(client));
+- case xv_PutStill: return(SProcXvPutStill(client));
+- case xv_GetVideo: return(SProcXvGetVideo(client));
+- case xv_GetStill: return(SProcXvGetStill(client));
+- case xv_GrabPort: return(SProcXvGrabPort(client));
+- case xv_UngrabPort: return(SProcXvUngrabPort(client));
+- case xv_SelectVideoNotify: return(SProcXvSelectVideoNotify(client));
+- case xv_SelectPortNotify: return(SProcXvSelectPortNotify(client));
+- case xv_StopVideo: return(SProcXvStopVideo(client));
+- case xv_SetPortAttribute: return(SProcXvSetPortAttribute(client));
+- case xv_GetPortAttribute: return(SProcXvGetPortAttribute(client));
+- case xv_QueryBestSize: return(SProcXvQueryBestSize(client));
+- case xv_QueryPortAttributes: return(SProcXvQueryPortAttributes(client));
+- case xv_PutImage: return(SProcXvPutImage(client));
++ case xv_QueryExtension: result = (SProcXvQueryExtension(client)); break;
++ case xv_QueryAdaptors: result = (SProcXvQueryAdaptors(client)); break;
++ case xv_QueryEncodings: result = (SProcXvQueryEncodings(client)); break;
++ case xv_PutVideo: result = (SProcXvPutVideo(client)); break;
++ case xv_PutStill: result = (SProcXvPutStill(client)); break;
++ case xv_GetVideo: result = (SProcXvGetVideo(client)); break;
++ case xv_GetStill: result = (SProcXvGetStill(client)); break;
++ case xv_GrabPort: result = (SProcXvGrabPort(client)); break;
++ case xv_UngrabPort: result = (SProcXvUngrabPort(client)); break;
++ case xv_SelectVideoNotify: result = (SProcXvSelectVideoNotify(client)); break;
++ case xv_SelectPortNotify: result = (SProcXvSelectPortNotify(client)); break;
++ case xv_StopVideo: result = (SProcXvStopVideo(client)); break;
++ case xv_SetPortAttribute: result = (SProcXvSetPortAttribute(client)); break;
++ case xv_GetPortAttribute: result = (SProcXvGetPortAttribute(client)); break;
++ case xv_QueryBestSize: result = (SProcXvQueryBestSize(client)); break;
++ case xv_QueryPortAttributes: result = (SProcXvQueryPortAttributes(client)); break;
++ case xv_PutImage: result = (SProcXvPutImage(client)); break;
+ #ifdef MITSHM
+- case xv_ShmPutImage: return(SProcXvShmPutImage(client));
++ case xv_ShmPutImage: result = (SProcXvShmPutImage(client)); break;
+ #endif
+- case xv_QueryImageAttributes: return(SProcXvQueryImageAttributes(client));
+- case xv_ListImageFormats: return(SProcXvListImageFormats(client));
++ case xv_QueryImageAttributes: result = (SProcXvQueryImageAttributes(client)); break;
++ case xv_ListImageFormats: result = (SProcXvListImageFormats(client)); break;
+ default:
+ if (stuff->data < xvNumRequests)
+ {
+ SendErrorToClient(client, XvReqCode, stuff->data, 0,
+ BadImplementation);
+- return(BadImplementation);
++ result = (BadImplementation); break;
+ }
+ else
+ {
+ SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest);
+- return(BadRequest);
++ result = (BadRequest); break;
+ }
+ }
++
++ nxagentXvTrap = 0;
++
++ #ifdef TEST
++ fprintf(stderr, "ProcXvDispatch: Dispatched XVideo operation [%d] for client [%d].\n",
++ stuff->data, client -> index);
++ #endif
++
++ return result;
+ }
+
+ static int
+@@ -2215,3 +2283,4 @@
+ }
+
+ #endif
++
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_include_dixstruct.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_include_dixstruct.h.X.original
new file mode 100644
index 000000000..f4bffa980
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_include_dixstruct.h.X.original
@@ -0,0 +1,12 @@
+--- ./nx-X11/programs/Xserver/include/dixstruct.h.X.original 2015-02-13 14:03:44.780440803 +0100
++++ ./nx-X11/programs/Xserver/include/dixstruct.h 2015-02-10 19:13:14.300667345 +0100
+@@ -170,6 +170,9 @@
+ extern Bool SmartScheduleIdle;
+ extern Bool SmartScheduleTimerStopped;
+ extern Bool SmartScheduleStartTimer(void);
++#ifdef NXAGENT_SERVER
++extern Bool SmartScheduleStopTimer(void);
++#endif
+ #define SMART_MAX_PRIORITY (20)
+ #define SMART_MIN_PRIORITY (-20)
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_WaitFor.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_WaitFor.c.X.original
new file mode 100644
index 000000000..3850a2b26
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_WaitFor.c.X.original
@@ -0,0 +1,271 @@
+--- ./nx-X11/programs/Xserver/os/WaitFor.c.X.original 2015-02-13 14:03:44.788440645 +0100
++++ ./nx-X11/programs/Xserver/os/WaitFor.c 2015-02-10 19:13:13.464698616 +0100
+@@ -48,6 +48,23 @@
+
+ /* $Xorg: WaitFor.c,v 1.4 2001/02/09 02:05:22 xorgcvs Exp $ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*****************************************************************
+ * OS Dependent input routines:
+ *
+@@ -80,6 +97,12 @@
+ #include "dpmsproc.h"
+ #endif
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP)
++
++static unsigned long startTimeInMillis;
++
++#endif
++
+ #ifdef WIN32
+ /* Error codes from windows sockets differ from fileio error codes */
+ #undef EINTR
+@@ -169,8 +192,18 @@
+ Bool someReady = FALSE;
+ #endif
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Got called.\n");
++#endif
++
+ FD_ZERO(&clientsReadable);
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP)
++
++ startTimeInMillis = GetTimeInMillis();
++
++#endif
++
+ /* We need a while loop here to handle
+ crashed connections and the screen saver timeout */
+ while (1)
+@@ -231,18 +264,127 @@
+ XTestComputeWaitTime (&waittime);
+ }
+ #endif /* XTESTEXT1 */
++
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP)
++
++ /*
++ * If caller has marked the first element of pClientsReady[],
++ * bail out of select after a short timeout. We need this to
++ * let the NX agent remove the splash screen when the timeout
++ * is expired. A better option would be to use the existing
++ * screen-saver timeout but it can be modified by clients, so
++ * we would need a special handling. This hack is trivial and
++ * keeps WaitForSomething() backward compatible with the exis-
++ * ting servers.
++ */
++
++ if (pClientsReady[0] == -1)
++ {
++ unsigned long timeoutInMillis;
++
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: pClientsReady[0] is [%d], pClientsReady[1] is [%d].\n",
++ pClientsReady[0], pClientsReady[1]);
++#endif
++
++ timeoutInMillis = GetTimeInMillis();
++
++ if (timeoutInMillis - startTimeInMillis >= NX_TRANS_WAKEUP)
++ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Returning 0 because of wakeup timeout.\n");
++#endif
++ return 0;
++ }
++
++ timeoutInMillis = NX_TRANS_WAKEUP - (timeoutInMillis - startTimeInMillis);
++
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Milliseconds to next wakeup are %ld.\n",
++ timeoutInMillis);
++#endif
++ if (wt == NULL || (wt -> tv_sec * MILLI_PER_SECOND +
++ wt -> tv_usec / MILLI_PER_SECOND) > timeoutInMillis)
++ {
++ if ((waittime.tv_sec * MILLI_PER_SECOND +
++ waittime.tv_usec / MILLI_PER_SECOND) > timeoutInMillis)
++ {
++ waittime.tv_sec = timeoutInMillis / MILLI_PER_SECOND;
++ waittime.tv_usec = (timeoutInMillis * MILLI_PER_SECOND) %
++ (MILLI_PER_SECOND * 1000);
++ wt = &waittime;
++ }
++
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Next wakeup timeout set to %ld milliseconds.\n",
++ (waittime.tv_sec * MILLI_PER_SECOND) +
++ (waittime.tv_usec / MILLI_PER_SECOND));
++#endif
++ }
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_WAKEUP) && defined(NX_TRANS_DEBUG)
++ else
++ {
++ fprintf(stderr, "WaitForSomething: Using existing timeout of %ld milliseconds.\n",
++ (waittime.tv_sec * MILLI_PER_SECOND) +
++ (waittime.tv_usec / MILLI_PER_SECOND));
++ }
++#endif
++ }
++#endif
++
+ /* keep this check close to select() call to minimize race */
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
+ if (dispatchException)
++ {
+ i = -1;
++
++ fprintf(stderr, "WaitForSomething: Value of dispatchException is true. Set i = -1.\n");
++ }
++#else
++ if (dispatchException)
++ i = -1;
++#endif
+ else if (AnyClientsWriteBlocked)
+ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ if (wt == NULL)
++ {
++ fprintf(stderr, "WaitForSomething: Executing select with LastSelectMask and "
++ "clientsWritable and null timeout.\n");
++ }
++ else
++ {
++ fprintf(stderr, "WaitForSomething: Executing select with LastSelectMask, "
++ "clientsWritable, %ld secs and %ld usecs.\n",
++ wt -> tv_sec, wt -> tv_usec);
++ }
++#endif
+ XFD_COPYSET(&ClientsWriteBlocked, &clientsWritable);
+ i = Select (MaxClients, &LastSelectMask, &clientsWritable, NULL, wt);
+ }
+ else
+ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ if (wt == NULL)
++ {
++ fprintf(stderr, "WaitForSomething: Executing select with LastSelectMask and null timeout.\n");
++ }
++ else
++ {
++ fprintf(stderr, "WaitForSomething: Executing select with LastSelectMask, %ld secs and %ld usecs.\n",
++ wt -> tv_sec, wt -> tv_usec);
++ }
++#endif
+ i = Select (MaxClients, &LastSelectMask, NULL, NULL, wt);
+ }
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Bailed out with i = [%d] and errno = [%d].\n", i, errno);
++
++ if (i < 0)
++ {
++ fprintf(stderr, "WaitForSomething: Error is [%s].\n", strerror(errno));
++ }
++#endif
+ selecterr = GetErrno();
+ WakeupHandler(i, (pointer)&LastSelectMask);
+ #ifdef XTESTEXT1
+@@ -261,15 +403,31 @@
+ #endif
+ if (i <= 0) /* An error or timeout occurred */
+ {
+- if (dispatchException)
+- return 0;
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ if (dispatchException)
++ {
++ fprintf(stderr, "WaitForSomething: Returning 0 because of (dispatchException).\n");
++ return 0;
++ }
++#else
++ if (dispatchException)
++ return 0;
++#endif
+ if (i < 0)
+ {
+ if (selecterr == EBADF) /* Some client disconnected */
+ {
+ CheckConnections ();
+- if (! XFD_ANYSET (&AllClients))
+- return 0;
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ if (! XFD_ANYSET (&AllClients))
++ {
++ fprintf(stderr, "WaitForSomething: Returning 0 because of (! XFD_ANYSET (&AllClients)).\n");
++ return 0;
++ }
++#else
++ if (! XFD_ANYSET (&AllClients))
++ return 0;
++#endif
+ }
+ else if (selecterr == EINVAL)
+ {
+@@ -293,8 +451,18 @@
+ break;
+ }
+ #endif
++#if defined(NX_TRANS_SOCKET)
++ if (*checkForInput[0] != *checkForInput[1])
++ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Returning 0 because of (*checkForInput[0] != *checkForInput[1]).\n");
++#endif
++ return 0;
++ }
++#else
+ if (*checkForInput[0] != *checkForInput[1])
+ return 0;
++#endif
+
+ if (timers)
+ {
+@@ -358,9 +526,19 @@
+ /* Windows keyboard and mouse events are added to the input queue
+ in Block- and WakupHandlers. There is no device to check if
+ data is ready. So check here if new input is available */
++#if defined(NX_TRANS_SOCKET)
++ if (*checkForInput[0] != *checkForInput[1])
++ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Returning 0 because of (*checkForInput[0] != *checkForInput[1]).\n");
++#endif
++ return 0;
++ }
++#else
+ if (*checkForInput[0] != *checkForInput[1])
+ return 0;
+ #endif
++#endif
+ }
+ }
+
+@@ -429,6 +607,9 @@
+ #endif
+ }
+ }
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
++ fprintf(stderr, "WaitForSomething: Returning nready.\n");
++#endif
+ return nready;
+ }
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_auth.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_auth.c.X.original
new file mode 100644
index 000000000..d7549c487
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_auth.c.X.original
@@ -0,0 +1,271 @@
+--- ./nx-X11/programs/Xserver/os/auth.c.X.original 2015-02-13 14:03:44.788440645 +0100
++++ ./nx-X11/programs/Xserver/os/auth.c 2015-02-10 19:13:13.452699065 +0100
+@@ -28,6 +28,23 @@
+ */
+ /* $XFree86: auth.c,v 1.13 2003/04/27 21:31:08 herrb Exp $ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /*
+ * authorization hooks for the server
+ * Author: Keith Packard, MIT X Consortium
+@@ -129,7 +146,24 @@
+ void
+ InitAuthorization (char *file_name)
+ {
++#ifdef __sun
++ char * envBuffer;
++#endif
+ authorization_file = file_name;
++#ifdef NX_TRANS_AUTH
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "InitAuthorization: Going to propagate auth file '%s' to the environment.\n",
++ authorization_file);
++#endif
++#ifdef __sun
++ envBuffer = malloc(15+strlen(authorization_file));
++ sprintf(envBuffer,"NX_XAUTHORITY=%s",authorization_file);
++ putenv(envBuffer);
++#else
++ setenv("NX_XAUTHORITY", authorization_file, 1);
++#endif
++#endif
++
+ }
+
+ static int
+@@ -144,6 +178,68 @@
+ if (!authorization_file)
+ return 0;
+
++#ifdef NX_TRANS_AUTH
++
++ /*
++ * We think that the way LoadAuthorization() is working is wrong.
++ * It doesn't reset the list of stored authorizations before reading
++ * the new cookies. Our take is that if a new auth file is to be
++ * read, the only cookies that are to be accepted are those that are
++ * in the new file, not those in the file -plus- those that have
++ * been in the file in the past. Furthermore, if the list can't be
++ * read or it is empty, it should assume that it ignores which co-
++ * okies are valid and thus it should disable any access. Your mile-
++ * age can vary. A less draconian approach could be to leave the old
++ * cookies if the file can't be read and remove them only if the
++ * file is empty.
++ *
++ * Adding the cookies without removing the old values for the same
++ * protocol has an important implication. If an user shares the co-
++ * okie with somebody and later wants to revoke the access to the
++ * display, changing the cookie will not work. This is especially
++ * important with NX. For security reasons, after reconnecting the
++ * session to a different display, it is advisable to generate a
++ * new set of cookies, but doing that it is useless with the current
++ * code, as the old cookies are going to be still accepted. On the
++ * same topic, consider that once an user has got access to the X
++ * server, he/she can freely enable host authentication from any
++ * host, so the safe behaviour should be to reset the host based
++ * authenthication at least at reconnection, and keep as valid only
++ * the cookies that are actually in the file. This behaviour would
++ * surely break many applications, among them a SSH connection run
++ * inside a NX session, as ssh -X reads the cookie for the display
++ * only at session startup and does not read the cookies again
++ * when the auth file is changed.
++ *
++ * Another bug (or feature, depending on how you want to consider
++ * it) is that if the authority file contains entries for different
++ * displays (as it is the norm when the authority file is the default
++ * .Xauthority in the user's home), the server will match -any- of
++ * the cookies, even cookies that are not for its own display. This
++ * means that you have be careful when passing an authority file to
++ * nxagent or Xnest and maybe keep separate files for letting nxagent
++ * find the cookie to be used to connect to the remote display and
++ * for letting it find what cookies to accept. If the file is the
++ * same, clients will be able to connect to nxagent with both the
++ * cookies.
++ */
++
++#ifdef NX_TRANS_AUTH_RESET
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "LoadAuthorization: Resetting authorization info.\n");
++ #endif
++
++ for (i = 0; i < NUM_AUTHORIZATION; i++) {
++ if (protocols[i].Reset) {
++ (*protocols[i].Reset) ();
++ }
++ }
++
++#endif
++
++#endif /* #ifdef NX_TRANS_AUTH */
++
+ f = Fopen (authorization_file, "r");
+ if (!f)
+ return -1;
+@@ -154,6 +250,14 @@
+ memcmp (protocols[i].name, auth->name, (int) auth->name_length) == 0 &&
+ protocols[i].Add)
+ {
++#ifdef NX_TRANS_AUTH
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "LoadAuthorization: Adding new record from file [%s].\n",
++ authorization_file);
++ #endif
++
++#endif
+ ++count;
+ (*protocols[i].Add) (auth->data_length, auth->data,
+ FakeClientID(0));
+@@ -162,7 +266,46 @@
+ XauDisposeAuth (auth);
+ }
+
++#ifdef NX_TRANS_AUTH
++
++ if (count == 0)
++ {
++ fprintf(stderr, "Warning: No authorization record could be read from file '%s'.\n",
++ authorization_file);
++
++ fprintf(stderr, "Warning: Please, create a valid authorization cookie using the command\n"
++ "Warning: 'xauth -f %s add <display> MIT-MAGIC-COOKIE-1 <cookie>'.\n",
++ authorization_file);
++ }
++
++#endif
++
++#ifdef NX_TRANS_AUTH
++ if (Fclose (f) != 0)
++ {
++ /*
++ * If the Fclose() fails, for example because of a signal,
++ * it's advisable to return the number of protocols read,
++ * if any, or otherwise the server would believe that no
++ * cookie is valid and eventually fall back to host based
++ * authentication. Note anyway that the new code in Check-
++ * Authorization() doesn't care the return value and gives
++ * a chance to the function to check the file at the next
++ * connection.
++ */
++
++ if (count > 0)
++ {
++ return count;
++ }
++ else
++ {
++ return -1;
++ }
++ }
++#else
+ Fclose (f);
++#endif
+ return count;
+ }
+
+@@ -194,7 +337,10 @@
+ int i;
+ struct stat buf;
+ static time_t lastmod = 0;
++
++ #ifndef NX_TRANS_AUTH
+ static Bool loaded = FALSE;
++ #endif
+
+ if (!authorization_file || stat(authorization_file, &buf))
+ {
+@@ -225,7 +371,67 @@
+ * entries for this server), and reloading it later fails, don't
+ * change anything. (loadauth == -1 && loaded)
+ */
+-
++
++#ifdef NX_TRANS_AUTH
++
++ /*
++ * The implementation of CheckAuthorization() was changed. The way
++ * the auth file was handled previously was questionable and could
++ * open the way to a vast array of security problems. There might be
++ * ways for an attacker to prevent the server from reading the file
++ * and it was enough for the server to fail reading the file once
++ * (because of a not blocked signal, for example) to leave the dis-
++ * play open to all the users running a session on the same terminal
++ * server.
++ *
++ * In NX we want to have only two cases: either we have to check an
++ * authorization file or we don't. In the first case we need to do our
++ * best to read the file at any new client access and never fall back
++ * to host based authentication. Falling back to local host access has
++ * no way back, as it will always take precedence over the auth cookie
++ * (unless the user explicitly disables, one by one, all the rules
++ * allowing local access, if and only if he/she becomes aware of the
++ * problem). In the second case we assume that user doesn't care secu-
++ * rity and so allow unrestricted access from the local machine.
++ */
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "CheckAuthorization: Going to set authorization with loadauth [%d].\n",
++ loadauth);
++ #endif
++
++ if (authorization_file)
++ {
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "CheckAuthorization: Disabling local host access.\n");
++ #endif
++
++ DisableLocalHost();
++ }
++ else
++ {
++ /*
++ * Enable host-based authentication only if
++ * the authorization file was not specified
++ * either on the command line or in the env-
++ * ironment.
++ */
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "CheckAuthorization: Enabling local host access.\n");
++ #endif
++
++ EnableLocalHost();
++ }
++
++ /*
++ * Avoid the 'unused variable' warning.
++ */
++
++ loadauth = loadauth;
++
++#else /* #ifdef NX_TRANS_AUTH */
++
+ if (loadauth > 0)
+ {
+ DisableLocalHost(); /* got at least one */
+@@ -233,6 +439,8 @@
+ }
+ else if (loadauth == 0 || !loaded)
+ EnableLocalHost ();
++
++#endif /* #ifdef NX_TRANS_AUTH */
+ }
+ if (name_length) {
+ for (i = 0; i < NUM_AUTHORIZATION; i++) {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_connection.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_connection.c.X.original
new file mode 100644
index 000000000..f25c0160e
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_connection.c.X.original
@@ -0,0 +1,48 @@
+--- ./nx-X11/programs/Xserver/os/connection.c.X.original 2015-02-13 14:03:44.788440645 +0100
++++ ./nx-X11/programs/Xserver/os/connection.c 2015-02-10 19:13:13.452699065 +0100
+@@ -486,6 +486,45 @@
+ #endif
+ }
+
++#ifdef NX_TRANS_SOCKET
++
++/*
++ * The following block is now defined also
++ * under Cygwin to support this environment.
++ */
++
++#ifndef __DARWIN__
++
++/*
++ * This is defined in Xtranssock.c and must
++ * be called explicitly as it doesn't share
++ * a pointer in the transport function table.
++ */
++
++extern void _XSERVTransSocketRejectConnection(XtransConnInfo);
++
++void
++RejectWellKnownSockets ()
++{
++ int i;
++
++ for (i = 0; i < ListenTransCount; i++)
++ {
++ _XSERVTransSocketRejectConnection(ListenTransConns[i]);
++ }
++}
++
++#endif /* #ifndef __DARWIN__ */
++
++#else /* #ifdef NX_TRANS_SOCKET */
++
++void
++RejectWellKnownSockets ()
++{
++}
++
++#endif /* #ifdef NX_TRANS_SOCKET */
++
+ void
+ ResetWellKnownSockets (void)
+ {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_log.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_log.c.X.original
new file mode 100644
index 000000000..44407e05a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_log.c.X.original
@@ -0,0 +1,136 @@
+--- ./nx-X11/programs/Xserver/os/log.c.X.original 2015-02-13 14:03:44.788440645 +0100
++++ ./nx-X11/programs/Xserver/os/log.c 2015-02-13 14:03:44.788440645 +0100
+@@ -78,6 +78,23 @@
+
+ /* $XFree86: xc/programs/Xserver/os/log.c,v 1.6 2003/11/07 13:45:27 tsi Exp $ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #ifdef HAVE_DIX_CONFIG_H
+ #include <dix-config.h>
+ #endif
+@@ -98,9 +115,17 @@
+ #define getpid(x) _getpid(x)
+ #endif
+
++#ifdef NX_TRANS_SOCKET
++
++#include "NX.h"
++
++#endif
+
+ #ifdef DDXOSVERRORF
+ void (*OsVendorVErrorFProc)(const char *, va_list args) = NULL;
++#ifdef NX_TRANS_EXIT
++int OsVendorVErrorFFatal = 0;
++#endif
+ #endif
+
+ static FILE *logFile = NULL;
+@@ -265,6 +290,32 @@
+ */
+ if (verb < 0 || logFileVerbosity >= verb || logVerbosity >= verb) {
+ vsnprintf(tmpBuffer, sizeof(tmpBuffer), f, args);
++#ifdef NX_TRANS_EXIT
++ /*
++ * Beautify the message. Make the
++ * first letter uppercase.
++ */
++
++ *tmpBuffer = toupper(*tmpBuffer);
++
++ /*
++ * Remove the trailing newline.
++ */
++
++ if (strlen(tmpBuffer) > 0 &&
++ *(tmpBuffer + strlen(tmpBuffer) - 1) == '\n') {
++ *(tmpBuffer + strlen(tmpBuffer) - 1) = '\0';
++ }
++
++ /*
++ * Remove the trailing full-stop.
++ */
++
++ if (strlen(tmpBuffer) > 0 &&
++ *(tmpBuffer + strlen(tmpBuffer) - 1) == '.') {
++ *(tmpBuffer + strlen(tmpBuffer) - 1) = '\0';
++ }
++#endif /* #ifdef NX_TRANS_EXIT */
+ len = strlen(tmpBuffer);
+ }
+ if ((verb < 0 || logVerbosity >= verb) && len > 0)
+@@ -404,12 +455,22 @@
+ void
+ AbortServer(void)
+ {
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "AbortServer: Going to abort the current server.\n");
++#endif
+ OsCleanup(TRUE);
+ AbortDDX();
+ fflush(stderr);
+ if (CoreDump)
+ abort();
++#ifdef NX_TRANS_EXIT
++#ifdef NX_TRANS_TEST
++ fprintf(stderr, "AbortServer: Going to clean up NX resources and exit.\n");
++#endif
++ NXTransExit(1);
++#else /* #ifdef NX_TRANS_EXIT */
+ exit (1);
++#endif
+ }
+
+ #ifndef AUDIT_PREFIX
+@@ -533,6 +594,27 @@
+ va_list args;
+ static Bool beenhere = FALSE;
+
++#ifdef NX_TRANS_EXIT
++ if (beenhere) {
++ fprintf(stderr, "Error: Aborting session with fatal error function reentered.\n");
++ }
++ else {
++ /*
++ * Tell to the log function that this
++ * is a fatal error.
++ */
++
++ OsVendorVErrorFFatal = 1;
++
++ fprintf(stderr, "Error: Aborting session with '");
++
++ va_start(args, f);
++ VErrorF(f, args);
++ va_end(args);
++
++ fprintf(stderr, "'.\n");
++ }
++#else /* #ifdef NX_TRANS_EXIT */
+ if (beenhere)
+ ErrorF("\nFatalError re-entered, aborting\n");
+ else
+@@ -542,6 +624,7 @@
+ VErrorF(f, args);
+ va_end(args);
+ ErrorF("\n");
++#endif /* #ifdef NX_TRANS_EXIT */
+ #ifdef DDXOSFATALERROR
+ if (!beenhere)
+ OsVendorFatalError();
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_oscolor.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_oscolor.c.X.original
new file mode 100644
index 000000000..88acc878a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_oscolor.c.X.original
@@ -0,0 +1,214 @@
+--- ./nx-X11/programs/Xserver/os/oscolor.c.X.original 2015-02-13 14:03:44.788440645 +0100
++++ ./nx-X11/programs/Xserver/os/oscolor.c 2015-02-13 14:03:44.788440645 +0100
+@@ -47,6 +47,17 @@
+ ******************************************************************/
+ /* $Xorg: oscolor.c,v 1.4 2001/02/09 02:05:23 xorgcvs Exp $ */
+
++#ifdef NX_TRANS_SOCKET
++
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <unistd.h>
++
++static char* nxAltRgbPaths[] = {"/usr/NX/share/rgb", "/usr/share/X11/rgb", "/etc/X11/rgb"};
++static char _NXRgbPath[1024];
++
++#endif
++
+ #ifdef HAVE_DIX_CONFIG_H
+ #include <dix-config.h>
+ #endif
+@@ -174,6 +185,154 @@
+
+ static dbEntryPtr hashTab[HASHSIZE];
+
++#ifdef NX_TRANS_SOCKET
++
++static int NXVerifyRgbPath(char *path)
++{
++ int size;
++ char *rgbPath;
++ struct stat rgbFileStat;
++
++ /*
++ * Check if rgb file is present.
++ */
++
++ size = strlen(path) + strlen(".txt") + 1;
++
++ rgbPath = (char *) ALLOCATE_LOCAL(size + 1);
++
++ strcpy(rgbPath, path);
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "NXVerifyRgbPath: Looking for [%s] file.\n",
++ rgbPath);
++ #endif
++
++ if (stat(rgbPath, &rgbFileStat) != 0)
++ {
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "NXVerifyRgbPath: Can't find the rgb file [%s].\n",
++ rgbPath);
++ #endif
++
++ strcat(rgbPath, ".txt");
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "NXVerifyRgbPath: Looking for [%s] file.\n",
++ rgbPath);
++ #endif
++
++ if (stat(rgbPath, &rgbFileStat) != 0)
++ {
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "NXVerifyRgbPath: Can't find the rgb file [%s].\n",
++ rgbPath);
++ #endif
++
++ DEALLOCATE_LOCAL(rgbPath);
++
++ return 0;
++ }
++ }
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "NXVerifyRgbPath: rgb path [%s] is valid.\n",
++ path);
++ #endif
++
++ DEALLOCATE_LOCAL(rgbPath);
++
++ return 1;
++}
++
++static const char *_NXGetRgbPath(const char *path)
++{
++ const char *systemEnv;
++ char rgbPath[1024];
++ int numAltRgbPaths;
++ int i;
++
++ /*
++ * Check the environment only once.
++ */
++
++ if (*_NXRgbPath != '\0')
++ {
++ return _NXRgbPath;
++ }
++
++ systemEnv = getenv("NX_SYSTEM");
++
++ if (systemEnv != NULL && *systemEnv != '\0')
++ {
++ if (strlen(systemEnv) + strlen("/share/rgb") + 1 > 1024)
++ {
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetRgbPath: WARNING! Maximum length of rgb file path exceeded.\n");
++ #endif
++
++ goto _NXGetRgbPathError;
++ }
++
++ strcpy(rgbPath, systemEnv);
++ strcat(rgbPath, "/share/rgb");
++
++ if (NXVerifyRgbPath(rgbPath) == 1)
++ {
++ strcpy(_NXRgbPath, systemEnv);
++ strcat(_NXRgbPath, "/share/rgb");
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetRgbPath: Using rgb file path [%s].\n",
++ _NXRgbPath);
++ #endif
++
++ return _NXRgbPath;
++ }
++ }
++
++ numAltRgbPaths = sizeof(nxAltRgbPaths) / sizeof(*nxAltRgbPaths);
++
++ for (i = 0; i < numAltRgbPaths; i++)
++ {
++ if (NXVerifyRgbPath(nxAltRgbPaths[i]) == 1)
++ {
++ if (strlen(nxAltRgbPaths[i]) + 1 > 1024)
++ {
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetRgbPath: WARNING! Maximum length of rgb file path exceeded.\n");
++ #endif
++
++ goto _NXGetRgbPathError;
++ }
++
++ strcpy(_NXRgbPath, nxAltRgbPaths[i]);
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetRgbPath: Using rgb file path [%s].\n",
++ _NXRgbPath);
++ #endif
++
++ return _NXRgbPath;
++ }
++ }
++
++_NXGetRgbPathError:
++
++ strcpy(_NXRgbPath, path);
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "_NXGetRgbPath: Using default rgb file path [%s].\n",
++ _NXRgbPath);
++ #endif
++
++ return _NXRgbPath;
++}
++
++#endif
+
+ static dbEntryPtr
+ lookup(char *name, int len, Bool create)
+@@ -229,9 +388,26 @@
+ if (!was_here)
+ {
+ #ifndef __UNIXOS2__
++#ifdef NX_TRANS_SOCKET
++ /*
++ * Add the trailing '.txt' if a
++ * 'rgb' file is not found.
++ */
++
++ struct stat statbuf;
++
++ path = (char*)ALLOCATE_LOCAL(strlen(_NXGetRgbPath(rgbPath)) + 5);
++ strcpy(path, _NXGetRgbPath(rgbPath));
++
++ if (stat(path, &statbuf) != 0)
++ {
++ strcat(path, ".txt");
++ }
++#else
+ path = (char*)ALLOCATE_LOCAL(strlen(rgbPath) +5);
+ strcpy(path, rgbPath);
+ strcat(path, ".txt");
++#endif
+ #else
+ char *tmp = (char*)__XOS2RedirRoot(rgbPath);
+ path = (char*)ALLOCATE_LOCAL(strlen(tmp) +5);
+@@ -240,7 +416,11 @@
+ #endif
+ if (!(rgb = fopen(path, "r")))
+ {
++#ifdef NX_TRANS_SOCKET
++ ErrorF( "Couldn't open RGB_DB '%s'\n", _NXGetRgbPath(rgbPath));
++#else
+ ErrorF( "Couldn't open RGB_DB '%s'\n", rgbPath );
++#endif
+ DEALLOCATE_LOCAL(path);
+ return FALSE;
+ }
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_utils.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_utils.c.X.original
new file mode 100644
index 000000000..5e18abfdb
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_utils.c.X.original
@@ -0,0 +1,250 @@
+--- ./nx-X11/programs/Xserver/os/utils.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/os/utils.c 2015-02-13 14:03:44.788440645 +0100
+@@ -52,6 +52,23 @@
+ */
+ /* $XFree86: xc/programs/Xserver/os/utils.c,v 3.96 2004/01/07 04:16:37 dawes Exp $ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #ifdef HAVE_DIX_CONFIG_H
+ #include <dix-config.h>
+ #endif
+@@ -246,6 +263,20 @@
+
+ #include <errno.h>
+
++#ifdef NX_TRANS_SOCKET
++
++#include "NX.h"
++#include "NXvars.h"
++
++#endif
++
++#ifdef NX_TRANS_EXIT
++
++void (*OsVendorStartRedirectErrorFProc)() = NULL;
++void (*OsVendorEndRedirectErrorFProc)() = NULL;
++
++#endif
++
+ Bool CoreDump;
+
+ #ifdef PANORAMIX
+@@ -543,6 +574,10 @@
+ {
+ int olderrno = errno;
+
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "GiveUp: Called with signal [%d].\n", sig);
++#endif
++
+ dispatchException |= DE_TERMINATE;
+ isItTimeToYield = TRUE;
+ #if defined(SYSV) && defined(X_NOT_POSIX)
+@@ -1548,12 +1583,21 @@
+ #define SMART_SCHEDULE_TIMER ITIMER_REAL
+ #endif
+
++#ifdef NX_TRANS_SOCKET
++void
++SmartScheduleStopTimer (void)
++#else
+ static void
+ SmartScheduleStopTimer (void)
++#endif
+ {
+ #ifdef SMART_SCHEDULE_POSSIBLE
+ struct itimerval timer;
+-
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "SmartScheduleStopTimer: Stopping timer.\n");
++ #endif
++
+ timer.it_interval.tv_sec = 0;
+ timer.it_interval.tv_usec = 0;
+ timer.it_value.tv_sec = 0;
+@@ -1568,7 +1612,21 @@
+ {
+ #ifdef SMART_SCHEDULE_POSSIBLE
+ struct itimerval timer;
+-
++
++ #ifdef NX_TRANS_SOCKET
++
++ if (SmartScheduleDisable)
++ {
++ return FALSE;
++ }
++
++ #endif
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "SmartScheduleStartTimer: Starting timer with [%ld] ms.\n",
++ SmartScheduleInterval);
++ #endif
++
+ SmartScheduleTimerStopped = FALSE;
+ timer.it_interval.tv_sec = 0;
+ timer.it_interval.tv_usec = SmartScheduleInterval * 1000;
+@@ -1586,6 +1644,12 @@
+ int olderrno = errno;
+
+ SmartScheduleTime += SmartScheduleInterval;
++
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "SmartScheduleTimer: Got timer with time [%ld] ms.\n",
++ SmartScheduleTime);
++ #endif
++
+ if (SmartScheduleIdle)
+ {
+ SmartScheduleStopTimer ();
+@@ -1603,6 +1667,10 @@
+ if (SmartScheduleDisable)
+ return TRUE;
+
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "SmartScheduleInit: Initializing the smart scheduler.\n");
++ #endif
++
+ bzero ((char *) &act, sizeof(struct sigaction));
+
+ /* Set up the timer signal function */
+@@ -1714,6 +1782,11 @@
+ ErrorF("System: `%s'\n", command);
+ #endif
+
++#ifdef NX_TRANS_EXIT
++ if (OsVendorStartRedirectErrorFProc != NULL) {
++ OsVendorStartRedirectErrorFProc();
++ }
++#endif
+ switch (pid = fork()) {
+ case -1: /* error */
+ p = -1;
+@@ -1730,6 +1803,11 @@
+ } while (p == -1 && errno == EINTR);
+
+ }
++#ifdef NX_TRANS_EXIT
++ if (OsVendorEndRedirectErrorFProc != NULL) {
++ OsVendorEndRedirectErrorFProc();
++ }
++#endif
+
+ #ifdef SIGCHLD
+ signal(SIGCHLD, csig);
+@@ -1765,11 +1843,23 @@
+ return NULL;
+ }
+
++#ifdef NX_TRANS_EXIT
++ if (OsVendorStartRedirectErrorFProc != NULL) {
++ OsVendorStartRedirectErrorFProc();
++ }
++ OsBlockSignals ();
++#endif
+ switch (pid = fork()) {
+ case -1: /* error */
+ close(pdes[0]);
+ close(pdes[1]);
+ xfree(cur);
++#ifdef NX_TRANS_EXIT
++ if (OsVendorEndRedirectErrorFProc != NULL) {
++ OsVendorEndRedirectErrorFProc();
++ }
++ OsReleaseSignals ();
++#endif
+ return NULL;
+ case 0: /* child */
+ if (setgid(getgid()) == -1)
+@@ -1791,12 +1881,61 @@
+ }
+ close(pdes[1]);
+ }
++
++ #ifdef NX_TRANS_SOCKET
++
++ /*
++ * Check if the child process should not
++ * use the parent's libraries.
++ */
++
++ if (_NXUnsetLibraryPath)
++ {
++ #ifndef __sun
++
++ unsetenv ("LD_LIBRARY_PATH");
++
++ #else
++
++ extern char **environ;
++
++ char **ep = environ;
++
++ ep = environ;
++
++ while (*ep)
++ {
++ if (!strncmp("LD_LIBRARY_PATH=", *ep, strlen("LD_LIBRARY_PATH=")))
++ {
++ break;
++ }
++
++ *ep++;
++ }
++
++ while (*ep)
++ {
++ *ep = *(ep + 1);
++ ep++;
++ }
++
++ #endif
++ }
++
++ #endif
++
++ #ifdef NX_TRANS_EXIT
++ OsReleaseSignals ();
++ #endif
++
+ execl("/bin/sh", "sh", "-c", command, (char *)NULL);
+ _exit(127);
+ }
+
++#ifndef NX_TRANS_EXIT
+ /* Avoid EINTR during stdio calls */
+ OsBlockSignals ();
++#endif
+
+ /* parent */
+ if (*type == 'r') {
+@@ -1945,6 +2084,11 @@
+ /* allow EINTR again */
+ OsReleaseSignals ();
+
++#ifdef NX_TRANS_EXIT
++ if (OsVendorEndRedirectErrorFProc != NULL) {
++ OsVendorEndRedirectErrorFProc();
++ }
++#endif
+ return pid == -1 ? -1 : pstat;
+ }
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xdmcp.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xdmcp.c.X.original
new file mode 100644
index 000000000..47e231453
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xdmcp.c.X.original
@@ -0,0 +1,59 @@
+--- ./nx-X11/programs/Xserver/os/xdmcp.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/os/xdmcp.c 2015-02-10 19:13:13.472698316 +0100
+@@ -59,6 +59,13 @@
+ #include <netdir.h>
+ #endif
+
++#ifndef NX_TRANS_SOCKET
++
++#define NX_TRANS_SOCKET
++#define NX_TRANS_TEST
++
++#endif
++
+ #ifdef XDMCP
+ #undef REQUEST
+
+@@ -71,6 +78,15 @@
+ #define X_INCLUDE_NETDB_H
+ #include <X11/Xos_r.h>
+
++#ifdef NX_TRANS_SOCKET
++
++xdmcp_states XdmcpState;
++
++int XdmcpStartTime;
++int XdmcpTimeOutRtx;
++
++#endif
++
+ extern char *defaultDisplayClass;
+
+ static int xdmcpSocket, sessionSocket;
+@@ -590,6 +606,12 @@
+ void
+ XdmcpInit(void)
+ {
++#ifdef NX_TRANS_SOCKET
++
++ XdmcpStartTime = GetTimeInMillis();
++
++#endif
++
+ state = XDM_INIT_STATE;
+ #ifdef HASXDMAUTH
+ if (xdmAuthCookie)
+@@ -699,6 +721,13 @@
+ fd_set* LastSelectMask = (fd_set*)pReadmask;
+ fd_set devicesReadable;
+
++#ifdef NX_TRANS_SOCKET
++
++ XdmcpState = state;
++ XdmcpTimeOutRtx = timeOutRtx;
++
++#endif
++
+ if (state == XDM_OFF)
+ return;
+ if (i > 0)
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xprintf.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xprintf.c.X.original
new file mode 100644
index 000000000..fa0796dc9
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_os_xprintf.c.X.original
@@ -0,0 +1,75 @@
+--- ./nx-X11/programs/Xserver/os/xprintf.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/os/xprintf.c 2015-02-10 19:13:13.480698017 +0100
+@@ -43,6 +43,63 @@
+ # endif
+ #endif
+
++#ifdef NX_TRANS_SOCKET
++
++#define PANIC
++#define WARNING
++#undef TEST
++#undef DEBUG
++
++#define START_SIZE 256
++#define END_SIZE 2048
++
++char *
++Xvprintf(const char *format, va_list va)
++{
++ char *ret;
++ char *newret;
++ int size;
++ int r;
++
++ size = 0;
++
++ for (;;)
++ {
++ if (size == 0)
++ {
++ ret = (char *)malloc(START_SIZE);
++ if (ret == NULL)
++ return NULL;
++ size = START_SIZE;
++ }
++ else if (size < END_SIZE &&
++ (newret = (char *) realloc(ret, 2 * size)) != NULL)
++ {
++ ret = newret;
++ size = 2 * size;
++ }
++ else
++ {
++ free(ret);
++ return NULL;
++ }
++
++ r = vsnprintf(ret, size, format, va);
++
++ if (r == -1 || r == size || r > size || r == size - 1)
++ {
++ continue;
++ }
++ else
++ {
++ ret[r] = 0;
++ return ret;
++ }
++ }
++}
++
++#else
++
+ char *
+ Xvprintf(const char *format, va_list va)
+ {
+@@ -63,6 +120,8 @@
+ return ret;
+ }
+
++#endif
++
+ char *Xprintf(const char *format, ...)
+ {
+ char *ret;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_panoramiXproto.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_panoramiXproto.h.X.original
new file mode 100644
index 000000000..3424f2e4a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_panoramiXproto.h.X.original
@@ -0,0 +1,195 @@
+--- ./nx-X11/programs/Xserver/randr/panoramiXproto.h.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/panoramiXproto.h 2015-02-10 19:13:13.612693075 +0100
+@@ -0,0 +1,192 @@
++/* $Xorg: panoramiXproto.h,v 1.4 2000/08/18 04:05:45 coskrey Exp $ */
++/*****************************************************************
++Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software.
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
++BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
++WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
++IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of Digital Equipment Corporation
++shall not be used in advertising or otherwise to promote the sale, use or other
++dealings in this Software without prior written authorization from Digital
++Equipment Corporation.
++******************************************************************/
++/* $XFree86: xc/include/extensions/panoramiXproto.h,v 3.5 2000/03/01 01:04:21 dawes Exp $ */
++
++/* THIS IS NOT AN X PROJECT TEAM SPECIFICATION */
++
++#ifndef _PANORAMIXPROTO_H_
++#define _PANORAMIXPROTO_H_
++
++#define PANORAMIX_PROTOCOL_NAME "XINERAMA"
++
++#define X_PanoramiXQueryVersion 0
++#define X_PanoramiXGetState 1
++#define X_PanoramiXGetScreenCount 2
++#define X_PanoramiXGetScreenSize 3
++
++#define X_XineramaIsActive 4
++#define X_XineramaQueryScreens 5
++
++typedef struct _PanoramiXQueryVersion {
++ CARD8 reqType; /* always PanoramiXReqCode */
++ CARD8 panoramiXReqType; /* always X_PanoramiXQueryVersion */
++ CARD16 length B16;
++ CARD8 clientMajor;
++ CARD8 clientMinor;
++ CARD16 unused B16;
++} xPanoramiXQueryVersionReq;
++
++#define sz_xPanoramiXQueryVersionReq 8
++
++typedef struct {
++ CARD8 type; /* must be X_Reply */
++ CARD8 pad1; /* unused */
++ CARD16 sequenceNumber B16; /* last sequence number */
++ CARD32 length B32; /* 0 */
++ CARD16 majorVersion B16;
++ CARD16 minorVersion B16;
++ CARD32 pad2 B32; /* unused */
++ CARD32 pad3 B32; /* unused */
++ CARD32 pad4 B32; /* unused */
++ CARD32 pad5 B32; /* unused */
++ CARD32 pad6 B32; /* unused */
++} xPanoramiXQueryVersionReply;
++
++#define sz_xPanoramiXQueryVersionReply 32
++
++
++typedef struct _PanoramiXGetState {
++ CARD8 reqType; /* always PanoramiXReqCode */
++ CARD8 panoramiXReqType; /* always X_PanoramiXGetState */
++ CARD16 length B16;
++ CARD32 window B32;
++} xPanoramiXGetStateReq;
++#define sz_xPanoramiXGetStateReq 8
++
++typedef struct {
++ BYTE type;
++ BYTE state;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD32 window B32;
++ CARD32 pad1 B32; /* unused */
++ CARD32 pad2 B32; /* unused */
++ CARD32 pad3 B32; /* unused */
++ CARD32 pad4 B32; /* unused */
++ CARD32 pad5 B32; /* unused */
++} xPanoramiXGetStateReply;
++
++#define sz_panoramiXGetStateReply 32
++
++typedef struct _PanoramiXGetScreenCount {
++ CARD8 reqType; /* always PanoramiXReqCode */
++ CARD8 panoramiXReqType; /* always X_PanoramiXGetScreenCount */
++ CARD16 length B16;
++ CARD32 window B32;
++} xPanoramiXGetScreenCountReq;
++#define sz_xPanoramiXGetScreenCountReq 8
++
++typedef struct {
++ BYTE type;
++ BYTE ScreenCount;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD32 window B32;
++ CARD32 pad1 B32; /* unused */
++ CARD32 pad2 B32; /* unused */
++ CARD32 pad3 B32; /* unused */
++ CARD32 pad4 B32; /* unused */
++ CARD32 pad5 B32; /* unused */
++} xPanoramiXGetScreenCountReply;
++#define sz_panoramiXGetScreenCountReply 32
++
++typedef struct _PanoramiXGetScreenSize {
++ CARD8 reqType; /* always PanoramiXReqCode */
++ CARD8 panoramiXReqType; /* always X_PanoramiXGetState */
++ CARD16 length B16;
++ CARD32 window B32;
++ CARD32 screen B32;
++} xPanoramiXGetScreenSizeReq;
++#define sz_xPanoramiXGetScreenSizeReq 12
++
++typedef struct {
++ BYTE type;
++ CARD8 pad1;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD32 width B32;
++ CARD32 height B32;
++ CARD32 window B32;
++ CARD32 screen B32;
++ CARD32 pad2 B32; /* unused */
++ CARD32 pad3 B32; /* unused */
++} xPanoramiXGetScreenSizeReply;
++#define sz_panoramiXGetScreenSizeReply 32
++
++/************ Alternate protocol ******************/
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 panoramiXReqType;
++ CARD16 length B16;
++} xXineramaIsActiveReq;
++#define sz_xXineramaIsActiveReq 4
++
++typedef struct {
++ BYTE type;
++ CARD8 pad1;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD32 state B32;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++ CARD32 pad6 B32;
++} xXineramaIsActiveReply;
++#define sz_XineramaIsActiveReply 32
++
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 panoramiXReqType;
++ CARD16 length B16;
++} xXineramaQueryScreensReq;
++#define sz_xXineramaQueryScreensReq 4
++
++typedef struct {
++ BYTE type;
++ CARD8 pad1;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD32 number B32;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++ CARD32 pad6 B32;
++} xXineramaQueryScreensReply;
++#define sz_XineramaQueryScreensReply 32
++
++typedef struct {
++ INT16 x_org B16;
++ INT16 y_org B16;
++ CARD16 width B16;
++ CARD16 height B16;
++} xXineramaScreenInfo;
++#define sz_XineramaScreenInfo 8
++
++#endif
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.c.X.original
new file mode 100644
index 000000000..d19f82022
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.c.X.original
@@ -0,0 +1,72 @@
+--- ./nx-X11/programs/Xserver/randr/randr.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/randr.c 2015-02-10 19:13:13.616692925 +0100
+@@ -25,6 +25,23 @@
+ * Keith Packard, Intel Corporation
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #define NEED_REPLIES
+ #define NEED_EVENTS
+ #ifdef HAVE_DIX_CONFIG_H
+@@ -56,9 +73,14 @@
+ int RREventBase;
+ int RRErrorBase;
+ RESTYPE RRClientType, RREventType; /* resource types for event masks */
+-DevPrivateKey RRClientPrivateKey = &RRClientPrivateKey;
+
++#ifndef NXAGENT_SERVER
++DevPrivateKey RRClientPrivateKey = &RRClientPrivateKey;
+ DevPrivateKey rrPrivKey = &rrPrivKey;
++#else
++int RRClientPrivateIndex;
++int rrPrivIndex = -1;
++#endif
+
+ static void
+ RRClientCallback (CallbackListPtr *list,
+@@ -203,6 +225,10 @@
+ {
+ if (RRGeneration != serverGeneration)
+ {
++ #ifdef NXAGENT_SERVER
++ if ((rrPrivIndex = AllocateScreenPrivateIndex()) < 0)
++ return FALSE;
++ #endif
+ if (!RRModeInit ())
+ return FALSE;
+ if (!RRCrtcInit ())
+@@ -324,10 +350,18 @@
+
+ if (RRNScreens == 0) return;
+
++ #ifndef NXAGENT_SERVER
+ if (!dixRequestPrivate(RRClientPrivateKey,
+ sizeof (RRClientRec) +
+ screenInfo.numScreens * sizeof (RRTimesRec)))
+ return;
++ #else
++ RRClientPrivateIndex = AllocateClientPrivateIndex ();
++ if (!AllocateClientPrivate (RRClientPrivateIndex,
++ sizeof (RRClientRec) +
++ screenInfo.numScreens * sizeof (RRTimesRec)))
++ return;
++ #endif
+ if (!AddCallback (&ClientStateCallback, RRClientCallback, 0))
+ return;
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.h.X.original
new file mode 100644
index 000000000..a6f2d9c95
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randr.h.X.original
@@ -0,0 +1,144 @@
+--- ./nx-X11/programs/Xserver/randr/randr.h.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/randr.h 2015-02-10 19:13:13.628692476 +0100
+@@ -0,0 +1,141 @@
++/*
++ * Copyright © 2000 Compaq Computer Corporation
++ * Copyright © 2002 Hewlett Packard Company
++ * Copyright © 2006 Intel Corporation
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that copyright
++ * notice and this permission notice appear in supporting documentation, and
++ * that the name of the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
++ *
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++ * OF THIS SOFTWARE.
++ *
++ * Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
++ * Keith Packard, Intel Corporation
++ */
++
++#ifndef _RANDR_H_
++#define _RANDR_H_
++
++typedef unsigned short Rotation;
++typedef unsigned short SizeID;
++typedef unsigned short SubpixelOrder;
++typedef unsigned short Connection;
++typedef unsigned short XRandrRotation;
++typedef unsigned short XRandrSizeID;
++typedef unsigned short XRandrSubpixelOrder;
++typedef unsigned long XRandrModeFlags;
++
++#define RANDR_NAME "RANDR"
++#define RANDR_MAJOR 1
++#define RANDR_MINOR 2
++
++#define RRNumberErrors 3
++#define RRNumberEvents 2
++#define RRNumberRequests 25
++
++#define X_RRQueryVersion 0
++/* we skip 1 to make old clients fail pretty immediately */
++#define X_RROldGetScreenInfo 1
++#define X_RR1_0SetScreenConfig 2
++/* V1.0 apps share the same set screen config request id */
++#define X_RRSetScreenConfig 2
++#define X_RROldScreenChangeSelectInput 3
++/* 3 used to be ScreenChangeSelectInput; deprecated */
++#define X_RRSelectInput 4
++#define X_RRGetScreenInfo 5
++
++/* V1.2 additions */
++#define X_RRGetScreenSizeRange 6
++#define X_RRSetScreenSize 7
++#define X_RRGetScreenResources 8
++#define X_RRGetOutputInfo 9
++#define X_RRListOutputProperties 10
++#define X_RRQueryOutputProperty 11
++#define X_RRConfigureOutputProperty 12
++#define X_RRChangeOutputProperty 13
++#define X_RRDeleteOutputProperty 14
++#define X_RRGetOutputProperty 15
++#define X_RRCreateMode 16
++#define X_RRDestroyMode 17
++#define X_RRAddOutputMode 18
++#define X_RRDeleteOutputMode 19
++#define X_RRGetCrtcInfo 20
++#define X_RRSetCrtcConfig 21
++#define X_RRGetCrtcGammaSize 22
++#define X_RRGetCrtcGamma 23
++#define X_RRSetCrtcGamma 24
++
++/* Event selection bits */
++#define RRScreenChangeNotifyMask (1L << 0)
++/* V1.2 additions */
++#define RRCrtcChangeNotifyMask (1L << 1)
++#define RROutputChangeNotifyMask (1L << 2)
++#define RROutputPropertyNotifyMask (1L << 3)
++
++/* Event codes */
++#define RRScreenChangeNotify 0
++/* V1.2 additions */
++#define RRNotify 1
++/* RRNotify Subcodes */
++#define RRNotify_CrtcChange 0
++#define RRNotify_OutputChange 1
++#define RRNotify_OutputProperty 2
++
++/* used in the rotation field; rotation and reflection in 0.1 proto. */
++#define RR_Rotate_0 1
++#define RR_Rotate_90 2
++#define RR_Rotate_180 4
++#define RR_Rotate_270 8
++
++/* new in 1.0 protocol, to allow reflection of screen */
++
++#define RR_Reflect_X 16
++#define RR_Reflect_Y 32
++
++#define RRSetConfigSuccess 0
++#define RRSetConfigInvalidConfigTime 1
++#define RRSetConfigInvalidTime 2
++#define RRSetConfigFailed 3
++
++/* new in 1.2 protocol */
++
++#define RR_HSyncPositive 0x00000001
++#define RR_HSyncNegative 0x00000002
++#define RR_VSyncPositive 0x00000004
++#define RR_VSyncNegative 0x00000008
++#define RR_Interlace 0x00000010
++#define RR_DoubleScan 0x00000020
++#define RR_CSync 0x00000040
++#define RR_CSyncPositive 0x00000080
++#define RR_CSyncNegative 0x00000100
++#define RR_HSkewPresent 0x00000200
++#define RR_BCast 0x00000400
++#define RR_PixelMultiplex 0x00000800
++#define RR_DoubleClock 0x00001000
++#define RR_ClockDivideBy2 0x00002000
++
++#define RR_Connected 0
++#define RR_Disconnected 1
++#define RR_UnknownConnection 2
++
++#define BadRROutput 0
++#define BadRRCrtc 1
++#define BadRRMode 2
++
++/* Conventional RandR output properties */
++
++#define RR_PROPERTY_RANDR_EDID "RANDR_EDID"
++
++#endif /* _RANDR_H_ */
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randrproto.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randrproto.h.X.original
new file mode 100644
index 000000000..5c4ed74eb
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_randrproto.h.X.original
@@ -0,0 +1,658 @@
+--- ./nx-X11/programs/Xserver/randr/randrproto.h.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/randrproto.h 2015-02-10 19:13:13.632692326 +0100
+@@ -0,0 +1,655 @@
++/*
++ * Copyright © 2000 Compaq Computer Corporation
++ * Copyright © 2002 Hewlett-Packard Company
++ * Copyright © 2006 Intel Corporation
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that copyright
++ * notice and this permission notice appear in supporting documentation, and
++ * that the name of the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
++ *
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++ * OF THIS SOFTWARE.
++ *
++ * Author: Jim Gettys, Hewlett-Packard Company, Inc.
++ * Keith Packard, Intel Corporation
++ */
++
++/* note that RANDR 1.0 is incompatible with version 0.0, or 0.1 */
++/* V1.0 removes depth switching from the protocol */
++#ifndef _XRANDRP_H_
++#define _XRANDRP_H_
++
++/*#include <X11/extensions/randr.h>*/
++#include "randr.h"
++
++#define Window CARD32
++#define Drawable CARD32
++#define Font CARD32
++#define Pixmap CARD32
++#define Cursor CARD32
++#define Colormap CARD32
++#define GContext CARD32
++#define Atom CARD32
++#define Time CARD32
++#define KeyCode CARD8
++#define KeySym CARD32
++#define RROutput CARD32
++#define RRMode CARD32
++#define RRCrtc CARD32
++#define RRModeFlags CARD32
++
++#define Rotation CARD16
++#define SizeID CARD16
++#define SubpixelOrder CARD16
++
++/*
++ * data structures
++ */
++
++typedef struct {
++ CARD16 widthInPixels B16;
++ CARD16 heightInPixels B16;
++ CARD16 widthInMillimeters B16;
++ CARD16 heightInMillimeters B16;
++} xScreenSizes;
++#define sz_xScreenSizes 8
++
++/*
++ * requests and replies
++ */
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ CARD32 majorVersion B32;
++ CARD32 minorVersion B32;
++} xRRQueryVersionReq;
++#define sz_xRRQueryVersionReq 12
++
++typedef struct {
++ BYTE type; /* X_Reply */
++ BYTE pad1;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD32 majorVersion B32;
++ CARD32 minorVersion B32;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++} xRRQueryVersionReply;
++#define sz_xRRQueryVersionReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Window window B32;
++} xRRGetScreenInfoReq;
++#define sz_xRRGetScreenInfoReq 8
++
++/*
++ * the xRRScreenInfoReply structure is followed by:
++ *
++ * the size information
++ */
++
++
++typedef struct {
++ BYTE type; /* X_Reply */
++ BYTE setOfRotations;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ Window root B32;
++ Time timestamp B32;
++ Time configTimestamp B32;
++ CARD16 nSizes B16;
++ SizeID sizeID B16;
++ Rotation rotation B16;
++ CARD16 rate B16;
++ CARD16 nrateEnts B16;
++ CARD16 pad B16;
++} xRRGetScreenInfoReply;
++#define sz_xRRGetScreenInfoReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Drawable drawable B32;
++ Time timestamp B32;
++ Time configTimestamp B32;
++ SizeID sizeID B16;
++ Rotation rotation B16;
++} xRR1_0SetScreenConfigReq;
++#define sz_xRR1_0SetScreenConfigReq 20
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Drawable drawable B32;
++ Time timestamp B32;
++ Time configTimestamp B32;
++ SizeID sizeID B16;
++ Rotation rotation B16;
++ CARD16 rate B16;
++ CARD16 pad B16;
++} xRRSetScreenConfigReq;
++#define sz_xRRSetScreenConfigReq 24
++
++typedef struct {
++ BYTE type; /* X_Reply */
++ CARD8 status;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ Time newTimestamp B32;
++ Time newConfigTimestamp B32;
++ Window root;
++ CARD16 subpixelOrder B16;
++ CARD16 pad4 B16;
++ CARD32 pad5 B32;
++ CARD32 pad6 B32;
++} xRRSetScreenConfigReply;
++#define sz_xRRSetScreenConfigReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Window window B32;
++ CARD16 enable B16;
++ CARD16 pad2 B16;
++} xRRSelectInputReq;
++#define sz_xRRSelectInputReq 12
++
++/*
++ * Additions for version 1.2
++ */
++
++typedef struct _xRRModeInfo {
++ RRMode id B32;
++ CARD16 width B16;
++ CARD16 height B16;
++ CARD32 dotClock B32;
++ CARD16 hSyncStart B16;
++ CARD16 hSyncEnd B16;
++ CARD16 hTotal B16;
++ CARD16 hSkew B16;
++ CARD16 vSyncStart B16;
++ CARD16 vSyncEnd B16;
++ CARD16 vTotal B16;
++ CARD16 nameLength B16;
++ RRModeFlags modeFlags B32;
++} xRRModeInfo;
++#define sz_xRRModeInfo 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Window window B32;
++} xRRGetScreenSizeRangeReq;
++#define sz_xRRGetScreenSizeRangeReq 8
++
++typedef struct {
++ BYTE type; /* X_Reply */
++ CARD8 pad;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD16 minWidth B16;
++ CARD16 minHeight B16;
++ CARD16 maxWidth B16;
++ CARD16 maxHeight B16;
++ CARD32 pad0 B32;
++ CARD32 pad1 B32;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++} xRRGetScreenSizeRangeReply;
++#define sz_xRRGetScreenSizeRangeReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Window window B32;
++ CARD16 width B16;
++ CARD16 height B16;
++ CARD32 widthInMillimeters B32;
++ CARD32 heightInMillimeters B32;
++} xRRSetScreenSizeReq;
++#define sz_xRRSetScreenSizeReq 20
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Window window B32;
++} xRRGetScreenResourcesReq;
++#define sz_xRRGetScreenResourcesReq 8
++
++typedef struct {
++ BYTE type;
++ CARD8 pad;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ Time timestamp B32;
++ Time configTimestamp B32;
++ CARD16 nCrtcs B16;
++ CARD16 nOutputs B16;
++ CARD16 nModes B16;
++ CARD16 nbytesNames B16;
++ CARD32 pad1 B32;
++ CARD32 pad2 B32;
++} xRRGetScreenResourcesReply;
++#define sz_xRRGetScreenResourcesReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ Time configTimestamp B32;
++} xRRGetOutputInfoReq;
++#define sz_xRRGetOutputInfoReq 12
++
++typedef struct {
++ BYTE type;
++ CARD8 status;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ Time timestamp B32;
++ RRCrtc crtc B32;
++ CARD32 mmWidth B32;
++ CARD32 mmHeight B32;
++ CARD8 connection;
++ CARD8 subpixelOrder;
++ CARD16 nCrtcs B16;
++ CARD16 nModes B16;
++ CARD16 nPreferred B16;
++ CARD16 nClones B16;
++ CARD16 nameLength B16;
++} xRRGetOutputInfoReply;
++#define sz_xRRGetOutputInfoReply 36
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++} xRRListOutputPropertiesReq;
++#define sz_xRRListOutputPropertiesReq 8
++
++typedef struct {
++ BYTE type;
++ CARD8 pad0;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD16 nAtoms B16;
++ CARD16 pad1 B16;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++ CARD32 pad6 B32;
++} xRRListOutputPropertiesReply;
++#define sz_xRRListOutputPropertiesReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ Atom property B32;
++} xRRQueryOutputPropertyReq;
++#define sz_xRRQueryOutputPropertyReq 12
++
++typedef struct {
++ BYTE type;
++ BYTE pad0;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ BOOL pending;
++ BOOL range;
++ BOOL immutable;
++ BYTE pad1;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++ CARD32 pad6 B32;
++} xRRQueryOutputPropertyReply;
++#define sz_xRRQueryOutputPropertyReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ Atom property B32;
++ BOOL pending;
++ BOOL range;
++ CARD16 pad B16;
++} xRRConfigureOutputPropertyReq;
++#define sz_xRRConfigureOutputPropertyReq 16
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ Atom property B32;
++ Atom type B32;
++ CARD8 format;
++ CARD8 mode;
++ CARD16 pad;
++ CARD32 nUnits B32;
++} xRRChangeOutputPropertyReq;
++#define sz_xRRChangeOutputPropertyReq 24
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ Atom property B32;
++} xRRDeleteOutputPropertyReq;
++#define sz_xRRDeleteOutputPropertyReq 12
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ Atom property B32;
++ Atom type B32;
++ CARD32 longOffset B32;
++ CARD32 longLength B32;
++#ifdef __cplusplus
++ BOOL _delete;
++#else
++ BOOL delete;
++#endif
++ BOOL pending;
++ CARD16 pad1 B16;
++} xRRGetOutputPropertyReq;
++#define sz_xRRGetOutputPropertyReq 28
++
++typedef struct {
++ BYTE type;
++ CARD8 format;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ Atom propertyType B32;
++ CARD32 bytesAfter B32;
++ CARD32 nItems B32;
++ CARD32 pad1 B32;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++} xRRGetOutputPropertyReply;
++#define sz_xRRGetOutputPropertyReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ Window window B32;
++ xRRModeInfo modeInfo;
++} xRRCreateModeReq;
++#define sz_xRRCreateModeReq 40
++
++typedef struct {
++ BYTE type;
++ CARD8 pad0;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ RRMode mode B32;
++ CARD32 pad1 B32;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++} xRRCreateModeReply;
++#define sz_xRRCreateModeReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RRMode mode B32;
++} xRRDestroyModeReq;
++#define sz_xRRDestroyModeReq 8
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ RRMode mode B32;
++} xRRAddOutputModeReq;
++#define sz_xRRAddOutputModeReq 12
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RROutput output B32;
++ RRMode mode B32;
++} xRRDeleteOutputModeReq;
++#define sz_xRRDeleteOutputModeReq 12
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RRCrtc crtc B32;
++ Time configTimestamp B32;
++} xRRGetCrtcInfoReq;
++#define sz_xRRGetCrtcInfoReq 12
++
++typedef struct {
++ BYTE type;
++ CARD8 status;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ Time timestamp B32;
++ INT16 x B16;
++ INT16 y B16;
++ CARD16 width B16;
++ CARD16 height B16;
++ RRMode mode B32;
++ Rotation rotation B16;
++ Rotation rotations B16;
++ CARD16 nOutput B16;
++ CARD16 nPossibleOutput B16;
++} xRRGetCrtcInfoReply;
++#define sz_xRRGetCrtcInfoReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RRCrtc crtc B32;
++ Time timestamp B32;
++ Time configTimestamp B32;
++ INT16 x B16;
++ INT16 y B16;
++ RRMode mode B32;
++ Rotation rotation B16;
++ CARD16 pad B16;
++} xRRSetCrtcConfigReq;
++#define sz_xRRSetCrtcConfigReq 28
++
++typedef struct {
++ BYTE type;
++ CARD8 status;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ Time newTimestamp B32;
++ CARD32 pad1 B32;
++ CARD32 pad2 B16;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++} xRRSetCrtcConfigReply;
++#define sz_xRRSetCrtcConfigReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RRCrtc crtc B32;
++} xRRGetCrtcGammaSizeReq;
++#define sz_xRRGetCrtcGammaSizeReq 8
++
++typedef struct {
++ BYTE type;
++ CARD8 status;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD16 size B16;
++ CARD16 pad1 B16;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++ CARD32 pad6 B32;
++} xRRGetCrtcGammaSizeReply;
++#define sz_xRRGetCrtcGammaSizeReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RRCrtc crtc B32;
++} xRRGetCrtcGammaReq;
++#define sz_xRRGetCrtcGammaReq 8
++
++typedef struct {
++ BYTE type;
++ CARD8 status;
++ CARD16 sequenceNumber B16;
++ CARD32 length B32;
++ CARD16 size B16;
++ CARD16 pad1 B16;
++ CARD32 pad2 B32;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++ CARD32 pad5 B32;
++ CARD32 pad6 B32;
++} xRRGetCrtcGammaReply;
++#define sz_xRRGetCrtcGammaReply 32
++
++typedef struct {
++ CARD8 reqType;
++ CARD8 randrReqType;
++ CARD16 length B16;
++ RRCrtc crtc B32;
++ CARD16 size B16;
++ CARD16 pad1 B16;
++} xRRSetCrtcGammaReq;
++#define sz_xRRSetCrtcGammaReq 12
++
++/*
++ * event
++ */
++typedef struct {
++ CARD8 type; /* always evBase + ScreenChangeNotify */
++ CARD8 rotation; /* new rotation */
++ CARD16 sequenceNumber B16;
++ Time timestamp B32; /* time screen was changed */
++ Time configTimestamp B32; /* time config data was changed */
++ Window root B32; /* root window */
++ Window window B32; /* window requesting notification */
++ SizeID sizeID B16; /* new size ID */
++ CARD16 subpixelOrder B16; /* subpixel order */
++ CARD16 widthInPixels B16; /* new size */
++ CARD16 heightInPixels B16;
++ CARD16 widthInMillimeters B16;
++ CARD16 heightInMillimeters B16;
++} xRRScreenChangeNotifyEvent;
++#define sz_xRRScreenChangeNotifyEvent 32
++
++typedef struct {
++ CARD8 type; /* always evBase + RRNotify */
++ CARD8 subCode; /* RRNotify_CrtcChange */
++ CARD16 sequenceNumber B16;
++ Time timestamp B32; /* time crtc was changed */
++ Window window B32; /* window requesting notification */
++ RRCrtc crtc B32; /* affected CRTC */
++ RRMode mode B32; /* current mode */
++ CARD16 rotation B16; /* rotation and reflection */
++ CARD16 pad1 B16; /* unused */
++ INT16 x B16; /* new location */
++ INT16 y B16;
++ CARD16 width B16; /* new size */
++ CARD16 height B16;
++} xRRCrtcChangeNotifyEvent;
++#define sz_xRRCrtcChangeNotifyEvent 32
++
++typedef struct {
++ CARD8 type; /* always evBase + RRNotify */
++ CARD8 subCode; /* RRNotify_OutputChange */
++ CARD16 sequenceNumber B16;
++ Time timestamp B32; /* time crtc was changed */
++ Time configTimestamp B32; /* time crtc was changed */
++ Window window B32; /* window requesting notification */
++ RROutput output B32; /* affected output */
++ RRCrtc crtc B32; /* current crtc */
++ RRMode mode B32; /* current mode */
++ CARD16 rotation B16; /* rotation and reflection */
++ CARD8 connection; /* connection status */
++ CARD8 subpixelOrder; /* subpixel order */
++} xRROutputChangeNotifyEvent;
++#define sz_xRROutputChangeNotifyEvent 32
++
++typedef struct {
++ CARD8 type; /* always evBase + RRNotify */
++ CARD8 subCode; /* RRNotify_OutputProperty */
++ CARD16 sequenceNumber B16;
++ Window window B32; /* window requesting notification */
++ RROutput output B32; /* affected output */
++ Atom atom B32; /* property name */
++ Time timestamp B32; /* time crtc was changed */
++ CARD8 state; /* NewValue or Deleted */
++ CARD8 pad1;
++ CARD16 pad2 B16;
++ CARD32 pad3 B32;
++ CARD32 pad4 B32;
++} xRROutputPropertyNotifyEvent;
++#define sz_xRROutputPropertyNotifyEvent 32
++
++#undef RRModeFlags
++#undef RRCrtc
++#undef RRMode
++#undef RROutput
++#undef RRMode
++#undef RRCrtc
++#undef Drawable
++#undef Window
++#undef Font
++#undef Pixmap
++#undef Cursor
++#undef Colormap
++#undef GContext
++#undef Atom
++#undef Time
++#undef KeyCode
++#undef KeySym
++#undef Rotation
++#undef SizeID
++#undef SubpixelOrder
++
++#endif /* _XRANDRP_H_ */
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_registry.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_registry.h.X.original
new file mode 100644
index 000000000..601bc0a98
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_registry.h.X.original
@@ -0,0 +1,67 @@
+--- ./nx-X11/programs/Xserver/randr/registry.h.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/registry.h 2015-02-10 19:13:13.616692925 +0100
+@@ -0,0 +1,64 @@
++/***********************************************************
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++******************************************************************/
++
++#ifndef DIX_REGISTRY_H
++#define DIX_REGISTRY_H
++
++/*
++ * Result returned from any unsuccessful lookup
++ */
++#define XREGISTRY_UNKNOWN "<unknown>"
++
++#ifdef XREGISTRY
++
++#include "resource.h"
++#include "extnsionst.h"
++
++/* Internal string registry - for auditing, debugging, security, etc. */
++
++/*
++ * Registration functions. The name string is not copied, so it must
++ * not be a stack variable.
++ */
++void RegisterResourceName(RESTYPE type, char *name);
++void RegisterExtensionNames(ExtensionEntry *ext);
++
++/*
++ * Lookup functions. The returned string must not be modified or freed.
++ */
++const char *LookupMajorName(int major);
++const char *LookupRequestName(int major, int minor);
++const char *LookupEventName(int event);
++const char *LookupErrorName(int error);
++const char *LookupResourceName(RESTYPE rtype);
++
++/*
++ * Setup and teardown
++ */
++void dixResetRegistry(void);
++
++#else /* XREGISTRY */
++
++/* Define calls away when the registry is not being built. */
++
++#define RegisterResourceName(a, b) { ; }
++#define RegisterExtensionNames(a) { ; }
++
++#define LookupMajorName(a) XREGISTRY_UNKNOWN
++#define LookupRequestName(a, b) XREGISTRY_UNKNOWN
++#define LookupEventName(a) XREGISTRY_UNKNOWN
++#define LookupErrorName(a) XREGISTRY_UNKNOWN
++#define LookupResourceName(a) XREGISTRY_UNKNOWN
++
++#define dixResetRegistry() { ; }
++
++#endif /* XREGISTRY */
++#endif /* DIX_REGISTRY_H */
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrcrtc.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrcrtc.c.X.original
new file mode 100644
index 000000000..6cb8359b7
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrcrtc.c.X.original
@@ -0,0 +1,48 @@
+--- ./nx-X11/programs/Xserver/randr/rrcrtc.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/rrcrtc.c 2015-02-10 19:13:13.624692625 +0100
+@@ -20,6 +20,23 @@
+ * OF THIS SOFTWARE.
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #include "randrstr.h"
+ #include "swaprep.h"
+ #include "registry.h"
+@@ -836,6 +853,9 @@
+ rep.status = RRSetConfigFailed;
+ goto sendReply;
+ }
++ #ifdef NXAGENT_SERVER /* Bug 21987 */
++ pScrPriv->lastSetTime = time;
++ #endif
+ rep.status = RRSetConfigSuccess;
+
+ sendReply:
+@@ -846,7 +866,11 @@
+ /* rep.status has already been filled in */
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
++ #ifndef NXAGENT_SERVER /* Bug 21987 */
+ rep.newTimestamp = pScrPriv->lastConfigTime.milliseconds;
++ #else
++ rep.newTimestamp = pScrPriv->lastSetTime.milliseconds;
++ #endif
+
+ if (client->swapped)
+ {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrdispatch.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrdispatch.c.X.original
new file mode 100644
index 000000000..8a4cc1387
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrdispatch.c.X.original
@@ -0,0 +1,15 @@
+--- ./nx-X11/programs/Xserver/randr/rrdispatch.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/rrdispatch.c 2015-02-10 19:13:13.632692326 +0100
+@@ -76,7 +76,12 @@
+ int rc;
+
+ REQUEST_SIZE_MATCH(xRRSelectInputReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityWriteAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+ pHead = (RREventPtr *)SecurityLookupIDByType(client,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrmode.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrmode.c.X.original
new file mode 100644
index 000000000..ddbe739b6
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrmode.c.X.original
@@ -0,0 +1,39 @@
+--- ./nx-X11/programs/Xserver/randr/rrmode.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/rrmode.c 2015-02-10 19:13:13.612693075 +0100
+@@ -20,6 +20,23 @@
+ * OF THIS SOFTWARE.
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #include "randrstr.h"
+ #include "registry.h"
+
+@@ -288,7 +305,12 @@
+ RRModePtr mode;
+
+ REQUEST_AT_LEAST_SIZE (xRRCreateModeReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrscreen.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrscreen.c.X.original
new file mode 100644
index 000000000..c5c3d4757
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrscreen.c.X.original
@@ -0,0 +1,107 @@
+--- ./nx-X11/programs/Xserver/randr/rrscreen.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/rrscreen.c 2015-02-10 19:13:13.632692326 +0100
+@@ -20,6 +20,23 @@
+ * OF THIS SOFTWARE.
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #include "randrstr.h"
+
+ extern char *ConnectionInfo;
+@@ -212,7 +229,12 @@
+ int rc;
+
+ REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+
+@@ -263,7 +285,12 @@
+ int i, rc;
+
+ REQUEST_SIZE_MATCH(xRRSetScreenSizeReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+
+@@ -333,7 +360,12 @@
+ CARD8 *names;
+
+ REQUEST_SIZE_MATCH(xRRGetScreenResourcesReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+
+@@ -582,7 +614,12 @@
+ RROutputPtr output;
+
+ REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+
+@@ -756,7 +793,12 @@
+ has_rate = FALSE;
+ }
+
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixWriteAccess);
++ #else
++ pDraw = SecurityLookupDrawable(stuff->drawable, client, SecurityWriteAccess);
++ rc = pDraw ? Success : BadDrawable;
++ #endif
+ if (rc != Success)
+ return rc;
+
+@@ -921,8 +963,15 @@
+
+ if (!RRCrtcSet (crtc, mode, 0, 0, stuff->rotation, 1, &output))
+ rep.status = RRSetConfigFailed;
++ #ifndef NXAGENT_SERVER /* Bug 21987 */
+ else
+ rep.status = RRSetConfigSuccess;
++ #else
++ else {
++ rep.status = RRSetConfigSuccess;
++ pScrPriv->lastSetTime = time;
++ }
++ #endif
+
+ /*
+ * XXX Configure other crtcs to mirror as much as possible
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrxinerama.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrxinerama.c.X.original
new file mode 100644
index 000000000..f95d6325a
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_randr_rrxinerama.c.X.original
@@ -0,0 +1,72 @@
+--- ./nx-X11/programs/Xserver/randr/rrxinerama.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/rrxinerama.c 2015-02-10 19:13:13.620692775 +0100
+@@ -68,9 +68,30 @@
+ * David Thomas <davtom@dream.org.uk>.
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ #include "randrstr.h"
+ #include "swaprep.h"
++#ifndef NXAGENT_SERVER
+ #include <X11/extensions/panoramiXproto.h>
++#else
++#include "panoramiXproto.h"
++#endif
+
+ #define RR_XINERAMA_MAJOR_VERSION 1
+ #define RR_XINERAMA_MINOR_VERSION 1
+@@ -122,7 +143,12 @@
+ Bool active = FALSE;
+
+ REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if(rc != Success)
+ return rc;
+
+@@ -185,7 +211,12 @@
+ register int n, rc;
+
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+
+@@ -213,7 +244,12 @@
+ register int n, rc;
+
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
++ #ifndef NXAGENT_SERVER
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
++ #else
++ pWin = SecurityLookupWindow(stuff->window, client, SecurityReadAccess);
++ rc = pWin ? Success : BadWindow;
++ #endif
+ if (rc != Success)
+ return rc;
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_render_renderedge.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_render_renderedge.c.X.original
new file mode 100644
index 000000000..3f1514250
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_render_renderedge.c.X.original
@@ -0,0 +1,10 @@
+--- ./nx-X11/programs/Xserver/render/renderedge.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/render/renderedge.c 2015-02-10 19:13:13.592693823 +0100
+@@ -143,6 +143,7 @@
+ dx = x_bot - x_top;
+ dy = y_bot - y_top;
+ e->dy = dy;
++ e->dx = 0;
+ if (dy)
+ {
+ if (dx >= 0)
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_cursor.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_cursor.c.X.original
new file mode 100644
index 000000000..faf242160
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_cursor.c.X.original
@@ -0,0 +1,12 @@
+--- ./nx-X11/programs/Xserver/xfixes/cursor.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/xfixes/cursor.c 2015-02-10 19:13:13.508696968 +0100
+@@ -96,7 +96,8 @@
+ CursorCurrent = pCursor;
+ for (e = cursorEvents; e; e = e->next)
+ {
+- if (e->eventMask & XFixesDisplayCursorNotifyMask)
++ if ((e->eventMask & XFixesDisplayCursorNotifyMask) &&
++ !e->pClient->clientGone)
+ {
+ xXFixesCursorNotifyEvent ev;
+ ev.type = XFixesEventBase + XFixesCursorNotify;
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_select.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_select.c.X.original
new file mode 100644
index 000000000..9876bf465
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xfixes_select.c.X.original
@@ -0,0 +1,13 @@
+--- ./nx-X11/programs/Xserver/xfixes/select.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/xfixes/select.c 2015-02-10 19:13:13.504697118 +0100
+@@ -78,7 +78,9 @@
+ }
+ for (e = selectionEvents; e; e = e->next)
+ {
+- if (e->selection == selection->selection && (e->eventMask & eventMask))
++ if (e->selection == selection->selection &&
++ (e->eventMask & eventMask) &&
++ !e->pClient->clientGone)
+ {
+ xXFixesSelectionNotifyEvent ev;
+
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxKillSrv.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxKillSrv.c.X.original
new file mode 100644
index 000000000..a6acd7c04
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxKillSrv.c.X.original
@@ -0,0 +1,21 @@
+--- ./nx-X11/programs/Xserver/xkb/ddxKillSrv.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/xkb/ddxKillSrv.c 2015-02-10 19:13:13.736688433 +0100
+@@ -52,10 +52,18 @@
+ int
+ XkbDDXTerminateServer(DeviceIntPtr dev,KeyCode key,XkbAction *act)
+ {
++#ifdef NXAGENT_SERVER
++
++ return 0;
++
++#else
++
+ #ifdef XF86DDXACTIONS
+ xf86ProcessActionEvent(ACTION_TERMINATE, NULL);
+ #else
+ GiveUp(1);
+ #endif
+ return 0;
++
++#endif /* NXAGENT_SERVER */
+ }
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxLoad.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxLoad.c.X.original
new file mode 100644
index 000000000..3c2eda498
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_ddxLoad.c.X.original
@@ -0,0 +1,443 @@
+--- ./nx-X11/programs/Xserver/xkb/ddxLoad.c.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/xkb/ddxLoad.c 2015-02-13 14:03:44.792440567 +0100
+@@ -34,6 +34,7 @@
+ #include <xkb-config.h>
+ #endif
+
++#include <errno.h>
+ #include <stdio.h>
+ #include <ctype.h>
+ #define NEED_EVENTS 1
+@@ -175,6 +176,310 @@
+ # endif
+ #endif
+
++#ifdef NXAGENT_SERVER
++
++#define NX_XKB_BASE_DIRECTORY "/usr/lib/X11/xkb"
++#define NX_XKB_ALTERNATE_BASE_DIRECTORY "/usr/share/X11/xkb"
++#define NX_KEYMAP_DIR_FILE "keymap.dir"
++#define NX_ALT_XKBCOMP_PATH "/usr/bin"
++
++static char _NXXkbBasePath[PATH_MAX];
++static char _NXXkbCompPath[PATH_MAX];
++
++static int NXVerifyXkbBaseDirectory(const char *dirPath)
++{
++ int size;
++ char *keymapDirFilePath;
++ struct stat keymapDirFileStat;
++
++ /*
++ * If keymap.dir file
++ * is not present into
++ * Xkb Base Directory,
++ * we suppose that the
++ * path is not valid.
++ */
++
++ size = strlen(dirPath) + strlen("/") +
++ strlen(NX_KEYMAP_DIR_FILE) + 1;
++
++ if ((keymapDirFilePath = malloc((size + 1) * sizeof(char))) == NULL)
++ {
++ FatalError("NXVerifyXkbBaseDirectory: malloc failed.\n");
++ }
++
++ strcpy(keymapDirFilePath, dirPath);
++ strcat(keymapDirFilePath, "/");
++ strcat(keymapDirFilePath, NX_KEYMAP_DIR_FILE);
++
++ #ifdef TEST
++ fprintf(stderr, "NXVerifyXkbBaseDirectory: Looking for [%s] file.\n",
++ keymapDirFilePath);
++ #endif
++
++ if (stat(keymapDirFilePath, &keymapDirFileStat) != 0)
++ {
++
++ #ifdef TEST
++ fprintf(stderr, "NXVerifyXkbBaseDirectory: Can't find the keymap.dir file [%s].\n",
++ keymapDirFilePath);
++ #endif
++
++ free(keymapDirFilePath);
++
++ return 0;
++ }
++
++ #ifdef TEST
++ fprintf(stderr, "NXVerifyXkbBaseDirectory: Xkb Base Directory [%s] is valid.\n",
++ dirPath);
++ #endif
++
++ free(keymapDirFilePath);
++
++ return 1;
++}
++
++/*
++ * This function returns the directory
++ * containing the configuration files.
++ * This directory is referred by Xkb-
++ * BaseDirectory variable (generally
++ * it contains the hardcoded path at
++ * compile time). If the directory
++ * does not exist, the function will
++ * try a set of well known directories.
++ */
++
++char *_NXGetXkbBasePath(const char *path)
++{
++ /*
++ * Check the xkb base directory only once.
++ */
++
++ if (*_NXXkbBasePath != '\0')
++ {
++ return _NXXkbBasePath;
++ }
++
++ if (NXVerifyXkbBaseDirectory(XkbBaseDirectory) == 1)
++ {
++ if (strlen(XkbBaseDirectory) + 1 > PATH_MAX)
++ {
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: WARNING! Maximum length of xkb base path exceeded.\n");
++ #endif
++
++ goto _NXGetXkbBasePathError;
++ }
++
++ strcpy(_NXXkbBasePath, XkbBaseDirectory);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: Using NX xkb base directory path [%s].\n",
++ _NXXkbBasePath);
++ #endif
++
++ return _NXXkbBasePath;
++ }
++
++ if (NXVerifyXkbBaseDirectory(NX_XKB_BASE_DIRECTORY) == 1)
++ {
++ if (strlen(NX_XKB_BASE_DIRECTORY) + 1 > PATH_MAX)
++ {
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: WARNING! Maximum length of xkb base path exceeded.\n");
++ #endif
++
++ goto _NXGetXkbBasePathError;
++ }
++
++ strcpy(_NXXkbBasePath, NX_XKB_BASE_DIRECTORY);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: Using NX xkb base directory path [%s].\n",
++ _NXXkbBasePath);
++ #endif
++
++ return _NXXkbBasePath;
++ }
++
++ if (NXVerifyXkbBaseDirectory(NX_XKB_ALTERNATE_BASE_DIRECTORY) == 1)
++ {
++ if (strlen(NX_XKB_ALTERNATE_BASE_DIRECTORY) + 1 > PATH_MAX)
++ {
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: WARNING! Maximum length of xkb base path exceeded.\n");
++ #endif
++
++ goto _NXGetXkbBasePathError;
++ }
++
++ strcpy(_NXXkbBasePath, NX_XKB_ALTERNATE_BASE_DIRECTORY);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: Using NX xkb base directory path [%s].\n",
++ _NXXkbBasePath);
++ #endif
++
++ return _NXXkbBasePath;
++ }
++
++_NXGetXkbBasePathError:
++
++ if (strlen(path) + 1 > PATH_MAX)
++ {
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: WARNING! Maximum length of xkb base path exceeded.\n");
++ #endif
++ }
++
++ strcpy(_NXXkbBasePath, path);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbBasePath: Using default xkb base path [%s].\n",
++ _NXXkbBasePath);
++ #endif
++
++ return _NXXkbBasePath;
++}
++
++static int NXVerifyXkbCompPath(char *path)
++{
++ char *xkbCompPath;
++ int xkbCompPathSize;
++ struct stat xkbCompPathStat;
++
++ if (path == NULL)
++ {
++ return 0;
++ }
++
++ xkbCompPathSize = strlen(path) + strlen("/") +
++ strlen("xkbcomp") + 1;
++
++ if ((xkbCompPath = malloc((xkbCompPathSize + 1) * sizeof(char))) == NULL)
++ {
++ FatalError("NXVerifyXkbCompPath: WARNING! malloc failed.\n");
++
++ return 0;
++ }
++
++ strcpy(xkbCompPath, path);
++ strcat(xkbCompPath, "/");
++ strcat(xkbCompPath, "xkbcomp");
++
++ if (stat(xkbCompPath, &xkbCompPathStat) != 0)
++ {
++ #ifdef NX_TRANS_TEST
++ fprintf(stderr, "NXVerifyXkbCompPath: WARNING! Failed to stat xkbcomp path [%s].\n",
++ xkbCompPath);
++ #endif
++
++ free(xkbCompPath);
++
++ return 0;
++ }
++
++ free(xkbCompPath);
++
++ return 1;
++}
++
++/*
++ * This function returns the directory
++ * containing the xkbcomp executable.
++ * The function will first try to locate
++ * the executable in the hardcoded path
++ * (the same path as the "base" xkb one)
++ * and, if the xkbcomp file couldn't be
++ * found, the function will not include
++ * an explicit path and will rely on the
++ * PATH environment to list the directory.
++ */
++
++char *_NXGetXkbCompPath(const char *path)
++{
++
++ char * xkbCompPath;
++
++ /*
++ * Check the xkbcomp executable
++ * directory only once.
++ */
++
++ if (*_NXXkbCompPath != '\0')
++ {
++ return _NXXkbCompPath;
++ }
++
++ xkbCompPath = _NXGetXkbBasePath(path);
++
++ if (NXVerifyXkbCompPath(xkbCompPath) == 1)
++ {
++ if (strlen(xkbCompPath) + 1 > PATH_MAX)
++ {
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbCompPath: WARNING! Maximum length of xkbcomp path exceeded.\n");
++ #endif
++
++ goto _NXGetXkbCompPathError;
++ }
++
++ strcpy(_NXXkbCompPath, xkbCompPath);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbCompPath: Using xkbcomp path [%s].\n",
++ _NXXkbCompPath);
++ #endif
++
++ return _NXXkbCompPath;
++ }
++
++ xkbCompPath = NX_ALT_XKBCOMP_PATH;
++
++ if (NXVerifyXkbCompPath(xkbCompPath) == 1)
++ {
++ if (strlen(xkbCompPath) + 1 > PATH_MAX)
++ {
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbCompPath: WARNING! Maximum length of xkbcomp path exceeded.\n");
++ #endif
++
++ goto _NXGetXkbCompPathError;
++ }
++
++ strcpy(_NXXkbCompPath, xkbCompPath);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbCompPath: Using NX xkbcomp path [%s].\n",
++ _NXXkbCompPath);
++ #endif
++
++ return _NXXkbCompPath;
++ }
++
++_NXGetXkbCompPathError:
++
++ if (strlen(path) + 1 > PATH_MAX)
++ {
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbCompPath: WARNING! Maximum length of xkbcomp path exceeded.\n");
++ #endif
++ }
++
++ strcpy(_NXXkbCompPath, path);
++
++ #ifdef TEST
++ fprintf(stderr, "_NXGetXkbCompPath: Using default xkbcomp path [%s].\n",
++ _NXXkbCompPath);
++ #endif
++
++ return _NXXkbCompPath;
++}
++
++#endif
++
+ static void
+ OutputDirectory(
+ char* outdir,
+@@ -240,14 +545,36 @@
+ XkbEnsureSafeMapName(outFile);
+ OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
+
++#ifdef NXAGENT_SERVER
++
++ if (_NXGetXkbCompPath(XkbBaseDirectory) != NULL)
++ {
++
++#else
++
+ if (XkbBaseDirectory!=NULL) {
++
++#endif
++
+ #ifndef __UNIXOS2__
++
++#ifdef NXAGENT_SERVER
++ char *xkbbasedir = _NXGetXkbBasePath(XkbBaseDirectory);
++ char *xkbbindir = _NXGetXkbCompPath(XkbBinDirectory);
++#else
+ char *xkbbasedir = XkbBaseDirectory;
+ char *xkbbindir = XkbBinDirectory;
++#endif
++
+ #else
+ /* relocate the basedir and replace the slashes with backslashes */
++#ifdef NXAGENT_SERVER
++ char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbBasePath(XkbBaseDirectory));
++ char *xkbbindir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBinDirectory));
++#else
+ char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
+ char *xkbbindir = (char*)__XOS2RedirRoot(XkbBinDirectory);
++#endif
+ int i;
+
+ for (i=0; i<strlen(xkbbasedir); i++)
+@@ -332,7 +659,13 @@
+ strcat(tmpname, "\\xkb_XXXXXX");
+ (void) mktemp(tmpname);
+ #endif
++
++#ifdef NXAGENT_SERVER
++ if (_NXGetXkbCompPath(XkbBaseDirectory)!=NULL) {
++#else
+ if (XkbBaseDirectory!=NULL) {
++#endif
++
+ #ifndef WIN32
+ char *xkmfile = "-";
+ #else
+@@ -341,12 +674,22 @@
+ char *xkmfile = tmpname;
+ #endif
+ #ifndef __UNIXOS2__
++#ifdef NXAGENT_SERVER
++ char *xkbbasedir = _NXGetXkbBasePath(XkbBaseDirectory);
++ char *xkbbindir = _NXGetXkbCompPath(XkbBinDirectory);
++#else
+ char *xkbbasedir = XkbBaseDirectory;
+ char *xkbbindir = XkbBinDirectory;
++#endif
+ #else
+ int i;
++#ifdef NXAGENT_SERVER
++ char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbBasePath(XkbBaseDirectory));
++ char *xkbbindir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBinDirectory));
++#else
+ char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
+ char *xkbbindir = (char*)__XOS2RedirRoot(XkbBinDirectory);
++#endif
+ for (i=0; i<strlen(xkbbasedir); i++)
+ if (xkbbasedir[i]=='/') xkbbasedir[i]='\\';
+ for (i=0; i<strlen(xkbbindir); i++)
+@@ -375,6 +718,15 @@
+ xkm_output_dir,keymap);
+ }
+
++ #ifdef TEST
++ if (buf != NULL)
++ fprintf(stderr, "XkbDDXCompileKeymapByNames: "
++ "Executing command [%s].\n", buf);
++ else
++ fprintf(stderr, "XkbDDXCompileKeymapByNames: "
++ "Callin Popen() with null command.\n");
++ #endif
++
+ #ifndef WIN32
+ out= Popen(buf,"w");
+ #else
+@@ -390,7 +742,15 @@
+ #endif
+ XkbWriteXKBKeymapForNames(out,names,NULL,xkb,want,need);
+ #ifndef WIN32
++#ifdef __sun
++ if (Pclose(out) != 0)
++ {
++ ErrorF("Warning: Spurious failure reported in Pclose() runnning 'xkbcomp'.\n");
++ }
++ if (1)
++#else
+ if (Pclose(out)==0)
++#endif
+ #else
+ if (fclose(out)==0 && System(buf) >= 0)
+ #endif
+@@ -415,9 +775,15 @@
+ {
+ int i;
+ char name[PATH_MAX];
++#ifdef NXAGENT_SERVER
++ if (_NXGetXkbCompPath(XkbBaseDirectory)!=NULL)
++ sprintf(name,"%s/%s%s.xkm", _NXGetXkbCompPath(XkbBaseDirectory)
++ ,xkm_output_dir, keymap);
++#else
+ if (XkbBaseDirectory!=NULL)
+ sprintf(name,"%s/%s%s.xkm", XkbBaseDirectory
+ ,xkm_output_dir, keymap);
++#endif
+ else
+ sprintf(name,"%s%s.xkm", xkm_output_dir, keymap);
+ for (i = 0; i < 10; i++) {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_xkbDflts.h.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_xkbDflts.h.X.original
new file mode 100644
index 000000000..41ef7091e
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_Xserver_xkb_xkbDflts.h.X.original
@@ -0,0 +1,24 @@
+--- ./nx-X11/programs/Xserver/xkb/xkbDflts.h.X.original 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/xkb/xkbDflts.h 2015-02-10 19:13:13.736688433 +0100
+@@ -417,10 +417,21 @@
+ XkbSI_AnyOfOrNone, 0xff,
+ 255,
+ { XkbSA_LockControls, { 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00 } } },
++
++#ifndef NX_TRANS_SOCKET
++
++ /*
++ * Make sure that the server can't be killed
++ * by pressing this key-sequence.
++ */
++
+ { XK_Terminate_Server, 0x0000,
+ XkbSI_AnyOfOrNone, 0xff,
+ 255,
+ { XkbSA_Terminate, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } },
++
++#endif
++
+ { XK_ISO_Group_Latch, 0x0000,
+ XkbSI_LevelOneOnly|XkbSI_AnyOfOrNone, 0xff,
+ 3,
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_charproc.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_charproc.c.X.original
new file mode 100644
index 000000000..ecd0f67bb
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_charproc.c.X.original
@@ -0,0 +1,40 @@
+--- ./nx-X11/programs/xterm/charproc.c.X.original 2015-02-13 14:03:44.800440409 +0100
++++ ./nx-X11/programs/xterm/charproc.c 2015-02-13 14:03:44.796440488 +0100
+@@ -82,6 +82,23 @@
+ * SOFTWARE.
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* charproc.c */
+
+ #include <version.h>
+@@ -3177,6 +3194,13 @@
+ }
+ if (need_cleanup)
+ Cleanup(0);
++
++#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
++ fprintf(stderr, "xterm::in_put: Select called with [%d][%p][%p][%p][%p].\n",
++ max_plus1, (void *) &select_mask, (void *) &write_mask, (void *) 0,
++ (void *) (time_select ? &select_timeout : 0));
++#endif
++
+ i = Select(max_plus1, &select_mask, &write_mask, 0,
+ (time_select ? &select_timeout : 0));
+ if (i < 0) {
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_main.c.X.original b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_main.c.X.original
new file mode 100644
index 000000000..2ee26838e
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/nx-X11_programs_xterm_main.c.X.original
@@ -0,0 +1,42 @@
+--- ./nx-X11/programs/xterm/main.c.X.original 2015-02-13 14:03:44.804440330 +0100
++++ ./nx-X11/programs/xterm/main.c 2015-02-13 14:03:44.804440330 +0100
+@@ -91,8 +91,39 @@
+
+ ******************************************************************/
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
++
+ /* $XFree86: xc/programs/xterm/main.c,v 3.199 2005/11/13 23:10:36 dickey Exp $ */
+
++#ifdef NX_TRANS_EXIT
++
++/*
++ * Redefine the libc exit() function to be
++ * sure we get rid of proxy and detect any
++ * abnormal termination.
++ */
++
++extern void NXTransExit(int code) __attribute__((noreturn));
++
++#define exit(code) NXTransExit(code)
++
++#endif /* #ifdef NX_TRANS_EXIT */
++
+ /* main.c */
+
+ #define RES_OFFSET(field) XtOffsetOf(XTERM_RESOURCE, field)
diff --git a/doc/_attic_/nx-X11_vs_XOrg69_patches/randr.NX.diff b/doc/_attic_/nx-X11_vs_XOrg69_patches/randr.NX.diff
new file mode 100644
index 000000000..835577944
--- /dev/null
+++ b/doc/_attic_/nx-X11_vs_XOrg69_patches/randr.NX.diff
@@ -0,0 +1,2704 @@
+diff -u ./nx-X11/programs/Xserver/randr.X.original/Imakefile ./nx-X11/programs/Xserver/randr/Imakefile
+--- ./nx-X11/programs/Xserver/randr.X.original/Imakefile 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/Imakefile 2015-02-10 19:13:13.636692176 +0100
+@@ -1,15 +1,33 @@
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
+ XCOMM $XFree86: xc/programs/Xserver/randr/Imakefile,v 1.1 2001/05/23 03:29:44 keithp Exp $
+ #include <Server.tmpl>
+
+- SRCS = randr.c mirandr.c
++ SRCS = mirandr.c randr.c rrcrtc.c rrdispatch.c rrinfo.c rrmode.c rroutput.c rrpointer.c rrproperty.c rrscreen.c rrsdispatch.c rrxinerama.c
+
+- OBJS = randr.o mirandr.o
++ OBJS = mirandr.o randr.o rrcrtc.o rrdispatch.o rrinfo.o rrmode.o rroutput.o rrpointer.o rrproperty.o rrscreen.o rrsdispatch.o rrxinerama.o
+
+ INCLUDES = -I../include -I../mi -I../../../include/fonts \
+ -I../fb -I../hw/kdrive -I$(EXTINCSRC) -I$(XINCLUDESRC) \
+ -I$(FONTINCSRC) -I../render
+ LINTLIBS = ../dix/llib-ldix.ln ../os/llib-los.ln
+
++ DEFINES = -DNXAGENT_SERVER
++
+ NormalLibraryTarget(randr,$(OBJS))
+ NormalLibraryObjectRule()
+ LintLibraryTarget(randr,$(SRCS))
+Only in ./nx-X11/programs/Xserver/randr: Imakefile.NX.original
+Only in ./nx-X11/programs/Xserver/randr: Imakefile.X.original
+Only in ./nx-X11/programs/Xserver/randr: Makefile.am
+Only in ./nx-X11/programs/Xserver/randr: Makefile.in
+diff -u ./nx-X11/programs/Xserver/randr.X.original/mirandr.c ./nx-X11/programs/Xserver/randr/mirandr.c
+--- ./nx-X11/programs/Xserver/randr.X.original/mirandr.c 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/mirandr.c 2015-02-10 19:13:13.616692925 +0100
+@@ -1,76 +1,42 @@
+ /*
+- * $XFree86: xc/programs/Xserver/randr/mirandr.c,v 1.5 2001/06/04 09:45:40 keithp Exp $
+- *
+- * Copyright © 2000, Compaq Computer Corporation,
+- * Copyright © 2002, Hewlett Packard, Inc.
++ * Copyright © 2000 Compaq Computer Corporation
++ * Copyright © 2002 Hewlett-Packard Company
++ * Copyright © 2006 Intel Corporation
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+- * the above copyright notice appear in all copies and that both that
+- * copyright notice and this permission notice appear in supporting
+- * documentation, and that the name of Compaq or HP not be used in advertising
+- * or publicity pertaining to distribution of the software without specific,
+- * written prior permission. HP makes no representations about the
+- * suitability of this software for any purpose. It is provided "as is"
+- * without express or implied warranty.
++ * the above copyright notice appear in all copies and that both that copyright
++ * notice and this permission notice appear in supporting documentation, and
++ * that the name of the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
+ *
+- * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
+- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++ * OF THIS SOFTWARE.
+ *
+- * Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
++ * Author: Jim Gettys, Hewlett-Packard Company, Inc.
++ * Keith Packard, Intel Corporation
+ */
+
+-
+ #ifdef HAVE_DIX_CONFIG_H
+ #include <dix-config.h>
+ #endif
+
+ #include "scrnintstr.h"
+ #include "mi.h"
+-#include <X11/extensions/randr.h>
+ #include "randrstr.h"
+ #include <stdio.h>
+
+-/*
+- * This function assumes that only a single depth can be
+- * displayed at a time, but that all visuals of that depth
+- * can be displayed simultaneously. It further assumes that
+- * only a single size is available. Hardware providing
+- * additional capabilties should use different code.
+- * XXX what to do here....
+- */
+-
+ Bool
+ miRRGetInfo (ScreenPtr pScreen, Rotation *rotations)
+ {
+- int i;
+- Bool setConfig = FALSE;
+-
+- *rotations = RR_Rotate_0;
+- for (i = 0; i < pScreen->numDepths; i++)
+- {
+- if (pScreen->allowedDepths[i].numVids)
+- {
+- RRScreenSizePtr pSize;
+-
+- pSize = RRRegisterSize (pScreen,
+- pScreen->width,
+- pScreen->height,
+- pScreen->mmWidth,
+- pScreen->mmHeight);
+- if (!pSize)
+- return FALSE;
+- if (!setConfig)
+- {
+- RRSetCurrentConfig (pScreen, RR_Rotate_0, 0, pSize);
+- setConfig = TRUE;
+- }
+- }
+- }
+ return TRUE;
+ }
+
+@@ -79,24 +45,110 @@
+ * different here
+ */
+ Bool
+-miRRSetConfig (ScreenPtr pScreen,
+- Rotation rotation,
+- int rate,
+- RRScreenSizePtr pSize)
++miRRCrtcSet (ScreenPtr pScreen,
++ RRCrtcPtr crtc,
++ RRModePtr mode,
++ int x,
++ int y,
++ Rotation rotation,
++ int numOutput,
++ RROutputPtr *outputs)
+ {
+ return TRUE;
+ }
+
++static Bool
++miRRCrtcSetGamma (ScreenPtr pScreen,
++ RRCrtcPtr crtc)
++{
++ return TRUE;
++}
++
++Bool
++miRROutputSetProperty (ScreenPtr pScreen,
++ RROutputPtr output,
++ Atom property,
++ RRPropertyValuePtr value)
++{
++ return TRUE;
++}
++
++Bool
++miRROutputValidateMode (ScreenPtr pScreen,
++ RROutputPtr output,
++ RRModePtr mode)
++{
++ return FALSE;
++}
++
++void
++miRRModeDestroy (ScreenPtr pScreen,
++ RRModePtr mode)
++{
++}
++
++/*
++ * This function assumes that only a single depth can be
++ * displayed at a time, but that all visuals of that depth
++ * can be displayed simultaneously. It further assumes that
++ * only a single size is available. Hardware providing
++ * additional capabilties should use different code.
++ * XXX what to do here....
++ */
+
+ Bool
+ miRandRInit (ScreenPtr pScreen)
+ {
+- rrScrPrivPtr rp;
++ rrScrPrivPtr pScrPriv;
++#if RANDR_12_INTERFACE
++ RRModePtr mode;
++ RRCrtcPtr crtc;
++ RROutputPtr output;
++ xRRModeInfo modeInfo;
++ char name[64];
++#endif
+
+ if (!RRScreenInit (pScreen))
+ return FALSE;
+- rp = rrGetScrPriv(pScreen);
+- rp->rrGetInfo = miRRGetInfo;
+- rp->rrSetConfig = miRRSetConfig;
++ pScrPriv = rrGetScrPriv(pScreen);
++ pScrPriv->rrGetInfo = miRRGetInfo;
++#if RANDR_12_INTERFACE
++ pScrPriv->rrCrtcSet = miRRCrtcSet;
++ pScrPriv->rrCrtcSetGamma = miRRCrtcSetGamma;
++ pScrPriv->rrOutputSetProperty = miRROutputSetProperty;
++ pScrPriv->rrOutputValidateMode = miRROutputValidateMode;
++ pScrPriv->rrModeDestroy = miRRModeDestroy;
++
++ RRScreenSetSizeRange (pScreen,
++ pScreen->width, pScreen->height,
++ pScreen->width, pScreen->height);
++
++ sprintf (name, "%dx%d", pScreen->width, pScreen->height);
++ memset (&modeInfo, '\0', sizeof (modeInfo));
++ modeInfo.width = pScreen->width;
++ modeInfo.height = pScreen->height;
++ modeInfo.nameLength = strlen (name);
++
++ mode = RRModeGet (&modeInfo, name);
++ if (!mode)
++ return FALSE;
++
++ crtc = RRCrtcCreate (pScreen, NULL);
++ if (!crtc)
++ return FALSE;
++
++ output = RROutputCreate (pScreen, "screen", 6, NULL);
++ if (!output)
++ return FALSE;
++ if (!RROutputSetClones (output, NULL, 0))
++ return FALSE;
++ if (!RROutputSetModes (output, &mode, 1, 0))
++ return FALSE;
++ if (!RROutputSetCrtcs (output, &crtc, 1))
++ return FALSE;
++ if (!RROutputSetConnection (output, RR_Connected))
++ return FALSE;
++ RRCrtcNotify (crtc, mode, 0, 0, RR_Rotate_0, 1, &output);
++#endif
+ return TRUE;
+ }
+Only in ./nx-X11/programs/Xserver/randr: panoramiXproto.h
+Only in ./nx-X11/programs/Xserver/randr: panoramiXproto.h.NX.original
+Only in ./nx-X11/programs/Xserver/randr: panoramiXproto.h.X.original
+diff -u ./nx-X11/programs/Xserver/randr.X.original/randr.c ./nx-X11/programs/Xserver/randr/randr.c
+--- ./nx-X11/programs/Xserver/randr.X.original/randr.c 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/randr.c 2015-02-10 19:13:13.616692925 +0100
+@@ -1,29 +1,46 @@
+ /*
+- * $XFree86: xc/programs/Xserver/randr/randr.c,v 1.21tsi Exp $
+- *
+- * Copyright © 2000, Compaq Computer Corporation,
+- * Copyright © 2002, Hewlett Packard, Inc.
++ * Copyright © 2000 Compaq Computer Corporation
++ * Copyright © 2002 Hewlett-Packard Company
++ * Copyright © 2006 Intel Corporation
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+- * the above copyright notice appear in all copies and that both that
+- * copyright notice and this permission notice appear in supporting
+- * documentation, and that the name of Compaq or HP not be used in advertising
+- * or publicity pertaining to distribution of the software without specific,
+- * written prior permission. HP makes no representations about the
+- * suitability of this software for any purpose. It is provided "as is"
+- * without express or implied warranty.
++ * the above copyright notice appear in all copies and that both that copyright
++ * notice and this permission notice appear in supporting documentation, and
++ * that the name of the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
+ *
+- * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
+- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++ * OF THIS SOFTWARE.
+ *
+- * Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
++ * Author: Jim Gettys, Hewlett-Packard Company, Inc.
++ * Keith Packard, Intel Corporation
+ */
+
++/**************************************************************************/
++/* */
++/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
++/* */
++/* NX-X11, NX protocol compression and NX extensions to this software */
++/* are copyright of NoMachine. Redistribution and use of the present */
++/* software is allowed according to terms specified in the file LICENSE */
++/* which comes in the source distribution. */
++/* */
++/* Check http://www.nomachine.com/licensing.html for applicability. */
++/* */
++/* NX and NoMachine are trademarks of Medialogic S.p.A. */
++/* */
++/* All rights reserved. */
++/* */
++/**************************************************************************/
+
+ #define NEED_REPLIES
+ #define NEED_EVENTS
+@@ -31,28 +48,7 @@
+ #include <dix-config.h>
+ #endif
+
+-#include <X11/X.h>
+-#include <X11/Xproto.h>
+-#include "misc.h"
+-#include "os.h"
+-#include "dixstruct.h"
+-#include "resource.h"
+-#include "scrnintstr.h"
+-#include "windowstr.h"
+-#include "pixmapstr.h"
+-#include "extnsionst.h"
+-#include "servermd.h"
+-#include <X11/extensions/randr.h>
+-#include <X11/extensions/randrproto.h>
+ #include "randrstr.h"
+-#ifdef RENDER
+-#include <X11/extensions/render.h> /* we share subpixel order information */
+-#include "picturestr.h"
+-#endif
+-#include <X11/Xfuncproto.h>
+-#ifdef EXTMODULE
+-#include "xf86_ansic.h"
+-#endif
+
+ /* From render.h */
+ #ifndef SubPixelUnknown
+@@ -60,13 +56,7 @@
+ #endif
+
+ #define RR_VALIDATE
+-int RRGeneration;
+-int RRNScreens;
+-
+-static int ProcRRQueryVersion (ClientPtr pClient);
+-static int ProcRRDispatch (ClientPtr pClient);
+-static int SProcRRDispatch (ClientPtr pClient);
+-static int SProcRRQueryVersion (ClientPtr pClient);
++static int RRNScreens;
+
+ #define wrap(priv,real,mem,func) {\
+ priv->mem = real->mem; \
+@@ -77,56 +67,20 @@
+ real->mem = priv->mem; \
+ }
+
+-#if 0
+-static CARD8 RRReqCode;
+-static int RRErrBase;
+-#endif
+-static int RREventBase;
+-static RESTYPE ClientType, EventType; /* resource types for event masks */
+-static int RRClientPrivateIndex;
+-
+-typedef struct _RRTimes {
+- TimeStamp setTime;
+- TimeStamp configTime;
+-} RRTimesRec, *RRTimesPtr;
+-
+-typedef struct _RRClient {
+- int major_version;
+- int minor_version;
+-/* RRTimesRec times[0]; */
+-} RRClientRec, *RRClientPtr;
+-
+-/*
+- * each window has a list of clients requesting
+- * RRNotify events. Each client has a resource
+- * for each window it selects RRNotify input for,
+- * this resource is used to delete the RRNotifyRec
+- * entry from the per-window queue.
+- */
+-
+-typedef struct _RREvent *RREventPtr;
+-
+-typedef struct _RREvent {
+- RREventPtr next;
+- ClientPtr client;
+- WindowPtr window;
+- XID clientResource;
+- int mask;
+-} RREventRec;
++static int ProcRRDispatch (ClientPtr pClient);
++static int SProcRRDispatch (ClientPtr pClient);
+
++int RREventBase;
++int RRErrorBase;
++RESTYPE RRClientType, RREventType; /* resource types for event masks */
++
++#ifndef NXAGENT_SERVER
++DevPrivateKey RRClientPrivateKey = &RRClientPrivateKey;
++DevPrivateKey rrPrivKey = &rrPrivKey;
++#else
++int RRClientPrivateIndex;
+ int rrPrivIndex = -1;
+-
+-#define GetRRClient(pClient) ((RRClientPtr) (pClient)->devPrivates[RRClientPrivateIndex].ptr)
+-#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
+-
+-static Bool
+-RRClientKnowsRates (ClientPtr pClient)
+-{
+- rrClientPriv(pClient);
+-
+- return (pRRClient->major_version > 1 ||
+- (pRRClient->major_version == 1 && pRRClient->minor_version >= 1));
+-}
++#endif
+
+ static void
+ RRClientCallback (CallbackListPtr *list,
+@@ -163,10 +117,14 @@
+ RRCloseScreen (int i, ScreenPtr pScreen)
+ {
+ rrScrPriv(pScreen);
++ int j;
+
+ unwrap (pScrPriv, pScreen, CloseScreen);
+- if (pScrPriv->pSizes)
+- xfree (pScrPriv->pSizes);
++ for (j = pScrPriv->numCrtcs - 1; j >= 0; j--)
++ RRCrtcDestroy (pScrPriv->crtcs[j]);
++ for (j = pScrPriv->numOutputs - 1; j >= 0; j--)
++ RROutputDestroy (pScrPriv->outputs[j]);
++
+ xfree (pScrPriv);
+ RRNScreens -= 1; /* ok, one fewer screen with RandR running */
+ return (*pScreen->CloseScreen) (i, pScreen);
+@@ -191,18 +149,105 @@
+ cpswaps(from->subpixelOrder, to->subpixelOrder);
+ }
+
+-Bool RRScreenInit(ScreenPtr pScreen)
++static void
++SRRCrtcChangeNotifyEvent(xRRCrtcChangeNotifyEvent *from,
++ xRRCrtcChangeNotifyEvent *to)
+ {
+- rrScrPrivPtr pScrPriv;
++ to->type = from->type;
++ to->subCode = from->subCode;
++ cpswaps(from->sequenceNumber, to->sequenceNumber);
++ cpswapl(from->timestamp, to->timestamp);
++ cpswapl(from->window, to->window);
++ cpswapl(from->crtc, to->crtc);
++ cpswapl(from->mode, to->mode);
++ cpswapl(from->window, to->window);
++ cpswaps(from->rotation, to->rotation);
++ cpswaps(from->x, to->x);
++ cpswaps(from->y, to->y);
++ cpswaps(from->width, to->width);
++ cpswaps(from->height, to->height);
++}
++
++static void
++SRROutputChangeNotifyEvent(xRROutputChangeNotifyEvent *from,
++ xRROutputChangeNotifyEvent *to)
++{
++ to->type = from->type;
++ to->subCode = from->subCode;
++ cpswaps(from->sequenceNumber, to->sequenceNumber);
++ cpswapl(from->timestamp, to->timestamp);
++ cpswapl(from->configTimestamp, to->configTimestamp);
++ cpswapl(from->window, to->window);
++ cpswapl(from->output, to->output);
++ cpswapl(from->crtc, to->crtc);
++ cpswapl(from->mode, to->mode);
++ cpswaps(from->rotation, to->rotation);
++}
+
++static void
++SRROutputPropertyNotifyEvent(xRROutputPropertyNotifyEvent *from,
++ xRROutputPropertyNotifyEvent *to)
++{
++ to->type = from->type;
++ to->subCode = from->subCode;
++ cpswaps(from->sequenceNumber, to->sequenceNumber);
++ cpswapl(from->window, to->window);
++ cpswapl(from->output, to->output);
++ cpswapl(from->atom, to->atom);
++ cpswapl(from->timestamp, to->timestamp);
++}
++
++static void
++SRRNotifyEvent (xEvent *from,
++ xEvent *to)
++{
++ switch (from->u.u.detail) {
++ case RRNotify_CrtcChange:
++ SRRCrtcChangeNotifyEvent ((xRRCrtcChangeNotifyEvent *) from,
++ (xRRCrtcChangeNotifyEvent *) to);
++ break;
++ case RRNotify_OutputChange:
++ SRROutputChangeNotifyEvent ((xRROutputChangeNotifyEvent *) from,
++ (xRROutputChangeNotifyEvent *) to);
++ break;
++ case RRNotify_OutputProperty:
++ SRROutputPropertyNotifyEvent ((xRROutputPropertyNotifyEvent *) from,
++ (xRROutputPropertyNotifyEvent *) to);
++ break;
++ default:
++ break;
++ }
++}
++
++static int RRGeneration;
++
++Bool RRInit (void)
++{
+ if (RRGeneration != serverGeneration)
+ {
++ #ifdef NXAGENT_SERVER
+ if ((rrPrivIndex = AllocateScreenPrivateIndex()) < 0)
+ return FALSE;
++ #endif
++ if (!RRModeInit ())
++ return FALSE;
++ if (!RRCrtcInit ())
++ return FALSE;
++ if (!RROutputInit ())
++ return FALSE;
+ RRGeneration = serverGeneration;
+ }
++ return TRUE;
++}
++
++Bool RRScreenInit(ScreenPtr pScreen)
++{
++ rrScrPrivPtr pScrPriv;
++
++ if (!RRInit ())
++ return FALSE;
+
+- pScrPriv = (rrScrPrivPtr) xalloc (sizeof (rrScrPrivRec));
++ pScrPriv = (rrScrPrivPtr) calloc (1, sizeof (rrScrPrivRec));
+ if (!pScrPriv)
+ return FALSE;
+
+@@ -211,8 +256,31 @@
+ /*
+ * Calling function best set these function vectors
+ */
+- pScrPriv->rrSetConfig = 0;
+ pScrPriv->rrGetInfo = 0;
++ pScrPriv->maxWidth = pScrPriv->minWidth = pScreen->width;
++ pScrPriv->maxHeight = pScrPriv->minHeight = pScreen->height;
++
++ pScrPriv->width = pScreen->width;
++ pScrPriv->height = pScreen->height;
++ pScrPriv->mmWidth = pScreen->mmWidth;
++ pScrPriv->mmHeight = pScreen->mmHeight;
++#if RANDR_12_INTERFACE
++ pScrPriv->rrScreenSetSize = NULL;
++ pScrPriv->rrCrtcSet = NULL;
++ pScrPriv->rrCrtcSetGamma = NULL;
++#endif
++#if RANDR_10_INTERFACE
++ pScrPriv->rrSetConfig = 0;
++ pScrPriv->rotations = RR_Rotate_0;
++ pScrPriv->reqWidth = pScreen->width;
++ pScrPriv->reqHeight = pScreen->height;
++ pScrPriv->nSizes = 0;
++ pScrPriv->pSizes = NULL;
++ pScrPriv->rotation = RR_Rotate_0;
++ pScrPriv->rate = 0;
++ pScrPriv->size = 0;
++#endif
++
+ /*
+ * This value doesn't really matter -- any client must call
+ * GetScreenInfo before reading it which will automatically update
+@@ -223,14 +291,10 @@
+
+ wrap (pScrPriv, pScreen, CloseScreen, RRCloseScreen);
+
+- pScrPriv->rotations = RR_Rotate_0;
+-
+- pScrPriv->nSizes = 0;
+- pScrPriv->nSizesInUse = 0;
+- pScrPriv->pSizes = 0;
+-
+- pScrPriv->rotation = RR_Rotate_0;
+- pScrPriv->size = -1;
++ pScrPriv->numOutputs = 0;
++ pScrPriv->outputs = NULL;
++ pScrPriv->numCrtcs = 0;
++ pScrPriv->crtcs = NULL;
+
+ RRNScreens += 1; /* keep count of screens that implement randr */
+ return TRUE;
+@@ -246,7 +310,7 @@
+
+ pRREvent = (RREventPtr) data;
+ pWin = pRREvent->window;
+- pHead = (RREventPtr *) LookupIDByType(pWin->drawable.id, EventType);
++ pHead = (RREventPtr *) LookupIDByType(pWin->drawable.id, RREventType);
+ if (pHead) {
+ pPrev = 0;
+ for (pCur = *pHead; pCur && pCur != pRREvent; pCur=pCur->next)
+@@ -272,7 +336,7 @@
+ pHead = (RREventPtr *) data;
+ for (pCur = *pHead; pCur; pCur = pNext) {
+ pNext = pCur->next;
+- FreeResource (pCur->clientResource, ClientType);
++ FreeResource (pCur->clientResource, RRClientType);
+ xfree ((pointer) pCur);
+ }
+ xfree ((pointer) pHead);
+@@ -286,1034 +350,172 @@
+
+ if (RRNScreens == 0) return;
+
++ #ifndef NXAGENT_SERVER
++ if (!dixRequestPrivate(RRClientPrivateKey,
++ sizeof (RRClientRec) +
++ screenInfo.numScreens * sizeof (RRTimesRec)))
++ return;
++ #else
+ RRClientPrivateIndex = AllocateClientPrivateIndex ();
+ if (!AllocateClientPrivate (RRClientPrivateIndex,
+ sizeof (RRClientRec) +
+ screenInfo.numScreens * sizeof (RRTimesRec)))
+ return;
++ #endif
+ if (!AddCallback (&ClientStateCallback, RRClientCallback, 0))
+ return;
+
+- ClientType = CreateNewResourceType(RRFreeClient);
+- if (!ClientType)
++ RRClientType = CreateNewResourceType(RRFreeClient);
++ if (!RRClientType)
+ return;
+- EventType = CreateNewResourceType(RRFreeEvents);
+- if (!EventType)
++ RREventType = CreateNewResourceType(RRFreeEvents);
++ if (!RREventType)
+ return;
+ extEntry = AddExtension (RANDR_NAME, RRNumberEvents, RRNumberErrors,
+ ProcRRDispatch, SProcRRDispatch,
+ RRResetProc, StandardMinorOpcode);
+ if (!extEntry)
+ return;
+-#if 0
+- RRReqCode = (CARD8) extEntry->base;
+- RRErrBase = extEntry->errorBase;
+-#endif
++ RRErrorBase = extEntry->errorBase;
+ RREventBase = extEntry->eventBase;
+ EventSwapVector[RREventBase + RRScreenChangeNotify] = (EventSwapPtr)
+- SRRScreenChangeNotifyEvent;
+-
+- return;
++ SRRScreenChangeNotifyEvent;
++ EventSwapVector[RREventBase + RRNotify] = (EventSwapPtr)
++ SRRNotifyEvent;
++#ifdef PANORAMIX
++ RRXineramaExtensionInit();
++#endif
+ }
+-
++
+ static int
+ TellChanged (WindowPtr pWin, pointer value)
+ {
+ RREventPtr *pHead, pRREvent;
+ ClientPtr client;
+- xRRScreenChangeNotifyEvent se;
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ rrScrPriv(pScreen);
+- RRScreenSizePtr pSize;
+- WindowPtr pRoot = WindowTable[pScreen->myNum];
++ int i;
+
+- pHead = (RREventPtr *) LookupIDByType (pWin->drawable.id, EventType);
++ pHead = (RREventPtr *) LookupIDByType (pWin->drawable.id, RREventType);
+ if (!pHead)
+ return WT_WALKCHILDREN;
+
+- se.type = RRScreenChangeNotify + RREventBase;
+- se.rotation = (CARD8) pScrPriv->rotation;
+- se.timestamp = pScrPriv->lastSetTime.milliseconds;
+- se.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
+- se.root = pRoot->drawable.id;
+- se.window = pWin->drawable.id;
+-#ifdef RENDER
+- se.subpixelOrder = PictureGetSubpixelOrder (pScreen);
+-#else
+- se.subpixelOrder = SubPixelUnknown;
+-#endif
+- if (pScrPriv->size >= 0)
+- {
+- pSize = &pScrPriv->pSizes[pScrPriv->size];
+- se.sizeID = pSize->id;
+- se.widthInPixels = pSize->width;
+- se.heightInPixels = pSize->height;
+- se.widthInMillimeters = pSize->mmWidth;
+- se.heightInMillimeters = pSize->mmHeight;
+- }
+- else
+- {
+- /*
+- * This "shouldn't happen", but a broken DDX can
+- * forget to set the current configuration on GetInfo
+- */
+- se.sizeID = 0xffff;
+- se.widthInPixels = 0;
+- se.heightInPixels = 0;
+- se.widthInMillimeters = 0;
+- se.heightInMillimeters = 0;
+- }
+ for (pRREvent = *pHead; pRREvent; pRREvent = pRREvent->next)
+ {
+ client = pRREvent->client;
+ if (client == serverClient || client->clientGone)
+ continue;
+- se.sequenceNumber = client->sequence;
+- if(pRREvent->mask & RRScreenChangeNotifyMask)
+- WriteEventsToClient (client, 1, (xEvent *) &se);
+- }
+- return WT_WALKCHILDREN;
+-}
+
+-static Bool
+-RRGetInfo (ScreenPtr pScreen)
+-{
+- rrScrPriv (pScreen);
+- int i, j, k, l;
+- Bool changed;
+- Rotation rotations;
+- RRScreenSizePtr pSize;
+- RRScreenRatePtr pRate;
+-
+- for (i = 0; i < pScrPriv->nSizes; i++)
+- {
+- pSize = &pScrPriv->pSizes[i];
+- pSize->oldReferenced = pSize->referenced;
+- pSize->referenced = FALSE;
+- for (k = 0; k < pSize->nRates; k++)
++ if (pRREvent->mask & RRScreenChangeNotifyMask)
++ RRDeliverScreenEvent (client, pWin, pScreen);
++
++ if (pRREvent->mask & RRCrtcChangeNotifyMask)
+ {
+- pRate = &pSize->pRates[k];
+- pRate->oldReferenced = pRate->referenced;
+- pRate->referenced = FALSE;
+- }
+- }
+- if (!(*pScrPriv->rrGetInfo) (pScreen, &rotations))
+- return FALSE;
+-
+- changed = FALSE;
+-
+- /*
+- * Check whether anything changed and simultaneously generate
+- * the protocol id values for the objects
+- */
+- if (rotations != pScrPriv->rotations)
+- {
+- pScrPriv->rotations = rotations;
+- changed = TRUE;
+- }
+-
+- j = 0;
+- for (i = 0; i < pScrPriv->nSizes; i++)
+- {
+- pSize = &pScrPriv->pSizes[i];
+- if (pSize->oldReferenced != pSize->referenced)
+- changed = TRUE;
+- if (pSize->referenced)
+- pSize->id = j++;
+- l = 0;
+- for (k = 0; k < pSize->nRates; k++)
+- {
+- pRate = &pSize->pRates[k];
+- if (pRate->oldReferenced != pRate->referenced)
+- changed = TRUE;
+- if (pRate->referenced)
+- l++;
+- }
+- pSize->nRatesInUse = l;
+- }
+- pScrPriv->nSizesInUse = j;
+- if (changed)
+- {
+- UpdateCurrentTime ();
+- pScrPriv->lastConfigTime = currentTime;
+- WalkTree (pScreen, TellChanged, (pointer) pScreen);
+- }
+- return TRUE;
+-}
+-
+-static void
+-RRSendConfigNotify (ScreenPtr pScreen)
+-{
+- WindowPtr pWin = WindowTable[pScreen->myNum];
+- xEvent event;
+-
+- event.u.u.type = ConfigureNotify;
+- event.u.configureNotify.window = pWin->drawable.id;
+- event.u.configureNotify.aboveSibling = None;
+- event.u.configureNotify.x = 0;
+- event.u.configureNotify.y = 0;
+-
+- /* XXX xinerama stuff ? */
+-
+- event.u.configureNotify.width = pWin->drawable.width;
+- event.u.configureNotify.height = pWin->drawable.height;
+- event.u.configureNotify.borderWidth = wBorderWidth (pWin);
+- event.u.configureNotify.override = pWin->overrideRedirect;
+- DeliverEvents(pWin, &event, 1, NullWindow);
+-}
+-
+-static int
+-ProcRRQueryVersion (ClientPtr client)
+-{
+- xRRQueryVersionReply rep;
+- register int n;
+- REQUEST(xRRQueryVersionReq);
+- rrClientPriv(client);
+-
+- REQUEST_SIZE_MATCH(xRRQueryVersionReq);
+- pRRClient->major_version = stuff->majorVersion;
+- pRRClient->minor_version = stuff->minorVersion;
+- rep.type = X_Reply;
+- rep.length = 0;
+- rep.sequenceNumber = client->sequence;
+- rep.majorVersion = RANDR_MAJOR;
+- rep.minorVersion = RANDR_MINOR;
+- if (client->swapped) {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swapl(&rep.majorVersion, n);
+- swapl(&rep.minorVersion, n);
+- }
+- WriteToClient(client, sizeof(xRRQueryVersionReply), (char *)&rep);
+- return (client->noClientException);
+-}
+-
+-
+-extern char *ConnectionInfo;
+-
+-static int padlength[4] = {0, 3, 2, 1};
+-
+-static void
+-RREditConnectionInfo (ScreenPtr pScreen)
+-{
+- xConnSetup *connSetup;
+- char *vendor;
+- xPixmapFormat *formats;
+- xWindowRoot *root;
+- xDepth *depth;
+- xVisualType *visual;
+- int screen = 0;
+- int d;
+-
+- connSetup = (xConnSetup *) ConnectionInfo;
+- vendor = (char *) connSetup + sizeof (xConnSetup);
+- formats = (xPixmapFormat *) ((char *) vendor +
+- connSetup->nbytesVendor +
+- padlength[connSetup->nbytesVendor & 3]);
+- root = (xWindowRoot *) ((char *) formats +
+- sizeof (xPixmapFormat) * screenInfo.numPixmapFormats);
+- while (screen != pScreen->myNum)
+- {
+- depth = (xDepth *) ((char *) root +
+- sizeof (xWindowRoot));
+- for (d = 0; d < root->nDepths; d++)
+- {
+- visual = (xVisualType *) ((char *) depth +
+- sizeof (xDepth));
+- depth = (xDepth *) ((char *) visual +
+- depth->nVisuals * sizeof (xVisualType));
+- }
+- root = (xWindowRoot *) ((char *) depth);
+- screen++;
+- }
+- root->pixWidth = pScreen->width;
+- root->pixHeight = pScreen->height;
+- root->mmWidth = pScreen->mmWidth;
+- root->mmHeight = pScreen->mmHeight;
+-}
+-
+-static int
+-ProcRRGetScreenInfo (ClientPtr client)
+-{
+- REQUEST(xRRGetScreenInfoReq);
+- xRRGetScreenInfoReply rep;
+- WindowPtr pWin;
+- int n;
+- ScreenPtr pScreen;
+- rrScrPrivPtr pScrPriv;
+- CARD8 *extra;
+- unsigned long extraLen;
+-
+- REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
+- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
+- SecurityReadAccess);
+-
+- if (!pWin)
+- return BadWindow;
+-
+- pScreen = pWin->drawable.pScreen;
+- pScrPriv = rrGetScrPriv(pScreen);
+- rep.pad = 0;
+- if (!pScrPriv)
+- {
+- rep.type = X_Reply;
+- rep.setOfRotations = RR_Rotate_0;;
+- rep.sequenceNumber = client->sequence;
+- rep.length = 0;
+- rep.root = WindowTable[pWin->drawable.pScreen->myNum]->drawable.id;
+- rep.timestamp = currentTime.milliseconds;
+- rep.configTimestamp = currentTime.milliseconds;
+- rep.nSizes = 0;
+- rep.sizeID = 0;
+- rep.rotation = RR_Rotate_0;
+- rep.rate = 0;
+- rep.nrateEnts = 0;
+- extra = 0;
+- extraLen = 0;
+- }
+- else
+- {
+- int i, j;
+- xScreenSizes *size;
+- CARD16 *rates;
+- CARD8 *data8;
+- Bool has_rate = RRClientKnowsRates (client);
+-
+- RRGetInfo (pScreen);
+-
+- rep.type = X_Reply;
+- rep.setOfRotations = pScrPriv->rotations;
+- rep.sequenceNumber = client->sequence;
+- rep.length = 0;
+- rep.root = WindowTable[pWin->drawable.pScreen->myNum]->drawable.id;
+- rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+- rep.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
+- rep.rotation = pScrPriv->rotation;
+- rep.nSizes = pScrPriv->nSizesInUse;
+- rep.rate = pScrPriv->rate;
+- rep.nrateEnts = 0;
+- if (has_rate)
+- {
+- for (i = 0; i < pScrPriv->nSizes; i++)
++ for (i = 0; i < pScrPriv->numCrtcs; i++)
+ {
+- RRScreenSizePtr pSize = &pScrPriv->pSizes[i];
+- if (pSize->referenced)
+- {
+- rep.nrateEnts += (1 + pSize->nRatesInUse);
+- }
++ RRCrtcPtr crtc = pScrPriv->crtcs[i];
++ if (crtc->changed)
++ RRDeliverCrtcEvent (client, pWin, crtc);
+ }
+ }
+-
+- if (pScrPriv->size >= 0)
+- rep.sizeID = pScrPriv->pSizes[pScrPriv->size].id;
+- else
+- return BadImplementation;
+-
+- extraLen = (rep.nSizes * sizeof (xScreenSizes) +
+- rep.nrateEnts * sizeof (CARD16));
+-
+- extra = (CARD8 *) xalloc (extraLen);
+- if (!extra)
+- return BadAlloc;
+- /*
+- * First comes the size information
+- */
+- size = (xScreenSizes *) extra;
+- rates = (CARD16 *) (size + rep.nSizes);
+- for (i = 0; i < pScrPriv->nSizes; i++)
++
++ if (pRREvent->mask & RROutputChangeNotifyMask)
+ {
+- RRScreenSizePtr pSize = &pScrPriv->pSizes[i];
+- if (pSize->referenced)
++ for (i = 0; i < pScrPriv->numOutputs; i++)
+ {
+- size->widthInPixels = pSize->width;
+- size->heightInPixels = pSize->height;
+- size->widthInMillimeters = pSize->mmWidth;
+- size->heightInMillimeters = pSize->mmHeight;
+- if (client->swapped)
+- {
+- swaps (&size->widthInPixels, n);
+- swaps (&size->heightInPixels, n);
+- swaps (&size->widthInMillimeters, n);
+- swaps (&size->heightInMillimeters, n);
+- }
+- size++;
+- if (has_rate)
+- {
+- *rates = pSize->nRatesInUse;
+- if (client->swapped)
+- {
+- swaps (rates, n);
+- }
+- rates++;
+- for (j = 0; j < pSize->nRates; j++)
+- {
+- RRScreenRatePtr pRate = &pSize->pRates[j];
+- if (pRate->referenced)
+- {
+- *rates = pRate->rate;
+- if (client->swapped)
+- {
+- swaps (rates, n);
+- }
+- rates++;
+- }
+- }
+- }
++ RROutputPtr output = pScrPriv->outputs[i];
++ if (output->changed)
++ RRDeliverOutputEvent (client, pWin, output);
+ }
+ }
+- data8 = (CARD8 *) rates;
+-
+- if (data8 - (CARD8 *) extra != extraLen)
+- FatalError ("RRGetScreenInfo bad extra len %ld != %ld\n",
+- (unsigned long)(data8 - (CARD8 *) extra), extraLen);
+- rep.length = (extraLen + 3) >> 2;
+- }
+- if (client->swapped) {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swapl(&rep.timestamp, n);
+- swaps(&rep.rotation, n);
+- swaps(&rep.nSizes, n);
+- swaps(&rep.sizeID, n);
+- swaps(&rep.rate, n);
+- swaps(&rep.nrateEnts, n);
+- }
+- WriteToClient(client, sizeof(xRRGetScreenInfoReply), (char *)&rep);
+- if (extraLen)
+- {
+- WriteToClient (client, extraLen, (char *) extra);
+- xfree (extra);
+ }
+- return (client->noClientException);
++ return WT_WALKCHILDREN;
+ }
+
+-static int
+-ProcRRSetScreenConfig (ClientPtr client)
++/*
++ * Something changed; send events and adjust pointer position
++ */
++void
++RRTellChanged (ScreenPtr pScreen)
+ {
+- REQUEST(xRRSetScreenConfigReq);
+- xRRSetScreenConfigReply rep;
+- DrawablePtr pDraw;
+- int n;
+- ScreenPtr pScreen;
+- rrScrPrivPtr pScrPriv;
+- TimeStamp configTime;
+- TimeStamp time;
+- RRScreenSizePtr pSize;
+- int i;
+- Rotation rotation;
+- int rate;
+- short oldWidth, oldHeight;
+- Bool has_rate;
+-
+- UpdateCurrentTime ();
+-
+- if (RRClientKnowsRates (client))
+- {
+- REQUEST_SIZE_MATCH (xRRSetScreenConfigReq);
+- has_rate = TRUE;
+- }
+- else
+- {
+- REQUEST_SIZE_MATCH (xRR1_0SetScreenConfigReq);
+- has_rate = FALSE;
+- }
+-
+- SECURITY_VERIFY_DRAWABLE(pDraw, stuff->drawable, client,
+- SecurityWriteAccess);
+-
+- pScreen = pDraw->pScreen;
+-
+- pScrPriv = rrGetScrPriv(pScreen);
+-
+- time = ClientTimeToServerTime(stuff->timestamp);
+- configTime = ClientTimeToServerTime(stuff->configTimestamp);
+-
+- oldWidth = pScreen->width;
+- oldHeight = pScreen->height;
+-
+- if (!pScrPriv)
+- {
+- time = currentTime;
+- rep.status = RRSetConfigFailed;
+- goto sendReply;
+- }
+- if (!RRGetInfo (pScreen))
+- return BadAlloc;
+-
+- /*
+- * if the client's config timestamp is not the same as the last config
+- * timestamp, then the config information isn't up-to-date and
+- * can't even be validated
+- */
+- if (CompareTimeStamps (configTime, pScrPriv->lastConfigTime) != 0)
+- {
+- rep.status = RRSetConfigInvalidConfigTime;
+- goto sendReply;
+- }
+-
+- /*
+- * Search for the requested size
+- */
+- pSize = 0;
+- for (i = 0; i < pScrPriv->nSizes; i++)
+- {
+- pSize = &pScrPriv->pSizes[i];
+- if (pSize->referenced && pSize->id == stuff->sizeID)
+- {
+- break;
+- }
+- }
+- if (i == pScrPriv->nSizes)
+- {
+- /*
+- * Invalid size ID
+- */
+- client->errorValue = stuff->sizeID;
+- return BadValue;
+- }
++ rrScrPriv (pScreen);
++ int i;
+
+- /*
+- * Validate requested rotation
+- */
+- rotation = (Rotation) stuff->rotation;
+-
+- /* test the rotation bits only! */
+- switch (rotation & 0xf) {
+- case RR_Rotate_0:
+- case RR_Rotate_90:
+- case RR_Rotate_180:
+- case RR_Rotate_270:
+- break;
+- default:
+- /*
+- * Invalid rotation
+- */
+- client->errorValue = stuff->rotation;
+- return BadValue;
+- }
+-
+- if ((~pScrPriv->rotations) & rotation)
++ if (pScrPriv->changed)
+ {
+- /*
+- * requested rotation or reflection not supported by screen
+- */
+- client->errorValue = stuff->rotation;
+- return BadMatch;
+- }
+-
+- /*
+- * Validate requested refresh
+- */
+- if (has_rate)
+- rate = (int) stuff->rate;
+- else
+- rate = 0;
+-
+- if (rate)
+- {
+- for (i = 0; i < pSize->nRates; i++)
++ UpdateCurrentTime ();
++ if (pScrPriv->configChanged)
+ {
+- RRScreenRatePtr pRate = &pSize->pRates[i];
+- if (pRate->referenced && pRate->rate == rate)
+- break;
++ pScrPriv->lastConfigTime = currentTime;
++ pScrPriv->configChanged = FALSE;
+ }
+- if (i == pSize->nRates)
+- {
+- /*
+- * Invalid rate
+- */
+- client->errorValue = rate;
+- return BadValue;
++ pScrPriv->changed = FALSE;
++ WalkTree (pScreen, TellChanged, (pointer) pScreen);
++ for (i = 0; i < pScrPriv->numOutputs; i++)
++ pScrPriv->outputs[i]->changed = FALSE;
++ for (i = 0; i < pScrPriv->numCrtcs; i++)
++ pScrPriv->crtcs[i]->changed = FALSE;
++ if (pScrPriv->layoutChanged)
++ {
++ pScrPriv->layoutChanged = FALSE;
++ RRPointerScreenConfigured (pScreen);
++ RRSendConfigNotify (pScreen);
+ }
+ }
+-
+- /*
+- * Make sure the requested set-time is not older than
+- * the last set-time
+- */
+- if (CompareTimeStamps (time, pScrPriv->lastSetTime) < 0)
+- {
+- rep.status = RRSetConfigInvalidTime;
+- goto sendReply;
+- }
+-
+- /*
+- * call out to ddx routine to effect the change
+- */
+- if (!(*pScrPriv->rrSetConfig) (pScreen, rotation, rate,
+- pSize))
+- {
+- /*
+- * unknown DDX failure, report to client
+- */
+- rep.status = RRSetConfigFailed;
+- goto sendReply;
+- }
+-
+- /*
+- * set current extension configuration pointers
+- */
+- RRSetCurrentConfig (pScreen, rotation, rate, pSize);
+-
+- /*
+- * Deliver ScreenChangeNotify events whenever
+- * the configuration is updated
+- */
+- WalkTree (pScreen, TellChanged, (pointer) pScreen);
+-
+- /*
+- * Deliver ConfigureNotify events when root changes
+- * pixel size
+- */
+- if (oldWidth != pScreen->width || oldHeight != pScreen->height)
+- RRSendConfigNotify (pScreen);
+- RREditConnectionInfo (pScreen);
+-
+- /*
+- * Fix pointer bounds and location
+- */
+- ScreenRestructured (pScreen);
+- pScrPriv->lastSetTime = time;
+-
+- /*
+- * Report Success
+- */
+- rep.status = RRSetConfigSuccess;
+-
+-sendReply:
+-
+- rep.type = X_Reply;
+- /* rep.status has already been filled in */
+- rep.length = 0;
+- rep.sequenceNumber = client->sequence;
+-
+- rep.newTimestamp = pScrPriv->lastSetTime.milliseconds;
+- rep.newConfigTimestamp = pScrPriv->lastConfigTime.milliseconds;
+- rep.root = WindowTable[pDraw->pScreen->myNum]->drawable.id;
+-
+- if (client->swapped)
+- {
+- swaps(&rep.sequenceNumber, n);
+- swapl(&rep.length, n);
+- swapl(&rep.newTimestamp, n);
+- swapl(&rep.newConfigTimestamp, n);
+- swapl(&rep.root, n);
+- }
+- WriteToClient(client, sizeof(xRRSetScreenConfigReply), (char *)&rep);
+-
+- return (client->noClientException);
+ }
+
+-int
+-RRSetScreenConfig (ScreenPtr pScreen,
+- Rotation rotation,
+- int rate,
+- RRScreenSizePtr pSize)
++/*
++ * Return the first output which is connected to an active CRTC
++ * Used in emulating 1.0 behaviour
++ */
++RROutputPtr
++RRFirstOutput (ScreenPtr pScreen)
+ {
+- rrScrPrivPtr pScrPriv;
+- int i;
+- short oldWidth, oldHeight;
+-
+- pScrPriv = rrGetScrPriv(pScreen);
+-
+- oldWidth = pScreen->width;
+- oldHeight = pScreen->height;
+-
+- if (!RRGetInfo (pScreen))
+- return BadAlloc;
++ rrScrPriv(pScreen);
++ RROutputPtr output;
++ int i, j;
+
+- /*
+- * Validate requested rotation
+- */
+-
+- /* test the rotation bits only! */
+- switch (rotation & 0xf) {
+- case RR_Rotate_0:
+- case RR_Rotate_90:
+- case RR_Rotate_180:
+- case RR_Rotate_270:
+- break;
+- default:
+- /*
+- * Invalid rotation
+- */
+- return BadValue;
+- }
+-
+- if ((~pScrPriv->rotations) & rotation)
+- {
+- /*
+- * requested rotation or reflection not supported by screen
+- */
+- return BadMatch;
+- }
+-
+- /*
+- * Validate requested refresh
+- */
+- if (rate)
++ for (i = 0; i < pScrPriv->numCrtcs; i++)
+ {
+- for (i = 0; i < pSize->nRates; i++)
+- {
+- RRScreenRatePtr pRate = &pSize->pRates[i];
+- if (pRate->referenced && pRate->rate == rate)
+- break;
+- }
+- if (i == pSize->nRates)
++ RRCrtcPtr crtc = pScrPriv->crtcs[i];
++ for (j = 0; j < pScrPriv->numOutputs; j++)
+ {
+- /*
+- * Invalid rate
+- */
+- return BadValue;
++ output = pScrPriv->outputs[j];
++ if (output->crtc == crtc)
++ return output;
+ }
+ }
+-
+- /*
+- * call out to ddx routine to effect the change
+- */
+- if (!(*pScrPriv->rrSetConfig) (pScreen, rotation, rate,
+- pSize))
+- {
+- /*
+- * unknown DDX failure, report to client
+- */
+- return BadImplementation;
+- }
+-
+- /*
+- * set current extension configuration pointers
+- */
+- RRSetCurrentConfig (pScreen, rotation, rate, pSize);
+-
+- /*
+- * Deliver ScreenChangeNotify events whenever
+- * the configuration is updated
+- */
+- WalkTree (pScreen, TellChanged, (pointer) pScreen);
+-
+- /*
+- * Deliver ConfigureNotify events when root changes
+- * pixel size
+- */
+- if (oldWidth != pScreen->width || oldHeight != pScreen->height)
+- RRSendConfigNotify (pScreen);
+- RREditConnectionInfo (pScreen);
+-
+- /*
+- * Fix pointer bounds and location
+- */
+- ScreenRestructured (pScreen);
+-
+- return Success;
++ return NULL;
+ }
+
+-static int
+-ProcRRSelectInput (ClientPtr client)
++CARD16
++RRVerticalRefresh (xRRModeInfo *mode)
+ {
+- REQUEST(xRRSelectInputReq);
+- rrClientPriv(client);
+- RRTimesPtr pTimes;
+- WindowPtr pWin;
+- RREventPtr pRREvent, pNewRREvent, *pHead;
+- XID clientResource;
+-
+- REQUEST_SIZE_MATCH(xRRSelectInputReq);
+- pWin = SecurityLookupWindow (stuff->window, client, SecurityWriteAccess);
+- if (!pWin)
+- return BadWindow;
+- pHead = (RREventPtr *)SecurityLookupIDByType(client,
+- pWin->drawable.id, EventType,
+- SecurityWriteAccess);
+-
+- if (stuff->enable & (RRScreenChangeNotifyMask))
+- {
+- ScreenPtr pScreen = pWin->drawable.pScreen;
+- rrScrPriv (pScreen);
+-
+- if (pHead)
+- {
+- /* check for existing entry. */
+- for (pRREvent = *pHead; pRREvent; pRREvent = pRREvent->next)
+- if (pRREvent->client == client)
+- return Success;
+- }
+-
+- /* build the entry */
+- pNewRREvent = (RREventPtr) xalloc (sizeof (RREventRec));
+- if (!pNewRREvent)
+- return BadAlloc;
+- pNewRREvent->next = 0;
+- pNewRREvent->client = client;
+- pNewRREvent->window = pWin;
+- pNewRREvent->mask = stuff->enable;
+- /*
+- * add a resource that will be deleted when
+- * the client goes away
+- */
+- clientResource = FakeClientID (client->index);
+- pNewRREvent->clientResource = clientResource;
+- if (!AddResource (clientResource, ClientType, (pointer)pNewRREvent))
+- return BadAlloc;
+- /*
+- * create a resource to contain a pointer to the list
+- * of clients selecting input. This must be indirect as
+- * the list may be arbitrarily rearranged which cannot be
+- * done through the resource database.
+- */
+- if (!pHead)
+- {
+- pHead = (RREventPtr *) xalloc (sizeof (RREventPtr));
+- if (!pHead ||
+- !AddResource (pWin->drawable.id, EventType, (pointer)pHead))
+- {
+- FreeResource (clientResource, RT_NONE);
+- return BadAlloc;
+- }
+- *pHead = 0;
+- }
+- pNewRREvent->next = *pHead;
+- *pHead = pNewRREvent;
+- /*
+- * Now see if the client needs an event
+- */
+- if (pScrPriv)
+- {
+- pTimes = &((RRTimesPtr) (pRRClient + 1))[pScreen->myNum];
+- if (CompareTimeStamps (pTimes->setTime,
+- pScrPriv->lastSetTime) != 0 ||
+- CompareTimeStamps (pTimes->configTime,
+- pScrPriv->lastConfigTime) != 0)
+- {
+- TellChanged (pWin, (pointer) pScreen);
+- }
+- }
+- }
+- else if (stuff->enable == xFalse)
+- {
+- /* delete the interest */
+- if (pHead) {
+- pNewRREvent = 0;
+- for (pRREvent = *pHead; pRREvent; pRREvent = pRREvent->next) {
+- if (pRREvent->client == client)
+- break;
+- pNewRREvent = pRREvent;
+- }
+- if (pRREvent) {
+- FreeResource (pRREvent->clientResource, ClientType);
+- if (pNewRREvent)
+- pNewRREvent->next = pRREvent->next;
+- else
+- *pHead = pRREvent->next;
+- xfree (pRREvent);
+- }
+- }
+- }
+- else
+- {
+- client->errorValue = stuff->enable;
+- return BadValue;
+- }
+- return Success;
++ CARD32 refresh;
++ CARD32 dots = mode->hTotal * mode->vTotal;
++ if (!dots)
++ return 0;
++ refresh = (mode->dotClock + dots/2) / dots;
++ if (refresh > 0xffff)
++ refresh = 0xffff;
++ return (CARD16) refresh;
+ }
+
+-
+ static int
+ ProcRRDispatch (ClientPtr client)
+ {
+ REQUEST(xReq);
+- switch (stuff->data)
+- {
+- case X_RRQueryVersion:
+- return ProcRRQueryVersion(client);
+- case X_RRSetScreenConfig:
+- return ProcRRSetScreenConfig(client);
+- case X_RRSelectInput:
+- return ProcRRSelectInput(client);
+- case X_RRGetScreenInfo:
+- return ProcRRGetScreenInfo(client);
+- default:
++ if (stuff->data >= RRNumberRequests || !ProcRandrVector[stuff->data])
+ return BadRequest;
+- }
+-}
+-
+-static int
+-SProcRRQueryVersion (ClientPtr client)
+-{
+- register int n;
+- REQUEST(xRRQueryVersionReq);
+-
+- swaps(&stuff->length, n);
+- swapl(&stuff->majorVersion, n);
+- swapl(&stuff->minorVersion, n);
+- return ProcRRQueryVersion(client);
+-}
+-
+-static int
+-SProcRRGetScreenInfo (ClientPtr client)
+-{
+- register int n;
+- REQUEST(xRRGetScreenInfoReq);
+-
+- swaps(&stuff->length, n);
+- swapl(&stuff->window, n);
+- return ProcRRGetScreenInfo(client);
+-}
+-
+-static int
+-SProcRRSetScreenConfig (ClientPtr client)
+-{
+- register int n;
+- REQUEST(xRRSetScreenConfigReq);
+-
+- if (RRClientKnowsRates (client))
+- {
+- REQUEST_SIZE_MATCH (xRRSetScreenConfigReq);
+- swaps (&stuff->rate, n);
+- }
+- else
+- {
+- REQUEST_SIZE_MATCH (xRR1_0SetScreenConfigReq);
+- }
+-
+- swaps(&stuff->length, n);
+- swapl(&stuff->drawable, n);
+- swapl(&stuff->timestamp, n);
+- swaps(&stuff->sizeID, n);
+- swaps(&stuff->rotation, n);
+- return ProcRRSetScreenConfig(client);
+-}
+-
+-static int
+-SProcRRSelectInput (ClientPtr client)
+-{
+- register int n;
+- REQUEST(xRRSelectInputReq);
+-
+- swaps(&stuff->length, n);
+- swapl(&stuff->window, n);
+- return ProcRRSelectInput(client);
++ return (*ProcRandrVector[stuff->data]) (client);
+ }
+
+-
+ static int
+ SProcRRDispatch (ClientPtr client)
+ {
+ REQUEST(xReq);
+- switch (stuff->data)
+- {
+- case X_RRQueryVersion:
+- return SProcRRQueryVersion(client);
+- case X_RRSetScreenConfig:
+- return SProcRRSetScreenConfig(client);
+- case X_RRSelectInput:
+- return SProcRRSelectInput(client);
+- case X_RRGetScreenInfo:
+- return SProcRRGetScreenInfo(client);
+- default:
++ if (stuff->data >= RRNumberRequests || !ProcRandrVector[stuff->data])
+ return BadRequest;
+- }
+-}
+-
+-
+-static Bool
+-RRScreenSizeMatches (RRScreenSizePtr a,
+- RRScreenSizePtr b)
+-{
+- if (a->width != b->width)
+- return FALSE;
+- if (a->height != b->height)
+- return FALSE;
+- if (a->mmWidth != b->mmWidth)
+- return FALSE;
+- if (a->mmHeight != b->mmHeight)
+- return FALSE;
+- return TRUE;
+-}
+-
+-RRScreenSizePtr
+-RRRegisterSize (ScreenPtr pScreen,
+- short width,
+- short height,
+- short mmWidth,
+- short mmHeight)
+-{
+- rrScrPriv (pScreen);
+- int i;
+- RRScreenSize tmp;
+- RRScreenSizePtr pNew;
+-
+- if (!pScrPriv)
+- return 0;
+-
+- tmp.width = width;
+- tmp.height= height;
+- tmp.mmWidth = mmWidth;
+- tmp.mmHeight = mmHeight;
+- tmp.pRates = 0;
+- tmp.nRates = 0;
+- tmp.nRatesInUse = 0;
+- tmp.referenced = TRUE;
+- tmp.oldReferenced = FALSE;
+- for (i = 0; i < pScrPriv->nSizes; i++)
+- if (RRScreenSizeMatches (&tmp, &pScrPriv->pSizes[i]))
+- {
+- pScrPriv->pSizes[i].referenced = TRUE;
+- return &pScrPriv->pSizes[i];
+- }
+- pNew = xrealloc (pScrPriv->pSizes,
+- (pScrPriv->nSizes + 1) * sizeof (RRScreenSize));
+- if (!pNew)
+- return 0;
+- pNew[pScrPriv->nSizes++] = tmp;
+- pScrPriv->pSizes = pNew;
+- return &pNew[pScrPriv->nSizes-1];
+-}
+-
+-Bool RRRegisterRate (ScreenPtr pScreen,
+- RRScreenSizePtr pSize,
+- int rate)
+-{
+- rrScrPriv(pScreen);
+- int i;
+- RRScreenRatePtr pNew, pRate;
+-
+- if (!pScrPriv)
+- return FALSE;
+-
+- for (i = 0; i < pSize->nRates; i++)
+- {
+- pRate = &pSize->pRates[i];
+- if (pRate->rate == rate)
+- {
+- pRate->referenced = TRUE;
+- return TRUE;
+- }
+- }
+-
+- pNew = xrealloc (pSize->pRates,
+- (pSize->nRates + 1) * sizeof (RRScreenRate));
+- if (!pNew)
+- return FALSE;
+- pRate = &pNew[pSize->nRates++];
+- pRate->rate = rate;
+- pRate->referenced = TRUE;
+- pRate->oldReferenced = FALSE;
+- pSize->pRates = pNew;
+- return TRUE;
++ return (*SProcRandrVector[stuff->data]) (client);
+ }
+
+-void
+-RRSetCurrentConfig (ScreenPtr pScreen,
+- Rotation rotation,
+- int rate,
+- RRScreenSizePtr pSize)
+-{
+- rrScrPriv (pScreen);
+-
+- if (!pScrPriv)
+- return;
+-
+- pScrPriv->rotation = rotation;
+- pScrPriv->size = pSize - pScrPriv->pSizes;
+- pScrPriv->rate = rate;
+-}
+Only in ./nx-X11/programs/Xserver/randr: randr.c.NX.original
+Only in ./nx-X11/programs/Xserver/randr: randr.c.X.original
+Only in ./nx-X11/programs/Xserver/randr: randr.h
+Only in ./nx-X11/programs/Xserver/randr: randr.h.NX.original
+Only in ./nx-X11/programs/Xserver/randr: randr.h.X.original
+Only in ./nx-X11/programs/Xserver/randr: randrproto.h
+Only in ./nx-X11/programs/Xserver/randr: randrproto.h.NX.original
+Only in ./nx-X11/programs/Xserver/randr: randrproto.h.X.original
+diff -u ./nx-X11/programs/Xserver/randr.X.original/randrstr.h ./nx-X11/programs/Xserver/randr/randrstr.h
+--- ./nx-X11/programs/Xserver/randr.X.original/randrstr.h 2015-02-13 14:03:44.792440567 +0100
++++ ./nx-X11/programs/Xserver/randr/randrstr.h 2015-02-10 19:13:13.636692176 +0100
+@@ -1,25 +1,28 @@
+ /*
+- * $XFree86: xc/programs/Xserver/randr/randrstr.h,v 1.5 2002/09/29 23:39:45 keithp Exp $
+- *
+ * Copyright © 2000 Compaq Computer Corporation
++ * Copyright © 2002 Hewlett-Packard Company
++ * Copyright © 2006 Intel Corporation
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+- * the above copyright notice appear in all copies and that both that
+- * copyright notice and this permission notice appear in supporting
+- * documentation, and that the name of Compaq not be used in
+- * advertising or publicity pertaining to distribution of the software without
+- * specific, written prior permission. Compaq makes no
+- * representations about the suitability of this software for any purpose. It
+- * is provided "as is" without express or implied warranty.
++ * the above copyright notice appear in all copies and that both that copyright
++ * notice and this permission notice appear in supporting documentation, and
++ * that the name of the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
+ *
+- * COMPAQ DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+- * EVENT SHALL COMPAQ BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+- * PERFORMANCE OF THIS SOFTWARE.
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++ * OF THIS SOFTWARE.
++ *
++ * Author: Jim Gettys, Hewlett-Packard Company, Inc.
++ * Keith Packard, Intel Corporation
+ */
+
+ #ifdef HAVE_DIX_CONFIG_H
+@@ -29,68 +32,456 @@
+ #ifndef _RANDRSTR_H_
+ #define _RANDRSTR_H_
+
++#include <X11/X.h>
++#include <X11/Xproto.h>
++#include "misc.h"
++#include "os.h"
++#include "dixstruct.h"
++#include "resource.h"
++#include "scrnintstr.h"
++#include "windowstr.h"
++#include "pixmapstr.h"
++#include "extnsionst.h"
++#include "servermd.h"
++#ifndef NXAGENT_SERVER
+ #include <X11/extensions/randr.h>
++#include <X11/extensions/randrproto.h>
++#else
++#include "randr.h"
++#include "randrproto.h"
++#endif
++#ifdef RENDER
++#include <X11/extensions/render.h> /* we share subpixel order information */
++#include "picturestr.h"
++#endif
++#include <X11/Xfuncproto.h>
++
++/* required for ABI compatibility for now */
++#define RANDR_10_INTERFACE 1
++#define RANDR_12_INTERFACE 1
++
++typedef XID RRMode;
++typedef XID RROutput;
++typedef XID RRCrtc;
++
++extern int RREventBase, RRErrorBase;
++
++extern int (*ProcRandrVector[RRNumberRequests])(ClientPtr);
++extern int (*SProcRandrVector[RRNumberRequests])(ClientPtr);
++
++/*
++ * Modeline for a monitor. Name follows directly after this struct
++ */
++
++#define RRModeName(pMode) ((char *) (pMode + 1))
++typedef struct _rrMode RRModeRec, *RRModePtr;
++typedef struct _rrPropertyValue RRPropertyValueRec, *RRPropertyValuePtr;
++typedef struct _rrProperty RRPropertyRec, *RRPropertyPtr;
++typedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
++typedef struct _rrOutput RROutputRec, *RROutputPtr;
++
++struct _rrMode {
++ int refcnt;
++ xRRModeInfo mode;
++ char *name;
++ ScreenPtr userScreen;
++};
++
++struct _rrPropertyValue {
++ Atom type; /* ignored by server */
++ short format; /* format of data for swapping - 8,16,32 */
++ long size; /* size of data in (format/8) bytes */
++ pointer data; /* private to client */
++};
++
++struct _rrProperty {
++ RRPropertyPtr next;
++ ATOM propertyName;
++ Bool is_pending;
++ Bool range;
++ Bool immutable;
++ int num_valid;
++ INT32 *valid_values;
++ RRPropertyValueRec current, pending;
++};
++
++struct _rrCrtc {
++ RRCrtc id;
++ ScreenPtr pScreen;
++ RRModePtr mode;
++ int x, y;
++ Rotation rotation;
++ Rotation rotations;
++ Bool changed;
++ int numOutputs;
++ RROutputPtr *outputs;
++ int gammaSize;
++ CARD16 *gammaRed;
++ CARD16 *gammaBlue;
++ CARD16 *gammaGreen;
++ void *devPrivate;
++};
++
++struct _rrOutput {
++ RROutput id;
++ ScreenPtr pScreen;
++ char *name;
++ int nameLength;
++ CARD8 connection;
++ CARD8 subpixelOrder;
++ int mmWidth;
++ int mmHeight;
++ RRCrtcPtr crtc;
++ int numCrtcs;
++ RRCrtcPtr *crtcs;
++ int numClones;
++ RROutputPtr *clones;
++ int numModes;
++ int numPreferred;
++ RRModePtr *modes;
++ int numUserModes;
++ RRModePtr *userModes;
++ Bool changed;
++ RRPropertyPtr properties;
++ Bool pendingProperties;
++ void *devPrivate;
++};
++
++#if RANDR_12_INTERFACE
++typedef Bool (*RRScreenSetSizeProcPtr) (ScreenPtr pScreen,
++ CARD16 width,
++ CARD16 height,
++ CARD32 mmWidth,
++ CARD32 mmHeight);
++
++typedef Bool (*RRCrtcSetProcPtr) (ScreenPtr pScreen,
++ RRCrtcPtr crtc,
++ RRModePtr mode,
++ int x,
++ int y,
++ Rotation rotation,
++ int numOutputs,
++ RROutputPtr *outputs);
++
++typedef Bool (*RRCrtcSetGammaProcPtr) (ScreenPtr pScreen,
++ RRCrtcPtr crtc);
++
++typedef Bool (*RROutputSetPropertyProcPtr) (ScreenPtr pScreen,
++ RROutputPtr output,
++ Atom property,
++ RRPropertyValuePtr value);
++
++typedef Bool (*RROutputValidateModeProcPtr) (ScreenPtr pScreen,
++ RROutputPtr output,
++ RRModePtr mode);
++
++typedef void (*RRModeDestroyProcPtr) (ScreenPtr pScreen,
++ RRModePtr mode);
++
++#endif
++
++typedef Bool (*RRGetInfoProcPtr) (ScreenPtr pScreen, Rotation *rotations);
++typedef Bool (*RRCloseScreenProcPtr) ( int i, ScreenPtr pscreen);
+
+-typedef struct _rrScreenRate {
+- int rate;
+- Bool referenced;
+- Bool oldReferenced;
++/* These are for 1.0 compatibility */
++
++typedef struct _rrRefresh {
++ CARD16 rate;
++ RRModePtr mode;
+ } RRScreenRate, *RRScreenRatePtr;
+
+ typedef struct _rrScreenSize {
+ int id;
+ short width, height;
+ short mmWidth, mmHeight;
+- RRScreenRatePtr pRates;
+ int nRates;
+- int nRatesInUse;
+- Bool referenced;
+- Bool oldReferenced;
++ RRScreenRatePtr pRates;
+ } RRScreenSize, *RRScreenSizePtr;
+
++#ifdef RANDR_10_INTERFACE
++
+ typedef Bool (*RRSetConfigProcPtr) (ScreenPtr pScreen,
+ Rotation rotation,
+ int rate,
+ RRScreenSizePtr pSize);
+
+-typedef Bool (*RRGetInfoProcPtr) (ScreenPtr pScreen, Rotation *rotations);
+-typedef Bool (*RRCloseScreenProcPtr) ( int i, ScreenPtr pscreen);
++#endif
+
++
+ typedef struct _rrScrPriv {
++ /*
++ * 'public' part of the structure; DDXen fill this in
++ * as they initialize
++ */
++#if RANDR_10_INTERFACE
+ RRSetConfigProcPtr rrSetConfig;
++#endif
+ RRGetInfoProcPtr rrGetInfo;
++#if RANDR_12_INTERFACE
++ RRScreenSetSizeProcPtr rrScreenSetSize;
++ RRCrtcSetProcPtr rrCrtcSet;
++ RRCrtcSetGammaProcPtr rrCrtcSetGamma;
++ RROutputSetPropertyProcPtr rrOutputSetProperty;
++ RROutputValidateModeProcPtr rrOutputValidateMode;
++ RRModeDestroyProcPtr rrModeDestroy;
++#endif
+
++ /*
++ * Private part of the structure; not considered part of the ABI
++ */
+ TimeStamp lastSetTime; /* last changed by client */
+ TimeStamp lastConfigTime; /* possible configs changed */
+ RRCloseScreenProcPtr CloseScreen;
+
++ Bool changed; /* some config changed */
++ Bool configChanged; /* configuration changed */
++ Bool layoutChanged; /* screen layout changed */
++
++ CARD16 minWidth, minHeight;
++ CARD16 maxWidth, maxHeight;
++ CARD16 width, height; /* last known screen size */
++ CARD16 mmWidth, mmHeight; /* last known screen size */
++
++ int numOutputs;
++ RROutputPtr *outputs;
++
++ int numCrtcs;
++ RRCrtcPtr *crtcs;
++
++ /* Last known pointer position */
++ RRCrtcPtr pointerCrtc;
++
++#ifdef RANDR_10_INTERFACE
+ /*
+ * Configuration information
+ */
+ Rotation rotations;
++ CARD16 reqWidth, reqHeight;
+
+ int nSizes;
+- int nSizesInUse;
+ RRScreenSizePtr pSizes;
+-
+- /*
+- * Current state
+- */
++
+ Rotation rotation;
+- int size;
+ int rate;
++ int size;
++#endif
+ } rrScrPrivRec, *rrScrPrivPtr;
+
++#ifndef NXAGENT_SERVER
++extern DevPrivateKey rrPrivKey;
++#else
+ extern int rrPrivIndex;
++#endif
++
++#ifndef NXAGENT_SERVER
++
++#define rrGetScrPriv(pScr) ((rrScrPrivPtr)dixLookupPrivate(&(pScr)->devPrivates, rrPrivKey))
++#define rrScrPriv(pScr) rrScrPrivPtr pScrPriv = rrGetScrPriv(pScr)
++#define SetRRScreen(s,p) dixSetPrivate(&(s)->devPrivates, rrPrivKey, p)
++
++#else
+
+ #define rrGetScrPriv(pScr) ((rrScrPrivPtr) (pScr)->devPrivates[rrPrivIndex].ptr)
+ #define rrScrPriv(pScr) rrScrPrivPtr pScrPriv = rrGetScrPriv(pScr)
+ #define SetRRScreen(s,p) ((s)->devPrivates[rrPrivIndex].ptr = (pointer) (p))
+
++#endif
++
++/*
++ * each window has a list of clients requesting
++ * RRNotify events. Each client has a resource
++ * for each window it selects RRNotify input for,
++ * this resource is used to delete the RRNotifyRec
++ * entry from the per-window queue.
++ */
++
++typedef struct _RREvent *RREventPtr;
++
++typedef struct _RREvent {
++ RREventPtr next;
++ ClientPtr client;
++ WindowPtr window;
++ XID clientResource;
++ int mask;
++} RREventRec;
++
++typedef struct _RRTimes {
++ TimeStamp setTime;
++ TimeStamp configTime;
++} RRTimesRec, *RRTimesPtr;
++
++typedef struct _RRClient {
++ int major_version;
++ int minor_version;
++/* RRTimesRec times[0]; */
++} RRClientRec, *RRClientPtr;
++
++extern RESTYPE RRClientType, RREventType; /* resource types for event masks */
++#ifndef NXAGENT_SERVER
++extern DevPrivateKey RRClientPrivateKey;
++#else
++extern int RRClientPrivateIndex;
++#endif
++extern RESTYPE RRCrtcType, RRModeType, RROutputType;
++
++#define LookupOutput(client,id,a) ((RROutputPtr) \
++ (SecurityLookupIDByType (client, id, \
++ RROutputType, a)))
++#define LookupCrtc(client,id,a) ((RRCrtcPtr) \
++ (SecurityLookupIDByType (client, id, \
++ RRCrtcType, a)))
++#define LookupMode(client,id,a) ((RRModePtr) \
++ (SecurityLookupIDByType (client, id, \
++ RRModeType, a)))
++#ifndef NXAGENT_SERVER
++
++#define GetRRClient(pClient) ((RRClientPtr)dixLookupPrivate(&(pClient)->devPrivates, RRClientPrivateKey))
++#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
++
++#else
++
++#define GetRRClient(pClient) ((RRClientPtr) (pClient)->devPrivates[RRClientPrivateIndex].ptr)
++#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
++
++#define DixUnknownAccess SecurityUnknownAccess
++#define DixReadAccess SecurityReadAccess
++#define DixWriteAccess SecurityWriteAccess
++#define DixDestroyAccess SecurityDestroyAccess
++
++#endif
++
+ /* Initialize the extension */
+ void
+ RRExtensionInit (void);
+
++#ifdef RANDR_12_INTERFACE
++/*
++ * Set the range of sizes for the screen
++ */
++void
++RRScreenSetSizeRange (ScreenPtr pScreen,
++ CARD16 minWidth,
++ CARD16 minHeight,
++ CARD16 maxWidth,
++ CARD16 maxHeight);
++#endif
++
++/* rrscreen.c */
++/*
++ * Notify the extension that the screen size has been changed.
++ * The driver is responsible for calling this whenever it has changed
++ * the size of the screen
++ */
++void
++RRScreenSizeNotify (ScreenPtr pScreen);
++
++/*
++ * Request that the screen be resized
++ */
++Bool
++RRScreenSizeSet (ScreenPtr pScreen,
++ CARD16 width,
++ CARD16 height,
++ CARD32 mmWidth,
++ CARD32 mmHeight);
++
++/*
++ * Send ConfigureNotify event to root window when 'something' happens
++ */
++void
++RRSendConfigNotify (ScreenPtr pScreen);
++
++/*
++ * screen dispatch
++ */
++int
++ProcRRGetScreenSizeRange (ClientPtr client);
++
++int
++ProcRRSetScreenSize (ClientPtr client);
++
++int
++ProcRRGetScreenResources (ClientPtr client);
++
++int
++ProcRRSetScreenConfig (ClientPtr client);
++
++int
++ProcRRGetScreenInfo (ClientPtr client);
++
++/*
++ * Deliver a ScreenNotify event
++ */
++void
++RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
++
++/* mirandr.c */
++Bool
++miRandRInit (ScreenPtr pScreen);
++
++Bool
++miRRGetInfo (ScreenPtr pScreen, Rotation *rotations);
++
++Bool
++miRRGetScreenInfo (ScreenPtr pScreen);
++
++Bool
++miRRCrtcSet (ScreenPtr pScreen,
++ RRCrtcPtr crtc,
++ RRModePtr mode,
++ int x,
++ int y,
++ Rotation rotation,
++ int numOutput,
++ RROutputPtr *outputs);
++
++Bool
++miRROutputSetProperty (ScreenPtr pScreen,
++ RROutputPtr output,
++ Atom property,
++ RRPropertyValuePtr value);
++
++Bool
++miRROutputValidateMode (ScreenPtr pScreen,
++ RROutputPtr output,
++ RRModePtr mode);
++
++void
++miRRModeDestroy (ScreenPtr pScreen,
++ RRModePtr mode);
++
++/* randr.c */
++/*
++ * Send all pending events
++ */
++void
++RRTellChanged (ScreenPtr pScreen);
++
++/*
++ * Poll the driver for changed information
++ */
++Bool
++RRGetInfo (ScreenPtr pScreen);
++
++Bool RRInit (void);
++
++Bool RRScreenInit(ScreenPtr pScreen);
++
++RROutputPtr
++RRFirstOutput (ScreenPtr pScreen);
++
++Rotation
++RRGetRotation (ScreenPtr pScreen);
++
++CARD16
++RRVerticalRefresh (xRRModeInfo *mode);
++
++#ifdef RANDR_10_INTERFACE
++/*
++ * This is the old interface, deprecated but left
++ * around for compatibility
++ */
++
+ /*
+ * Then, register the specific size with the screen
+ */
+@@ -116,7 +507,10 @@
+ int rate,
+ RRScreenSizePtr pSize);
+
+-Bool RRScreenInit(ScreenPtr pScreen);
++Bool RRScreenInit (ScreenPtr pScreen);
++
++Rotation
++RRGetRotation (ScreenPtr pScreen);
+
+ int
+ RRSetScreenConfig (ScreenPtr pScreen,
+@@ -124,19 +518,371 @@
+ int rate,
+ RRScreenSizePtr pSize);
+
++#endif
++
++/* rrcrtc.c */
++
++/*
++ * Notify the CRTC of some change; layoutChanged indicates that
++ * some position or size element changed
++ */
++void
++RRCrtcChanged (RRCrtcPtr crtc, Bool layoutChanged);
++
++/*
++ * Create a CRTC
++ */
++RRCrtcPtr
++RRCrtcCreate (ScreenPtr pScreen, void *devPrivate);
++
++/*
++ * Set the allowed rotations on a CRTC
++ */
++void
++RRCrtcSetRotations (RRCrtcPtr crtc, Rotation rotations);
++
++/*
++ * Notify the extension that the Crtc has been reconfigured,
++ * the driver calls this whenever it has updated the mode
++ */
++Bool
++RRCrtcNotify (RRCrtcPtr crtc,
++ RRModePtr mode,
++ int x,
++ int y,
++ Rotation rotation,
++ int numOutputs,
++ RROutputPtr *outputs);
++
++void
++RRDeliverCrtcEvent (ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc);
++
++/*
++ * Request that the Crtc be reconfigured
++ */
+ Bool
+-miRandRInit (ScreenPtr pScreen);
++RRCrtcSet (RRCrtcPtr crtc,
++ RRModePtr mode,
++ int x,
++ int y,
++ Rotation rotation,
++ int numOutput,
++ RROutputPtr *outputs);
++
++/*
++ * Request that the Crtc gamma be changed
++ */
+
+ Bool
+-miRRGetInfo (ScreenPtr pScreen, Rotation *rotations);
++RRCrtcGammaSet (RRCrtcPtr crtc,
++ CARD16 *red,
++ CARD16 *green,
++ CARD16 *blue);
++
++/*
++ * Notify the extension that the Crtc gamma has been changed
++ * The driver calls this whenever it has changed the gamma values
++ * in the RRCrtcRec
++ */
+
+ Bool
+-miRRSetConfig (ScreenPtr pScreen,
+- Rotation rotation,
+- int rate,
+- RRScreenSizePtr size);
++RRCrtcGammaNotify (RRCrtcPtr crtc);
++
++/*
++ * Set the size of the gamma table at server startup time
++ */
+
+ Bool
+-miRRGetScreenInfo (ScreenPtr pScreen);
++RRCrtcGammaSetSize (RRCrtcPtr crtc,
++ int size);
++
++/*
++ * Return the area of the frame buffer scanned out by the crtc,
++ * taking into account the current mode and rotation
++ */
++
++void
++RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height);
++
++/*
++ * Destroy a Crtc at shutdown
++ */
++void
++RRCrtcDestroy (RRCrtcPtr crtc);
++
++/*
++ * Initialize crtc type
++ */
++Bool
++RRCrtcInit (void);
++
++/*
++ * Crtc dispatch
++ */
++
++int
++ProcRRGetCrtcInfo (ClientPtr client);
++
++int
++ProcRRSetCrtcConfig (ClientPtr client);
++
++int
++ProcRRGetCrtcGammaSize (ClientPtr client);
++
++int
++ProcRRGetCrtcGamma (ClientPtr client);
++
++int
++ProcRRSetCrtcGamma (ClientPtr client);
++
++/* rrdispatch.c */
++Bool
++RRClientKnowsRates (ClientPtr pClient);
++
++/* rrmode.c */
++/*
++ * Find, and if necessary, create a mode
++ */
++
++RRModePtr
++RRModeGet (xRRModeInfo *modeInfo,
++ const char *name);
++
++void
++RRModePruneUnused (ScreenPtr pScreen);
++
++/*
++ * Destroy a mode.
++ */
++
++void
++RRModeDestroy (RRModePtr mode);
++
++/*
++ * Return a list of modes that are valid for some output in pScreen
++ */
++RRModePtr *
++RRModesForScreen (ScreenPtr pScreen, int *num_ret);
++
++/*
++ * Initialize mode type
++ */
++Bool
++RRModeInit (void);
++
++int
++ProcRRCreateMode (ClientPtr client);
++
++int
++ProcRRDestroyMode (ClientPtr client);
++
++int
++ProcRRAddOutputMode (ClientPtr client);
++
++int
++ProcRRDeleteOutputMode (ClientPtr client);
++
++/* rroutput.c */
++
++/*
++ * Notify the output of some change. configChanged indicates whether
++ * any external configuration (mode list, clones, connected status)
++ * has changed, or whether the change was strictly internal
++ * (which crtc is in use)
++ */
++void
++RROutputChanged (RROutputPtr output, Bool configChanged);
++
++/*
++ * Create an output
++ */
++
++RROutputPtr
++RROutputCreate (ScreenPtr pScreen,
++ const char *name,
++ int nameLength,
++ void *devPrivate);
++
++/*
++ * Notify extension that output parameters have been changed
++ */
++Bool
++RROutputSetClones (RROutputPtr output,
++ RROutputPtr *clones,
++ int numClones);
++
++Bool
++RROutputSetModes (RROutputPtr output,
++ RRModePtr *modes,
++ int numModes,
++ int numPreferred);
++
++int
++RROutputAddUserMode (RROutputPtr output,
++ RRModePtr mode);
++
++int
++RROutputDeleteUserMode (RROutputPtr output,
++ RRModePtr mode);
++
++Bool
++RROutputSetCrtcs (RROutputPtr output,
++ RRCrtcPtr *crtcs,
++ int numCrtcs);
++
++Bool
++RROutputSetConnection (RROutputPtr output,
++ CARD8 connection);
++
++Bool
++RROutputSetSubpixelOrder (RROutputPtr output,
++ int subpixelOrder);
++
++Bool
++RROutputSetPhysicalSize (RROutputPtr output,
++ int mmWidth,
++ int mmHeight);
++
++void
++RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output);
++
++void
++RROutputDestroy (RROutputPtr output);
++
++int
++ProcRRGetOutputInfo (ClientPtr client);
++
++/*
++ * Initialize output type
++ */
++Bool
++RROutputInit (void);
++
++/* rrpointer.c */
++void
++RRPointerMoved (ScreenPtr pScreen, int x, int y);
++
++void
++RRPointerScreenConfigured (ScreenPtr pScreen);
++
++/* rrproperty.c */
++
++void
++RRDeleteAllOutputProperties (RROutputPtr output);
++
++RRPropertyValuePtr
++RRGetOutputProperty (RROutputPtr output, Atom property, Bool pending);
++
++RRPropertyPtr
++RRQueryOutputProperty (RROutputPtr output, Atom property);
++
++void
++RRDeleteOutputProperty (RROutputPtr output, Atom property);
++
++Bool
++RRPostPendingProperties (RROutputPtr output);
++
++int
++RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
++ int format, int mode, unsigned long len,
++ pointer value, Bool sendevent, Bool pending);
++
++int
++RRConfigureOutputProperty (RROutputPtr output, Atom property,
++ Bool pending, Bool range, Bool immutable,
++ int num_values, INT32 *values);
++int
++ProcRRChangeOutputProperty (ClientPtr client);
++
++int
++ProcRRGetOutputProperty (ClientPtr client);
++
++int
++ProcRRListOutputProperties (ClientPtr client);
++
++int
++ProcRRQueryOutputProperty (ClientPtr client);
++
++int
++ProcRRConfigureOutputProperty (ClientPtr client);
++
++int
++ProcRRDeleteOutputProperty (ClientPtr client);
++
++/* rrxinerama.c */
++void
++RRXineramaExtensionInit(void);
+
+ #endif /* _RANDRSTR_H_ */
++
++/*
++
++randr extension implementation structure
++
++Query state:
++ ProcRRGetScreenInfo/ProcRRGetScreenResources
++ RRGetInfo
++
++ • Request configuration from driver, either 1.0 or 1.2 style
++ • These functions only record state changes, all
++ other actions are pended until RRTellChanged is called
++
++ ->rrGetInfo
++ 1.0:
++ RRRegisterSize
++ RRRegisterRate
++ RRSetCurrentConfig
++ 1.2:
++ RRScreenSetSizeRange
++ RROutputSetCrtcs
++ RRModeGet
++ RROutputSetModes
++ RROutputSetConnection
++ RROutputSetSubpixelOrder
++ RROutputSetClones
++ RRCrtcNotify
++
++ • Must delay scanning configuration until after ->rrGetInfo returns
++ because some drivers will call SetCurrentConfig in the middle
++ of the ->rrGetInfo operation.
++
++ 1.0:
++
++ • Scan old configuration, mirror to new structures
++
++ RRScanOldConfig
++ RRCrtcCreate
++ RROutputCreate
++ RROutputSetCrtcs
++ RROutputSetConnection
++ RROutputSetSubpixelOrder
++ RROldModeAdd • This adds modes one-at-a-time
++ RRModeGet
++ RRCrtcNotify
++
++ • send events, reset pointer if necessary
++
++ RRTellChanged
++ WalkTree (sending events)
++
++ • when layout has changed:
++ RRPointerScreenConfigured
++ RRSendConfigNotify
++
++Asynchronous state setting (1.2 only)
++ When setting state asynchronously, the driver invokes the
++ ->rrGetInfo function and then calls RRTellChanged to flush
++ the changes to the clients and reset pointer if necessary
++
++Set state
++
++ ProcRRSetScreenConfig
++ RRCrtcSet
++ 1.2:
++ ->rrCrtcSet
++ RRCrtcNotify
++ 1.0:
++ ->rrSetConfig
++ RRCrtcNotify
++ RRTellChanged
++ */
+Only in ./nx-X11/programs/Xserver/randr: registry.h
+Only in ./nx-X11/programs/Xserver/randr: registry.h.NX.original
+Only in ./nx-X11/programs/Xserver/randr: registry.h.X.original
+Only in ./nx-X11/programs/Xserver/randr: rrcrtc.c
+Only in ./nx-X11/programs/Xserver/randr: rrcrtc.c.NX.original
+Only in ./nx-X11/programs/Xserver/randr: rrcrtc.c.X.original
+Only in ./nx-X11/programs/Xserver/randr: rrdispatch.c
+Only in ./nx-X11/programs/Xserver/randr: rrdispatch.c.X.original
+Only in ./nx-X11/programs/Xserver/randr: rrinfo.c
+Only in ./nx-X11/programs/Xserver/randr: rrmode.c
+Only in ./nx-X11/programs/Xserver/randr: rrmode.c.NX.original
+Only in ./nx-X11/programs/Xserver/randr: rrmode.c.X.original
+Only in ./nx-X11/programs/Xserver/randr: rroutput.c
+Only in ./nx-X11/programs/Xserver/randr: rrpointer.c
+Only in ./nx-X11/programs/Xserver/randr: rrproperty.c
+Only in ./nx-X11/programs/Xserver/randr: rrscreen.c
+Only in ./nx-X11/programs/Xserver/randr: rrscreen.c.NX.original
+Only in ./nx-X11/programs/Xserver/randr: rrscreen.c.X.original
+Only in ./nx-X11/programs/Xserver/randr: rrsdispatch.c
+Only in ./nx-X11/programs/Xserver/randr: rrxinerama.c
+Only in ./nx-X11/programs/Xserver/randr: rrxinerama.c.NX.original
+Only in ./nx-X11/programs/Xserver/randr: rrxinerama.c.X.original
diff --git a/doc/libNX_X11/lcUniConv/8bit_tab_to_h.c b/doc/libNX_X11/lcUniConv/8bit_tab_to_h.c
new file mode 100644
index 000000000..993979aeb
--- /dev/null
+++ b/doc/libNX_X11/lcUniConv/8bit_tab_to_h.c
@@ -0,0 +1,535 @@
+
+/*
+ * Generates an 8-bit character set table from a .TXT table as found on
+ * ftp.unicode.org or from a table containing the 256 Unicode values as
+ * hexadecimal integers.
+ * Examples:
+ *
+ * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < tab8859_1
+ * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < tab8859_2
+ * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < tab8859_3
+ * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < tab8859_4
+ * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < tab8859_5
+ * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < tab8859_6
+ * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < tab8859_7
+ * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < tab8859_8
+ * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < tab8859_9
+ * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < tab8859_10
+ * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < tab8859_14
+ * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < tab8859_15
+ * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < jis0201
+ * ./8bit_tab_to_h TIS620-0 tis620 < tabtis620
+ * ./8bit_tab_to_h KOI8-R koi8_r < tabkoi8_r
+ * ./8bit_tab_to_h KOI8-U koi8_u < tabkoi8_u
+ * ./8bit_tab_to_h ARMSCII-8 armscii_8 < tabarmscii_8
+ * ./8bit_tab_to_h CP1133 cp1133 < tabibm_cp1133
+ * ./8bit_tab_to_h MULELAO-1 mulelao < tabmulelao_1
+ * ./8bit_tab_to_h VISCII1.1-1 viscii1 < tabviscii
+ * ./8bit_tab_to_h TCVN-5712 tcvn < tabtcvn
+ * ./8bit_tab_to_h GEORGIAN-ACADEMY georgian_ac < tabgeorgian_academy
+ * ./8bit_tab_to_h GEORGIAN-PS georgian_ps < tabgeorgian_ps
+ *
+ * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < 8859-1.TXT
+ * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < 8859-2.TXT
+ * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < 8859-3.TXT
+ * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < 8859-4.TXT
+ * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < 8859-5.TXT
+ * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < 8859-6.TXT
+ * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < 8859-7.TXT
+ * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < 8859-8.TXT
+ * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < 8859-9.TXT
+ * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < 8859-10.TXT
+ * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < 8859-14.TXT
+ * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < 8859-15.TXT
+ * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < JIS0201.TXT
+ * ./8bit_tab_to_h KOI8-R koi8_r < KOI8-R.TXT
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+
+int main (int argc, char *argv[])
+{
+ const char* charsetname;
+ const char* c_charsetname;
+ const char* filename;
+ const char* directory;
+ int charset2uni[0x100];
+
+ if (argc != 3 && argc != 4 && argc != 5)
+ exit(1);
+ charsetname = argv[1];
+ c_charsetname = argv[2];
+ if (argc > 3) {
+ filename = argv[3];
+ } else {
+ char* s = malloc(strlen(c_charsetname)+strlen(".h")+1);
+ strcpy(s,c_charsetname); strcat(s,".h");
+ filename = s;
+ }
+ directory = (argc > 4 ? argv[4] : "");
+
+ fprintf(stderr, "Creating %s%s\n", directory, filename);
+
+ {
+ int i, c;
+ c = getc(stdin);
+ ungetc(c,stdin);
+ if (c == '#') {
+ /* Read a unicode.org style .TXT file. */
+ for (i = 0; i < 0x100; i++)
+ charset2uni[i] = 0xfffd;
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("0x%x", &i) != 1 || !(i >= 0 && i < 0x100))
+ exit(1);
+ do { c = getc(stdin); } while (c == ' ' || c == '\t');
+ if (c != EOF)
+ ungetc(c,stdin);
+ if (c == '\n' || c == '#')
+ continue;
+ if (scanf("0x%x", &charset2uni[i]) != 1)
+ exit(1);
+ }
+ } else {
+ /* Read a table of hexadecimal Unicode values. */
+ for (i = 0; i < 0x100; i++) {
+ if (scanf("%x", &charset2uni[i]) != 1)
+ exit(1);
+ if (charset2uni[i] < 0 || charset2uni[i] == 0xffff)
+ charset2uni[i] = 0xfffd;
+ }
+ if (scanf("%x", &i) != EOF)
+ exit(1);
+ }
+ }
+
+ /* Write the output file. */
+ {
+ FILE* f;
+
+ {
+ char* fname = malloc(strlen(directory)+strlen(filename)+1);
+ strcpy(fname,directory); strcat(fname,filename);
+ f = fopen(fname,"w");
+ if (f == NULL)
+ exit(1);
+ }
+
+ fprintf(f, "\n");
+ fprintf(f, "/*\n");
+ fprintf(f, " * %s\n", charsetname);
+ fprintf(f, " */\n");
+ fprintf(f, "\n");
+
+ {
+ int i, i1, i2, i3;
+ int line[16];
+ int tableno;
+ struct { int minline; int maxline; } tables[16];
+ bool some_invalid;
+ bool final_ret_reached;
+
+ for (i1 = 0; i1 < 16; i1++) {
+ bool all_invalid = true;
+ bool all_identity = true;
+ for (i2 = 0; i2 < 16; i2++) {
+ i = 16*i1+i2;
+ if (charset2uni[i] != 0xfffd)
+ all_invalid = false;
+ if (charset2uni[i] != i)
+ all_identity = false;
+ }
+ if (all_invalid)
+ line[i1] = -2;
+ else if (all_identity)
+ line[i1] = -1;
+ else
+ line[i1] = 0;
+ }
+ tableno = 0;
+ for (i1 = 0; i1 < 16; i1++) {
+ if (line[i1] >= 0) {
+ if (i1 > 0 && tableno > 0 && line[i1-1] == tableno-1) {
+ line[i1] = tableno-1;
+ tables[tableno-1].maxline = i1;
+ } else {
+ tableno++;
+ line[i1] = tableno-1;
+ tables[tableno-1].minline = tables[tableno-1].maxline = i1;
+ }
+ }
+ }
+ some_invalid = false;
+ for (i = 0; i < 0x100; i++)
+ if (charset2uni[i] == 0xfffd)
+ some_invalid = true;
+ if (tableno > 0) {
+ int t;
+ for (t = 0; t < tableno; t++) {
+ fprintf(f, "static const unsigned short %s_2uni", c_charsetname);
+ if (tableno > 1)
+ fprintf(f, "_%d", t+1);
+ fprintf(f, "[%d] = {\n", 16*(tables[t].maxline-tables[t].minline+1));
+ for (i1 = tables[t].minline; i1 <= tables[t].maxline; i1++) {
+ fprintf(f, " /* 0x%02x */\n", 16*i1);
+ for (i2 = 0; i2 < 2; i2++) {
+ fprintf(f, " ");
+ for (i3 = 0; i3 < 8; i3++) {
+ i = 16*i1+8*i2+i3;
+ fprintf(f, " 0x%04x,", charset2uni[i]);
+ }
+ fprintf(f, "\n");
+ }
+ }
+ fprintf(f, "};\n");
+ }
+ fprintf(f, "\n");
+ }
+ final_ret_reached = false;
+ fprintf(f, "static int\n%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", c_charsetname);
+ fprintf(f, "{\n");
+ fprintf(f, " unsigned char c = *s;\n");
+ if (some_invalid) {
+ for (i1 = 0; i1 < 16;) {
+ int t = line[i1];
+ const char* indent;
+ for (i2 = i1; i2 < 16 && line[i2] == t; i2++);
+ indent = (i1 == 0 && i2 == 16 ? " " : " ");
+ if (i1 == 0) {
+ if (i2 == 16) {
+ } else {
+ fprintf(f, " if (c < 0x%02x) {\n", 16*i2);
+ }
+ } else {
+ if (i2 == 16) {
+ fprintf(f, " else {\n");
+ } else {
+ fprintf(f, " else if (c < 0x%02x) {\n", 16*i2);
+ }
+ }
+ if (t == -2) {
+ final_ret_reached = true;
+ } else if (t == -1) {
+ fprintf(f, "%s*pwc = (ucs4_t) c;\n", indent);
+ fprintf(f, "%sreturn 1;\n", indent);
+ } else {
+ fprintf(f, "%s", indent);
+ some_invalid = false;
+ for (i = 16*i1; i < 16*i2; i++)
+ if (charset2uni[i] == 0xfffd)
+ some_invalid = true;
+ if (some_invalid)
+ fprintf(f, "unsigned short wc = ");
+ else
+ fprintf(f, "*pwc = (ucs4_t) ");
+ fprintf(f, "%s_2uni", c_charsetname);
+ if (tableno > 1)
+ fprintf(f, "_%d", t+1);
+ fprintf(f, "[c");
+ if (tables[t].minline > 0)
+ fprintf(f, "-0x%02x", 16*tables[t].minline);
+ fprintf(f, "];\n");
+ if (some_invalid) {
+ fprintf(f, "%sif (wc != 0xfffd) {\n", indent);
+ fprintf(f, "%s *pwc = (ucs4_t) wc;\n", indent);
+ fprintf(f, "%s return 1;\n", indent);
+ fprintf(f, "%s}\n", indent);
+ final_ret_reached = true;
+ } else {
+ fprintf(f, "%sreturn 1;\n", indent);
+ }
+ }
+ if (!(i1 == 0 && i2 == 16))
+ fprintf(f, " }\n");
+ i1 = i2;
+ }
+ if (final_ret_reached)
+ fprintf(f, " return RET_ILSEQ;\n");
+ } else {
+ for (i1 = 0; i1 < 16;) {
+ int t = line[i1];
+ for (i2 = i1; i2 < 16 && line[i2] == t; i2++);
+ if (i1 == 0) {
+ if (i2 == 16) {
+ fprintf(f, " ");
+ } else {
+ fprintf(f, " if (c < 0x%02x)\n ", 16*i2);
+ }
+ } else {
+ if (i2 == 16) {
+ fprintf(f, " else\n ");
+ } else {
+ fprintf(f, " else if (c < 0x%02x)\n ", 16*i2);
+ }
+ }
+ if (t == -1)
+ fprintf(f, "*pwc = (ucs4_t) c;\n");
+ else {
+ fprintf(f, "*pwc = (ucs4_t) %s_2uni", c_charsetname);
+ if (tableno > 1)
+ fprintf(f, "_%d", t+1);
+ fprintf(f, "[c");
+ if (tables[t].minline > 0)
+ fprintf(f, "-0x%02x", 16*tables[t].minline);
+ fprintf(f, "];\n");
+ }
+ i1 = i2;
+ }
+ fprintf(f, " return 1;\n");
+ }
+ fprintf(f, "}\n");
+
+ }
+
+ fprintf(f, "\n");
+
+ {
+ int uni2charset[0x10000];
+ bool pages[0x100];
+ int line[0x2000];
+ int tableno;
+ struct { int minline; int maxline; int usecount; const char* suffix; } tables[0x2000];
+ bool need_c;
+ bool fix_0000;
+ int i, j, p, j1, j2, t;
+
+ for (j = 0; j < 0x10000; j++)
+ uni2charset[j] = 0;
+ for (p = 0; p < 0x100; p++)
+ pages[p] = false;
+ for (i = 0; i < 0x100; i++) {
+ j = charset2uni[i];
+ if (j != 0xfffd) {
+ uni2charset[j] = i;
+ pages[j>>8] = true;
+ }
+ }
+ for (j1 = 0; j1 < 0x2000; j1++) {
+ bool all_invalid = true;
+ bool all_identity = true;
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ if (uni2charset[j] != 0)
+ all_invalid = false;
+ if (uni2charset[j] != j)
+ all_identity = false;
+ }
+ if (all_invalid)
+ line[j1] = -2;
+ else if (all_identity)
+ line[j1] = -1;
+ else
+ line[j1] = 0;
+ }
+ tableno = 0;
+ for (j1 = 0; j1 < 0x2000; j1++) {
+ if (line[j1] >= 0) {
+ if (tableno > 0
+ && ((j1 > 0 && line[j1-1] == tableno-1)
+ || ((tables[tableno-1].maxline >> 5) == (j1 >> 5)
+ && j1 - tables[tableno-1].maxline <= 8))) {
+ line[j1] = tableno-1;
+ tables[tableno-1].maxline = j1;
+ } else {
+ tableno++;
+ line[j1] = tableno-1;
+ tables[tableno-1].minline = tables[tableno-1].maxline = j1;
+ }
+ }
+ }
+ for (t = 0; t < tableno; t++) {
+ tables[t].usecount = 0;
+ j1 = 8*tables[t].minline;
+ j2 = 8*(tables[t].maxline+1);
+ for (j = j1; j < j2; j++)
+ if (uni2charset[j] != 0)
+ tables[t].usecount++;
+ }
+ for (t = 0, p = -1, i = 0; t < tableno; t++) {
+ if (tables[t].usecount > 1) {
+ char* s;
+ if (p == tables[t].minline >> 5) {
+ s = malloc(5+1);
+ sprintf(s, "%02x_%d", p, ++i);
+ } else {
+ p = tables[t].minline >> 5;
+ s = malloc(2+1);
+ sprintf(s, "%02x", p);
+ }
+ tables[t].suffix = s;
+ } else
+ tables[t].suffix = NULL;
+ }
+ {
+ p = -1;
+ for (t = 0; t < tableno; t++)
+ if (tables[t].usecount > 1) {
+ p = 0;
+ fprintf(f, "static const unsigned char %s_page%s[%d] = {\n", c_charsetname, tables[t].suffix, 8*(tables[t].maxline-tables[t].minline+1));
+ for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) {
+ if ((j1 % 0x20) == 0 && j1 > tables[t].minline)
+ fprintf(f, " /* 0x%04x */\n", 8*j1);
+ fprintf(f, " ");
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ fprintf(f, " 0x%02x,", uni2charset[j]);
+ }
+ fprintf(f, " /* 0x%02x-0x%02x */\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7);
+ }
+ fprintf(f, "};\n");
+ }
+ if (p >= 0)
+ fprintf(f, "\n");
+ }
+ need_c = false;
+ for (j1 = 0; j1 < 0x2000;) {
+ t = line[j1];
+ for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++);
+ if (t >= 0)
+ j2 = tables[t].maxline+1;
+ if (!(t == -2 || (t == -1 && j1 == 0)))
+ need_c = true;
+ j1 = j2;
+ }
+ fix_0000 = false;
+ fprintf(f, "static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", c_charsetname);
+ fprintf(f, "{\n");
+ if (need_c)
+ fprintf(f, " unsigned char c = 0;\n");
+ for (j1 = 0; j1 < 0x2000;) {
+ t = line[j1];
+ for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++);
+ if (t >= 0) {
+ if (j1 != tables[t].minline) abort();
+ if (j2 > tables[t].maxline+1) abort();
+ j2 = tables[t].maxline+1;
+ }
+ if (t == -2) {
+ } else {
+ if (j1 == 0)
+ fprintf(f, " ");
+ else
+ fprintf(f, " else ");
+ if (t >= 0 && tables[t].usecount == 0) abort();
+ if (t >= 0 && tables[t].usecount == 1) {
+ if (j2 != j1+1) abort();
+ for (j = 8*j1; j < 8*j2; j++)
+ if (uni2charset[j] != 0) {
+ fprintf(f, "if (wc == 0x%04x)\n c = 0x%02x;\n", j, uni2charset[j]);
+ break;
+ }
+ } else {
+ if (j1 == 0) {
+ fprintf(f, "if (wc < 0x%04x)", 8*j2);
+ } else {
+ fprintf(f, "if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2);
+ }
+ if (t == -1) {
+ if (j1 == 0)
+ /* If wc == 0, the function must return 1, not -1. */
+ fprintf(f, " {\n *r = wc;\n return 1;\n }\n");
+ else
+ fprintf(f, "\n c = wc;\n");
+ } else {
+ fprintf(f, "\n c = %s_page%s[wc", c_charsetname, tables[t].suffix);
+ if (tables[t].minline > 0)
+ fprintf(f, "-0x%04x", 8*j1);
+ fprintf(f, "];\n");
+ if (j1 == 0 && uni2charset[0] == 0)
+ /* If wc == 0, the function must return 1, not -1. */
+ fix_0000 = true;
+ }
+ }
+ }
+ j1 = j2;
+ }
+ if (need_c) {
+ if (fix_0000)
+ fprintf(f, " if (c != 0 || wc == 0) {\n");
+ else
+ fprintf(f, " if (c != 0) {\n");
+ fprintf(f, " *r = c;\n");
+ fprintf(f, " return 1;\n");
+ fprintf(f, " }\n");
+ }
+ fprintf(f, " return RET_ILSEQ;\n");
+ fprintf(f, "}\n");
+
+ }
+
+ if (ferror(f) || fclose(f))
+ exit(1);
+ }
+
+#if 0
+
+ int i1, i2, i3, i1_min, i1_max, j1, j2;
+
+ i1_min = 16;
+ i1_max = -1;
+ for (i1 = 0; i1 < 16; i1++)
+ for (i2 = 0; i2 < 16; i2++)
+ if (charset2uni[16*i1+i2] != 0xfffd) {
+ if (i1_min > i1) i1_min = i1;
+ if (i1_max < i1) i1_max = i1;
+ }
+ printf("static const unsigned short %s_2uni[%d] = {\n",
+ name, 16*(i1_max-i1_min+1));
+ for (i1 = i1_min; i1 <= i1_max; i1++) {
+ printf(" /""* 0x%02x *""/\n", 16*i1);
+ for (i2 = 0; i2 < 2; i2++) {
+ printf(" ");
+ for (i3 = 0; i3 < 8; i3++) {
+ if (i3 > 0) printf(" ");
+ printf("0x%04x,", charset2uni[16*i1+8*i2+i3]);
+ }
+ printf("\n");
+ }
+ }
+ printf("};\n");
+ printf("\n");
+
+ for (p = 0; p < 0x100; p++)
+ pages[p] = 0;
+ for (i = 0; i < 0x100; i++)
+ if (charset2uni[i] != 0xfffd)
+ pages[charset2uni[i]>>8] = 1;
+ for (p = 0; p < 0x100; p++)
+ if (pages[p]) {
+ int j1_min = 32;
+ int j1_max = -1;
+ for (j1 = 0; j1 < 32; j1++)
+ for (j2 = 0; j2 < 8; j2++)
+ if (uni2charset[256*p+8*j1+j2] != 0) {
+ if (j1_min > j1) j1_min = j1;
+ if (j1_max < j1) j1_max = j1;
+ }
+ printf("static const unsigned char %s_page%02x[%d] = {\n",
+ name, p, 8*(j1_max-j1_min+1));
+ for (j1 = j1_min; j1 <= j1_max; j1++) {
+ printf(" ");
+ for (j2 = 0; j2 < 8; j2++)
+ printf("0x%02x, ", uni2charset[256*p+8*j1+j2]);
+ printf("/""* 0x%02x-0x%02x *""/\n", 8*j1, 8*j1+7);
+ }
+ printf("};\n");
+ }
+ printf("\n");
+
+}
+#endif
+
+ exit(0);
+}
diff --git a/doc/libNX_X11/lcUniConv/README b/doc/libNX_X11/lcUniConv/README
new file mode 100644
index 000000000..53f39f2f4
--- /dev/null
+++ b/doc/libNX_X11/lcUniConv/README
@@ -0,0 +1,11 @@
+
+The files in this directory are taken from the libiconv-1.1 package.
+
+The *.h files were generated from tables (mostly from ftp.unicode.org) using
+the programs '8bit_tab_to_h.c' and 'cjk_tab_to_h.c'. On some of them, further
+optimizations were applied by hand.
+
+If you find a bug in these files, instead of modifying them in XFree86
+and let it diverge from libiconv, please notify the libiconv maintainer
+(currently <bruno@clisp.org>) so he can fix both in synch.
+
diff --git a/doc/libNX_X11/lcUniConv/cjk_tab_to_h.c b/doc/libNX_X11/lcUniConv/cjk_tab_to_h.c
new file mode 100644
index 000000000..f70fe5e11
--- /dev/null
+++ b/doc/libNX_X11/lcUniConv/cjk_tab_to_h.c
@@ -0,0 +1,1071 @@
+
+/*
+ * Generates a CJK character set table from a .TXT table as found on
+ * ftp.unicode.org or in the X nls directory.
+ * Examples:
+ *
+ * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < gb2312
+ * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < jis0208
+ * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < ksc5601
+ *
+ * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < GB2312.TXT
+ * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < JIS0208.TXT
+ * ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > jisx0212.h < JIS0212.TXT
+ * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < KSC5601.TXT
+ * ./cjk_tab_to_h KSX1001.1992-0 ksc5601 > ksc5601.h < KSX1001.TXT
+ *
+ * ./cjk_tab_to_h BIG5 big5 > big5.h < BIG5.TXT
+ *
+ * ./cjk_tab_to_h JOHAB johab > johab.h < JOHAB.TXT
+ *
+ * ./cjk_tab_to_h BIG5HKSCS-0 big5hkscs >big5hkscs.h < BIG5HKSCS.TXT
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+
+typedef struct {
+ int start;
+ int end;
+} Block;
+
+typedef struct {
+ int rows; /* number of possible values for the 1st byte */
+ int cols; /* number of possible values for the 2nd byte */
+ int (*row_byte) (int row); /* returns the 1st byte value for a given row */
+ int (*col_byte) (int col); /* returns the 2nd byte value for a given col */
+ int (*byte_row) (int byte); /* converts a 1st byte value to a row, else -1 */
+ int (*byte_col) (int byte); /* converts a 2nd byte value to a col, else -1 */
+ const char* check_row_expr; /* format string for 1st byte value checking */
+ const char* check_col_expr; /* format string for 2nd byte value checking */
+ const char* byte_row_expr; /* format string for 1st byte value to row */
+ const char* byte_col_expr; /* format string for 2nd byte value to col */
+ int** charset2uni; /* charset2uni[0..rows-1][0..cols-1] is valid */
+ /* You'll understand the terms "row" and "col" when you buy Ken Lunde's book.
+ Once a row is fixed, choosing a "col" is the same as choosing a "cell". */
+ int* charsetpage; /* charsetpage[0..rows]: how large is a page for a row */
+ int ncharsetblocks;
+ Block* charsetblocks; /* blocks[0..nblocks-1] */
+ int* uni2charset; /* uni2charset[0x0000..0xffff] */
+} Encoding;
+
+/*
+ * Outputs the file title.
+ */
+static void output_title (const char *charsetname)
+{
+ printf("\n");
+ printf("/*\n");
+ printf(" * %s\n", charsetname);
+ printf(" */\n");
+ printf("\n");
+}
+
+/*
+ * Reads the charset2uni table from standard input.
+ */
+static void read_table (Encoding* enc)
+{
+ int row, col, i, i1, i2, c, j;
+
+ enc->charset2uni = malloc(enc->rows*sizeof(int*));
+ for (row = 0; row < enc->rows; row++)
+ enc->charset2uni[row] = malloc(enc->cols*sizeof(int));
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++)
+ enc->charset2uni[row][col] = 0xfffd;
+
+ c = getc(stdin);
+ ungetc(c,stdin);
+ if (c == '#') {
+ /* Read a unicode.org style .TXT file. */
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("0x%x", &j) != 1)
+ exit(1);
+ i1 = j >> 8;
+ i2 = j & 0xff;
+ row = enc->byte_row(i1);
+ col = enc->byte_col(i2);
+ if (row < 0 || col < 0) {
+ fprintf(stderr, "lost entry for %02x %02x\n", i1, i2);
+ exit(1);
+ }
+ if (scanf(" 0x%x", &enc->charset2uni[row][col]) != 1)
+ exit(1);
+ }
+ } else {
+ /* Read a table of hexadecimal Unicode values. */
+ for (i1 = 32; i1 < 132; i1++)
+ for (i2 = 32; i2 < 132; i2++) {
+ i = scanf("%x", &j);
+ if (i == EOF)
+ goto read_done;
+ if (i != 1)
+ exit(1);
+ if (j < 0 || j == 0xffff)
+ j = 0xfffd;
+ if (j != 0xfffd) {
+ if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) {
+ fprintf(stderr, "lost entry at %02x %02x\n", i1, i2);
+ exit (1);
+ }
+ enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j;
+ }
+ }
+ read_done: ;
+ }
+}
+
+/*
+ * Computes the charsetpage[0..rows] array.
+ */
+static void find_charset2uni_pages (Encoding* enc)
+{
+ int row, col;
+
+ enc->charsetpage = malloc((enc->rows+1)*sizeof(int));
+
+ for (row = 0; row <= enc->rows; row++)
+ enc->charsetpage[row] = 0;
+
+ for (row = 0; row < enc->rows; row++) {
+ int used = 0;
+ for (col = 0; col < enc->cols; col++)
+ if (enc->charset2uni[row][col] != 0xfffd)
+ used = col+1;
+ enc->charsetpage[row] = used;
+ }
+}
+
+/*
+ * Fills in nblocks and blocks.
+ */
+static void find_charset2uni_blocks (Encoding* enc)
+{
+ int n, row, lastrow;
+
+ enc->charsetblocks = malloc(enc->rows*sizeof(Block));
+
+ n = 0;
+ for (row = 0; row < enc->rows; row++)
+ if (enc->charsetpage[row] > 0 && (row == 0 || enc->charsetpage[row-1] == 0)) {
+ for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++);
+ enc->charsetblocks[n].start = row * enc->cols;
+ enc->charsetblocks[n].end = lastrow * enc->cols + enc->charsetpage[lastrow];
+ n++;
+ }
+ enc->ncharsetblocks = n;
+}
+
+/*
+ * Outputs the charset to unicode table and function.
+ */
+static void output_charset2uni (const char* name, Encoding* enc)
+{
+ int row, col, lastrow, col_max, i, i1_min, i1_max;
+
+ find_charset2uni_pages(enc);
+
+ find_charset2uni_blocks(enc);
+
+ for (row = 0; row < enc->rows; row++)
+ if (enc->charsetpage[row] > 0) {
+ if (row == 0 || enc->charsetpage[row-1] == 0) {
+ /* Start a new block. */
+ for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++);
+ printf("static const unsigned short %s_2uni_page%02x[%d] = {\n",
+ name, enc->row_byte(row),
+ (lastrow-row) * enc->cols + enc->charsetpage[lastrow]);
+ }
+ printf(" /""* 0x%02x *""/\n ", enc->row_byte(row));
+ col_max = (enc->charsetpage[row+1] > 0 ? enc->cols : enc->charsetpage[row]);
+ for (col = 0; col < col_max; col++) {
+ printf(" 0x%04x,", enc->charset2uni[row][col]);
+ if ((col % 8) == 7 && (col+1 < col_max)) printf("\n ");
+ }
+ printf("\n");
+ if (enc->charsetpage[row+1] == 0) {
+ /* End a block. */
+ printf("};\n");
+ }
+ }
+ printf("\n");
+
+ printf("static int\n");
+ printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", name);
+ printf("{\n");
+ printf(" unsigned char c1 = s[0];\n");
+ printf(" if (");
+ for (i = 0; i < enc->ncharsetblocks; i++) {
+ i1_min = enc->row_byte(enc->charsetblocks[i].start / enc->cols);
+ i1_max = enc->row_byte((enc->charsetblocks[i].end-1) / enc->cols);
+ if (i > 0)
+ printf(" || ");
+ if (i1_min == i1_max)
+ printf("(c1 == 0x%02x)", i1_min);
+ else
+ printf("(c1 >= 0x%02x && c1 <= 0x%02x)", i1_min, i1_max);
+ }
+ printf(") {\n");
+ printf(" if (n >= 2) {\n");
+ printf(" unsigned char c2 = s[1];\n");
+ printf(" if (");
+ printf(enc->check_col_expr, "c2");
+ printf(") {\n");
+ printf(" unsigned int i = %d * (", enc->cols);
+ printf(enc->byte_row_expr, "c1");
+ printf(") + (");
+ printf(enc->byte_col_expr, "c2");
+ printf(");\n");
+ printf(" unsigned short wc = 0xfffd;\n");
+ for (i = 0; i < enc->ncharsetblocks; i++) {
+ printf(" ");
+ if (i > 0)
+ printf("} else ");
+ if (i < enc->ncharsetblocks-1)
+ printf("if (i < %d) ", enc->charsetblocks[i+1].start);
+ printf("{\n");
+ printf(" if (i < %d)\n", enc->charsetblocks[i].end);
+ printf(" wc = %s_2uni_page%02x[i", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols));
+ if (enc->charsetblocks[i].start > 0)
+ printf("-%d", enc->charsetblocks[i].start);
+ printf("];\n");
+ }
+ printf(" }\n");
+ printf(" if (wc != 0xfffd) {\n");
+ printf(" *pwc = (ucs4_t) wc;\n");
+ printf(" return 2;\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOFEW(0);\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf("}\n");
+ printf("\n");
+}
+
+/*
+ * Computes the uni2charset[0x0000..0xffff] array.
+ */
+static void invert (Encoding* enc)
+{
+ int row, col, j;
+
+ enc->uni2charset = malloc(0x10000*sizeof(int));
+
+ for (j = 0; j < 0x10000; j++)
+ enc->uni2charset[j] = 0;
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++) {
+ j = enc->charset2uni[row][col];
+ if (j != 0xfffd)
+ enc->uni2charset[j] = 0x100 * enc->row_byte(row) + enc->col_byte(col);
+ }
+}
+
+/*
+ * Outputs the unicode to charset table and function, using a linear array.
+ * (Suitable if the table is dense.)
+ */
+static void output_uni2charset_dense (const char* name, Encoding* enc)
+{
+ /* Like in 8bit_tab_to_h.c */
+ bool pages[0x100];
+ int line[0x2000];
+ int tableno;
+ struct { int minline; int maxline; int usecount; } tables[0x2000];
+ bool first;
+ int row, col, j, p, j1, j2, t;
+
+ for (p = 0; p < 0x100; p++)
+ pages[p] = false;
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++) {
+ j = enc->charset2uni[row][col];
+ if (j != 0xfffd)
+ pages[j>>8] = true;
+ }
+ for (j1 = 0; j1 < 0x2000; j1++) {
+ bool all_invalid = true;
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ if (enc->uni2charset[j] != 0)
+ all_invalid = false;
+ }
+ if (all_invalid)
+ line[j1] = -1;
+ else
+ line[j1] = 0;
+ }
+ tableno = 0;
+ for (j1 = 0; j1 < 0x2000; j1++) {
+ if (line[j1] >= 0) {
+ if (tableno > 0
+ && ((j1 > 0 && line[j1-1] == tableno-1)
+ || ((tables[tableno-1].maxline >> 5) == (j1 >> 5)
+ && j1 - tables[tableno-1].maxline <= 8))) {
+ line[j1] = tableno-1;
+ tables[tableno-1].maxline = j1;
+ } else {
+ tableno++;
+ line[j1] = tableno-1;
+ tables[tableno-1].minline = tables[tableno-1].maxline = j1;
+ }
+ }
+ }
+ for (t = 0; t < tableno; t++) {
+ tables[t].usecount = 0;
+ j1 = 8*tables[t].minline;
+ j2 = 8*(tables[t].maxline+1);
+ for (j = j1; j < j2; j++)
+ if (enc->uni2charset[j] != 0)
+ tables[t].usecount++;
+ }
+ {
+ p = -1;
+ for (t = 0; t < tableno; t++)
+ if (tables[t].usecount > 1) {
+ p = tables[t].minline >> 5;
+ printf("static const unsigned short %s_page%02x[%d] = {\n", name, p, 8*(tables[t].maxline-tables[t].minline+1));
+ for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) {
+ if ((j1 % 0x20) == 0 && j1 > tables[t].minline)
+ printf(" /* 0x%04x */\n", 8*j1);
+ printf(" ");
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ printf(" 0x%04x,", enc->uni2charset[j]);
+ }
+ printf(" /*0x%02x-0x%02x*/\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7);
+ }
+ printf("};\n");
+ }
+ if (p >= 0)
+ printf("\n");
+ }
+ printf("static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name);
+ printf("{\n");
+ printf(" if (n >= 2) {\n");
+ printf(" unsigned short c = 0;\n");
+ first = true;
+ for (j1 = 0; j1 < 0x2000;) {
+ t = line[j1];
+ for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++);
+ if (t >= 0) {
+ if (j1 != tables[t].minline) abort();
+ if (j2 > tables[t].maxline+1) abort();
+ j2 = tables[t].maxline+1;
+ if (first)
+ printf(" ");
+ else
+ printf(" else ");
+ first = false;
+ if (tables[t].usecount == 0) abort();
+ if (tables[t].usecount == 1) {
+ if (j2 != j1+1) abort();
+ for (j = 8*j1; j < 8*j2; j++)
+ if (enc->uni2charset[j] != 0) {
+ printf("if (wc == 0x%04x)\n c = 0x%02x;\n", j, enc->uni2charset[j]);
+ break;
+ }
+ } else {
+ if (j1 == 0) {
+ printf("if (wc < 0x%04x)", 8*j2);
+ } else {
+ printf("if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2);
+ }
+ printf("\n c = %s_page%02x[wc", name, j1 >> 5);
+ if (tables[t].minline > 0)
+ printf("-0x%04x", 8*j1);
+ printf("];\n");
+ }
+ }
+ j1 = j2;
+ }
+ printf(" if (c != 0) {\n");
+ printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n");
+ printf(" return 2;\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOSMALL;\n");
+ printf("}\n");
+}
+
+/*
+ * Outputs the unicode to charset table and function, using a packed array.
+ * (Suitable if the table is sparse.)
+ */
+static void output_uni2charset_sparse (const char* name, Encoding* enc)
+{
+ bool pages[0x100];
+ Block pageblocks[0x100]; int npageblocks;
+ int indx2charset[0x10000];
+ int summary_indx[0x1000];
+ int summary_used[0x1000];
+ int i, row, col, j, p, j1, j2, indx;
+
+ /* Fill pages[0x100]. */
+ for (p = 0; p < 0x100; p++)
+ pages[p] = false;
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++) {
+ j = enc->charset2uni[row][col];
+ if (j != 0xfffd)
+ pages[j>>8] = true;
+ }
+
+#if 0
+ for (p = 0; p < 0x100; p++)
+ if (pages[p]) {
+ printf("static const unsigned short %s_page%02x[256] = {\n", name, p);
+ for (j1 = 0; j1 < 32; j1++) {
+ printf(" ");
+ for (j2 = 0; j2 < 8; j2++)
+ printf("0x%04x, ", enc->uni2charset[256*p+8*j1+j2]);
+ printf("/""*0x%02x-0x%02x*""/\n", 8*j1, 8*j1+7);
+ }
+ printf("};\n");
+ }
+ printf("\n");
+#endif
+
+ /* Fill summary_indx[] and summary_used[]. */
+ indx = 0;
+ for (j1 = 0; j1 < 0x1000; j1++) {
+ summary_indx[j1] = indx;
+ summary_used[j1] = 0;
+ for (j2 = 0; j2 < 16; j2++) {
+ j = 16*j1+j2;
+ if (enc->uni2charset[j] != 0) {
+ indx2charset[indx++] = enc->uni2charset[j];
+ summary_used[j1] |= (1 << j2);
+ }
+ }
+ }
+
+ /* Fill npageblocks and pageblocks[]. */
+ npageblocks = 0;
+ for (p = 0; p < 0x100; ) {
+ if (pages[p] && (p == 0 || !pages[p-1])) {
+ pageblocks[npageblocks].start = 16*p;
+ do p++; while (p < 0x100 && pages[p]);
+ j1 = 16*p;
+ while (summary_used[j1-1] == 0) j1--;
+ pageblocks[npageblocks].end = j1;
+ npageblocks++;
+ } else
+ p++;
+ }
+
+ printf("static const unsigned short %s_2charset[%d] = {\n", name, indx);
+ for (i = 0; i < indx; ) {
+ if ((i % 8) == 0) printf(" ");
+ printf(" 0x%04x,", indx2charset[i]);
+ i++;
+ if ((i % 8) == 0 || i == indx) printf("\n");
+ }
+ printf("};\n");
+ printf("\n");
+ for (i = 0; i < npageblocks; i++) {
+ printf("static const Summary16 %s_uni2indx_page%02x[%d] = {\n", name,
+ pageblocks[i].start/16, pageblocks[i].end-pageblocks[i].start);
+ for (j1 = pageblocks[i].start; j1 < pageblocks[i].end; ) {
+ if (((16*j1) % 0x100) == 0) printf(" /""* 0x%04x *""/\n", 16*j1);
+ if ((j1 % 4) == 0) printf(" ");
+ printf(" { %4d, 0x%04x },", summary_indx[j1], summary_used[j1]);
+ j1++;
+ if ((j1 % 4) == 0 || j1 == pageblocks[i].end) printf("\n");
+ }
+ printf("};\n");
+ }
+ printf("\n");
+
+ printf("static int\n");
+ printf("%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name);
+ printf("{\n");
+ printf(" if (n >= 2) {\n");
+ printf(" const Summary16 *summary = NULL;\n");
+ for (i = 0; i < npageblocks; i++) {
+ printf(" ");
+ if (i > 0)
+ printf("else ");
+ printf("if (wc >= 0x%04x && wc < 0x%04x)\n",
+ 16*pageblocks[i].start, 16*pageblocks[i].end);
+ printf(" summary = &%s_uni2indx_page%02x[(wc>>4)", name,
+ pageblocks[i].start/16);
+ if (pageblocks[i].start > 0)
+ printf("-0x%03x", pageblocks[i].start);
+ printf("];\n");
+ }
+ printf(" if (summary) {\n");
+ printf(" unsigned short used = summary->used;\n");
+ printf(" unsigned int i = wc & 0x0f;\n");
+ printf(" if (used & ((unsigned short) 1 << i)) {\n");
+ printf(" unsigned short c;\n");
+ printf(" /* Keep in `used' only the bits 0..i-1. */\n");
+ printf(" used &= ((unsigned short) 1 << i) - 1;\n");
+ printf(" /* Add `summary->indx' and the number of bits set in `used'. */\n");
+ printf(" used = (used & 0x5555) + ((used & 0xaaaa) >> 1);\n");
+ printf(" used = (used & 0x3333) + ((used & 0xcccc) >> 2);\n");
+ printf(" used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);\n");
+ printf(" used = (used & 0x00ff) + (used >> 8);\n");
+ printf(" c = %s_2charset[summary->indx + used];\n", name);
+ printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n");
+ printf(" return 2;\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOSMALL;\n");
+ printf("}\n");
+}
+
+/* ISO-2022/EUC specifics */
+
+static int row_byte_normal (int row) { return 0x21+row; }
+static int col_byte_normal (int col) { return 0x21+col; }
+static int byte_row_normal (int byte) { return byte-0x21; }
+static int byte_col_normal (int byte) { return byte-0x21; }
+
+static void do_normal (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_normal;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_normal;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc);
+}
+
+/* Note: On first sight, the jisx0212_2charset[] table seems to be in order,
+ starting from the charset=0x3021/uni=0x4e02 pair. But it's only mostly in
+ order. There are 75 out-of-order values, scattered all throughout the table.
+ */
+
+static void do_normal_only_charset2uni (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_normal;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_normal;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+}
+
+/* CNS 11643 specifics - trick to put two tables into one */
+
+static int row_byte_cns11643 (int row) {
+ return 0x100 * (row / 94) + (row % 94) + 0x21;
+}
+static int byte_row_cns11643 (int byte) {
+ return (byte >= 0x100 && byte < 0x200 ? byte-0x121 :
+ byte >= 0x200 && byte < 0x300 ? byte-0x221+94 :
+ byte >= 0x300 && byte < 0x400 ? byte-0x321+2*94 :
+ -1);
+}
+
+static void do_cns11643_only_uni2charset (const char* name)
+{
+ Encoding enc;
+ int j, x;
+
+ enc.rows = 3*94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_cns11643;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_cns11643;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table(&enc);
+ invert(&enc);
+ /* Move the 2 plane bits into the unused bits 15 and 7. */
+ for (j = 0; j < 0x10000; j++) {
+ x = enc.uni2charset[j];
+ if (x != 0) {
+ if (x & 0x8080) abort();
+ switch (x >> 16) {
+ case 0: /* plane 1 */ x = (x & 0xffff) | 0x0000; break;
+ case 1: /* plane 2 */ x = (x & 0xffff) | 0x0080; break;
+ case 2: /* plane 3 */ x = (x & 0xffff) | 0x8000; break;
+ default: abort();
+ }
+ enc.uni2charset[j] = x;
+ }
+ }
+ output_uni2charset_sparse(name,&enc);
+}
+
+/* GBK specifics */
+
+static int row_byte_gbk1 (int row) {
+ return 0x81+row;
+}
+static int col_byte_gbk1 (int col) {
+ return (col >= 0x3f ? 0x41 : 0x40) + col;
+}
+static int byte_row_gbk1 (int byte) {
+ if (byte >= 0x81 && byte < 0xff)
+ return byte-0x81;
+ else
+ return -1;
+}
+static int byte_col_gbk1 (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0x80 && byte < 0xff)
+ return byte-0x41;
+ else
+ return -1;
+}
+
+static void do_gbk1 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 190;
+ enc.row_byte = row_byte_gbk1;
+ enc.col_byte = col_byte_gbk1;
+ enc.byte_row = byte_row_gbk1;
+ enc.byte_col = byte_col_gbk1;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_dense(name,&enc);
+}
+
+static void do_gbk1_only_charset2uni (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 190;
+ enc.row_byte = row_byte_gbk1;
+ enc.col_byte = col_byte_gbk1;
+ enc.byte_row = byte_row_gbk1;
+ enc.byte_col = byte_col_gbk1;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+}
+
+static int row_byte_gbk2 (int row) {
+ return 0x81+row;
+}
+static int col_byte_gbk2 (int col) {
+ return (col >= 0x3f ? 0x41 : 0x40) + col;
+}
+static int byte_row_gbk2 (int byte) {
+ if (byte >= 0x81 && byte < 0xff)
+ return byte-0x81;
+ else
+ return -1;
+}
+static int byte_col_gbk2 (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0x80 && byte < 0xa1)
+ return byte-0x41;
+ else
+ return -1;
+}
+
+static void do_gbk2_only_charset2uni (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 96;
+ enc.row_byte = row_byte_gbk2;
+ enc.col_byte = col_byte_gbk2;
+ enc.byte_row = byte_row_gbk2;
+ enc.byte_col = byte_col_gbk2;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xa1)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+}
+
+static void do_gbk1_only_uni2charset (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 190;
+ enc.row_byte = row_byte_gbk1;
+ enc.col_byte = col_byte_gbk1;
+ enc.byte_row = byte_row_gbk1;
+ enc.byte_col = byte_col_gbk1;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc);
+}
+
+/* KSC 5601 specifics */
+
+/*
+ * Reads the charset2uni table from standard input.
+ */
+static void read_table_ksc5601 (Encoding* enc)
+{
+ int row, col, i, i1, i2, c, j;
+
+ enc->charset2uni = malloc(enc->rows*sizeof(int*));
+ for (row = 0; row < enc->rows; row++)
+ enc->charset2uni[row] = malloc(enc->cols*sizeof(int));
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++)
+ enc->charset2uni[row][col] = 0xfffd;
+
+ c = getc(stdin);
+ ungetc(c,stdin);
+ if (c == '#') {
+ /* Read a unicode.org style .TXT file. */
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("0x%x", &j) != 1)
+ exit(1);
+ i1 = j >> 8;
+ i2 = j & 0xff;
+ if (scanf(" 0x%x", &j) != 1)
+ exit(1);
+ /* Take only the range covered by KS C 5601.1987-0 = KS C 5601.1989-0
+ = KS X 1001.1992, ignore the rest. */
+ if (!(i1 >= 128+33 && i1 < 128+127 && i2 >= 128+33 && i2 < 128+127))
+ continue; /* KSC5601 specific */
+ i1 &= 0x7f; /* KSC5601 specific */
+ i2 &= 0x7f; /* KSC5601 specific */
+ row = enc->byte_row(i1);
+ col = enc->byte_col(i2);
+ if (row < 0 || col < 0) {
+ fprintf(stderr, "lost entry for %02x %02x\n", i1, i2);
+ exit(1);
+ }
+ enc->charset2uni[row][col] = j;
+ }
+ } else {
+ /* Read a table of hexadecimal Unicode values. */
+ for (i1 = 33; i1 < 127; i1++)
+ for (i2 = 33; i2 < 127; i2++) {
+ i = scanf("%x", &j);
+ if (i == EOF)
+ goto read_done;
+ if (i != 1)
+ exit(1);
+ if (j < 0 || j == 0xffff)
+ j = 0xfffd;
+ if (j != 0xfffd) {
+ if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) {
+ fprintf(stderr, "lost entry at %02x %02x\n", i1, i2);
+ exit (1);
+ }
+ enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j;
+ }
+ }
+ read_done: ;
+ }
+}
+
+static void do_ksc5601 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_normal;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_normal;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table_ksc5601(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc);
+}
+
+/* Big5 specifics */
+
+static int row_byte_big5 (int row) {
+ return 0xa1+row;
+}
+static int col_byte_big5 (int col) {
+ return (col >= 0x3f ? 0x62 : 0x40) + col;
+}
+static int byte_row_big5 (int byte) {
+ if (byte >= 0xa1 && byte < 0xff)
+ return byte-0xa1;
+ else
+ return -1;
+}
+static int byte_col_big5 (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0xa1 && byte < 0xff)
+ return byte-0x62;
+ else
+ return -1;
+}
+
+static void do_big5 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 157;
+ enc.row_byte = row_byte_big5;
+ enc.col_byte = col_byte_big5;
+ enc.byte_row = byte_row_big5;
+ enc.byte_col = byte_col_big5;
+ enc.check_row_expr = "%1$s >= 0xa1 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0xa1";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc);
+}
+
+/* Big5-HKSCS specifics */
+
+static int row_byte_big5hkscs (int row) {
+ return 0x81+row;
+}
+static int col_byte_big5hkscs (int col) {
+ return (col >= 0x3f ? 0x62 : 0x40) + col;
+}
+static int byte_row_big5hkscs (int byte) {
+ if (byte >= 0x81 && byte < 0xff)
+ return byte-0x81;
+ else
+ return -1;
+}
+static int byte_col_big5hkscs (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0xa1 && byte < 0xff)
+ return byte-0x62;
+ else
+ return -1;
+}
+
+static void do_big5hkscs (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 157;
+ enc.row_byte = row_byte_big5hkscs;
+ enc.col_byte = col_byte_big5hkscs;
+ enc.byte_row = byte_row_big5hkscs;
+ enc.byte_col = byte_col_big5hkscs;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc);
+}
+
+/* Johab Hangul specifics */
+
+static int row_byte_johab_hangul (int row) {
+ return 0x84+row;
+}
+static int col_byte_johab_hangul (int col) {
+ return (col >= 0x3e ? 0x43 : 0x41) + col;
+}
+static int byte_row_johab_hangul (int byte) {
+ if (byte >= 0x84 && byte < 0xd4)
+ return byte-0x84;
+ else
+ return -1;
+}
+static int byte_col_johab_hangul (int byte) {
+ if (byte >= 0x41 && byte < 0x7f)
+ return byte-0x41;
+ else if (byte >= 0x81 && byte < 0xff)
+ return byte-0x43;
+ else
+ return -1;
+}
+
+static void do_johab_hangul (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 80;
+ enc.cols = 188;
+ enc.row_byte = row_byte_johab_hangul;
+ enc.col_byte = col_byte_johab_hangul;
+ enc.byte_row = byte_row_johab_hangul;
+ enc.byte_col = byte_col_johab_hangul;
+ enc.check_row_expr = "%1$s >= 0x84 && %1$s < 0xd4";
+ enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x7f) || (%1$s >= 0x81 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x84";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x43 : 0x41)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_dense(name,&enc);
+}
+
+/* SJIS specifics */
+
+static int row_byte_sjis (int row) {
+ return (row >= 0x1f ? 0xc1 : 0x81) + row;
+}
+static int col_byte_sjis (int col) {
+ return (col >= 0x3f ? 0x41 : 0x40) + col;
+}
+static int byte_row_sjis (int byte) {
+ if (byte >= 0x81 && byte < 0xa0)
+ return byte-0x81;
+ else if (byte >= 0xe0)
+ return byte-0xc1;
+ else
+ return -1;
+}
+static int byte_col_sjis (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0x80 && byte < 0xfd)
+ return byte-0x41;
+ else
+ return -1;
+}
+
+static void do_sjis (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 188;
+ enc.row_byte = row_byte_sjis;
+ enc.col_byte = col_byte_sjis;
+ enc.byte_row = byte_row_sjis;
+ enc.byte_col = byte_col_sjis;
+ enc.check_row_expr = "(%1$s >= 0x81 && %1$s < 0xa0) || (%1$s >= 0xe0)";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xfd)";
+ enc.byte_row_expr = "%1$s - (%1$s >= 0xe0 ? 0xc1 : 0x81)";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc);
+}
+
+/* Main program */
+
+int main (int argc, char *argv[])
+{
+ const char* charsetname;
+ const char* name;
+
+ if (argc != 3)
+ exit(1);
+ charsetname = argv[1];
+ name = argv[2];
+
+ output_title(charsetname);
+
+ if (!strcmp(name,"gb2312") || !strcmp(name,"gb12345ext")
+ || !strcmp(name,"jisx0208") || !strcmp(name,"jisx0212"))
+ do_normal(name);
+ else if (!strcmp(name,"cns11643_1") || !strcmp(name,"cns11643_2")
+ || !strcmp(name,"cns11643_3"))
+ do_normal_only_charset2uni(name);
+ else if (!strcmp(name,"cns11643_inv"))
+ do_cns11643_only_uni2charset(name);
+ else if (!strcmp(name,"gbkext1"))
+ do_gbk1_only_charset2uni(name);
+ else if (!strcmp(name,"gbkext2"))
+ do_gbk2_only_charset2uni(name);
+ else if (!strcmp(name,"gbkext_inv"))
+ do_gbk1_only_uni2charset(name);
+ else if (!strcmp(name,"cp936ext"))
+ do_gbk1(name);
+ else if (!strcmp(name,"ksc5601"))
+ do_ksc5601(name);
+ else if (!strcmp(name,"big5") || !strcmp(name,"cp950ext"))
+ do_big5(name);
+ else if (!strcmp(name,"big5hkscs"))
+ do_big5hkscs(name);
+ else if (!strcmp(name,"johab_hangul"))
+ do_johab_hangul(name);
+ else if (!strcmp(name,"cp932ext"))
+ do_sjis(name);
+ else
+ exit(1);
+
+ return 0;
+}
diff --git a/doc/libNX_X11/symbols/libNX_X11::symbol-usage_internally.txt b/doc/libNX_X11/symbols/libNX_X11::symbol-usage_internally.txt
new file mode 100644
index 000000000..18102f533
--- /dev/null
+++ b/doc/libNX_X11/symbols/libNX_X11::symbol-usage_internally.txt
@@ -0,0 +1,9413 @@
+
+#### KeySymToUcs4 ####
+imConv.c:122: ucs4 = KeySymToUcs4(keysym);
+imConv.c:197: ucs4 = (ucs4_t) KeySymToUcs4(symbol);
+imConv.c:266: ucs4 = (ucs4_t) KeySymToUcs4(symbol);
+imConv.c:338: ucs4 = (ucs4_t) KeySymToUcs4(symbol);
+imKStoUCS.c:272:KeySymToUcs4(KeySym keysym)
+imLcPrs.c:418: ucs = KeySymToUcs4(ks);
+Ximint.h:195:unsigned int KeySymToUcs4 (
+
+#### XActivateScreenSaver ####
+FSSaver.c:33:XActivateScreenSaver(register Display *dpy)
+Xlib.h:1934:extern int XActivateScreenSaver(
+
+#### XAddConnectionWatch ####
+XlibInt.c:2448: * fd with Xlib. Any XConnectionWatchProc registered by XAddConnectionWatch
+XlibInt.c:2458: * a XConnectionWatchProc with XAddConnectionWatch
+XlibInt.c:2512: * Any XConnectionWatchProc registered by XAddConnectionWatch
+XlibInt.c:2550: * Typically a XConnectionWatchProc registered with XAddConnectionWatch
+XlibInt.c:2643:/* XAddConnectionWatch
+XlibInt.c:2651:XAddConnectionWatch(
+XlibInt.c:2662: fprintf(stderr, "XAddConnectionWatch: Got called.\n");
+XlibInt.c:2704: * Unregister a callback registered by XAddConnectionWatch.
+XlibInt.c:2706: * XAddConnectionWatch.
+Xlib.h:3991:extern Status XAddConnectionWatch(
+Xlibint.h:209: struct _XConnWatchInfo *conn_watchers; /* XAddConnectionWatch */
+Xlibint.h:1246:struct _XConnWatchInfo { /* info from XAddConnectionWatch */
+
+#### XAddExtension ####
+InitExt.c:69:XExtCodes *XAddExtension (Display *dpy)
+Xlib.h:1754:extern XExtCodes *XAddExtension(
+
+#### XAddHost ####
+Host.c:105:XAddHost (
+Host.c:121:XAddHosts (
+Host.c:128: (void) XAddHost(dpy, &hosts[i]);
+Xlib.h:1938:extern int XAddHost(
+Xlib.h:1943:extern int XAddHosts(
+
+#### XAddHosts ####
+Host.c:121:XAddHosts (
+Xlib.h:1943:extern int XAddHosts(
+
+#### XAddPixel ####
+ImUtil.c:47:static int _XAddPixel(XImage *, long);
+ImUtil.c:110: * _XAddPixel Adds a constant value to every pixel in an image
+ImUtil.c:297: image->f.add_pixel = _XAddPixel;
+ImUtil.c:963:_XAddPixel (
+Macros.c:283:#undef XAddPixel
+Macros.c:284:int XAddPixel(
+Xutil.h:209:extern int XAddPixel(
+Xutil.h:225:#define XAddPixel(ximage, value) \
+
+#### XAddToExtensionList ####
+Font.c:348: XAddToExtensionList(XEHeadOfExtensionList(dpy_union), pData);
+Font.c:609: XAddToExtensionList(XEHeadOfExtensionList(fs_union), pData);
+InitExt.c:104:XAddToExtensionList(
+Xlib.h:1949:extern int XAddToExtensionList(
+
+#### XAddToSaveSet ####
+ChSaveSet.c:50:XAddToSaveSet(
+Xlib.h:1954:extern int XAddToSaveSet(
+
+#### XAllPlanes ####
+Macros.c:77:unsigned long XAllPlanes(void) { return AllPlanes; }
+Xlib.h:1798:extern unsigned long XAllPlanes(
+
+#### XAllocClassHint ####
+PropAlloc.c:58:XClassHint *XAllocClassHint (void)
+Xutil.h:367:extern XClassHint *XAllocClassHint (
+
+#### XAllocColor ####
+AllCells.c:32:Status XAllocColorCells(
+AllPlanes.c:32:Status XAllocColorPlanes(
+cmsAllCol.c:59: * values then use it in a call to XAllocColor.
+cmsAllCol.c:72: return(_XcmsSetGetColor(XAllocColor, dpy, colormap, pXcmsColor_in_out,
+cmsAllNCol.c:63: * RGB value is then used in a call to XAllocColor to allocate
+cmsAllNCol.c:118: * 3. Convert to XColor and call XAllocColor
+cmsAllNCol.c:121: if (XAllocColor(ccc->dpy, cmap, &XColor_in_out) == 0) {
+GetColor.c:64: ret = XAllocColor(dpy, cmap, hard_def);
+GetHColor.c:32:Status XAllocColor(
+SetGetCols.c:106: if ( !((*xColorProc == XAllocColor) || (*xColorProc == XStoreColor)
+SetGetCols.c:136: if (*xColorProc == XAllocColor) {
+Xlib.h:1959:extern Status XAllocColor(
+Xlib.h:1965:extern Status XAllocColorCells(
+Xlib.h:1975:extern Status XAllocColorPlanes(
+
+#### XAllocColorCells ####
+AllCells.c:32:Status XAllocColorCells(
+Xlib.h:1965:extern Status XAllocColorCells(
+
+#### XAllocColorPlanes ####
+AllPlanes.c:32:Status XAllocColorPlanes(
+Xlib.h:1975:extern Status XAllocColorPlanes(
+
+#### XAllocIconSize ####
+PropAlloc.c:64:XIconSize *XAllocIconSize (void)
+Xutil.h:371:extern XIconSize *XAllocIconSize (
+
+#### XAllocNamedColor ####
+GetColor.c:35:XAllocNamedColor(
+Xcmsint.h:73: * XAllocNamedColor()
+Xlib.h:1989:extern Status XAllocNamedColor(
+
+#### XAllocSizeHints ####
+PropAlloc.c:40:XSizeHints *XAllocSizeHints (void)
+Xutil.h:375:extern XSizeHints *XAllocSizeHints (
+
+#### XAllocStandardColormap ####
+PropAlloc.c:46:XStandardColormap *XAllocStandardColormap (void)
+Xutil.h:379:extern XStandardColormap *XAllocStandardColormap (
+
+#### XAllocWMHints ####
+PropAlloc.c:52:XWMHints *XAllocWMHints (void)
+Xutil.h:383:extern XWMHints *XAllocWMHints (
+
+#### XAllowEvents ####
+AllowEv.c:33:XAllowEvents(
+Xlib.h:1997:extern int XAllowEvents(
+
+#### XAutoRepeatOff ####
+AutoRep.c:42:XAutoRepeatOff (register Display *dpy)
+Xlib.h:2003:extern int XAutoRepeatOff(
+
+#### XAutoRepeatOn ####
+AutoRep.c:33:XAutoRepeatOn (register Display *dpy)
+Xlib.h:2007:extern int XAutoRepeatOn(
+
+#### XBaseFontNameListOfFontSet ####
+FSWrap.c:219:XBaseFontNameListOfFontSet(XFontSet font_set)
+Xlib.h:3650:extern char *XBaseFontNameListOfFontSet(
+
+#### XBell ####
+Bell.c:33:XBell(
+imThaiFlt.c:1084: XBell(event->display, BellVolume);
+imThaiFlt.c:1403: XBell(ev->xkey.display, BellVolume);
+XKBBell.c:150: XBell(dpy, percent);
+XKBBell.c:162: XBell(dpy, percent);
+Xlib.h:2011:extern int XBell(
+
+#### XBitmapBitOrder ####
+Macros.c:135:int XBitmapBitOrder(Display *dpy) { return (BitmapBitOrder(dpy)); }
+Xlib.h:2016:extern int XBitmapBitOrder(
+
+#### XBitmapPad ####
+Macros.c:137:int XBitmapPad(Display *dpy) { return (BitmapPad(dpy)); }
+Xlib.h:2020:extern int XBitmapPad(
+
+#### XBitmapUnit ####
+Macros.c:133:int XBitmapUnit(Display *dpy) { return (BitmapUnit(dpy)); }
+Xlib.h:2024:extern int XBitmapUnit(
+
+#### XBlackPixel ####
+Macros.c:67:unsigned long XBlackPixel(Display *dpy, int scr)
+Macros.c:184:unsigned long XBlackPixelOfScreen(Screen *s)
+Xlib.h:1790:extern unsigned long XBlackPixel(
+Xlib.h:1801:extern unsigned long XBlackPixelOfScreen(
+
+#### XBlackPixelOfScreen ####
+Macros.c:184:unsigned long XBlackPixelOfScreen(Screen *s)
+Xlib.h:1801:extern unsigned long XBlackPixelOfScreen(
+
+#### XCellsOfScreen ####
+Macros.c:224:int XCellsOfScreen(Screen *s) { return (CellsOfScreen(s)); }
+Xlib.h:2028:extern int XCellsOfScreen(
+
+#### XChangeActivePointerGrab ####
+ChActPGb.c:33:XChangeActivePointerGrab(
+Xlib.h:2032:extern int XChangeActivePointerGrab(
+
+#### XChangeGC ####
+ChGC.c:34:XChangeGC (
+omImText.c:59: XChangeGC(dpy, gc, SET_VALUE_MASK, &values);
+Xlib.h:2039:extern int XChangeGC(
+
+#### XChangeKeyboardControl ####
+AutoRep.c:37: XChangeKeyboardControl (dpy, KBAutoRepeatMode, &values);
+AutoRep.c:46: XChangeKeyboardControl (dpy, KBAutoRepeatMode, &values);
+ChKeyCon.c:33:XChangeKeyboardControl(
+imThaiFlt.c:1176: XChangeKeyboardControl (dpy, KBLed | KBLedMode, &led_control);
+Xlib.h:443:/* Data structure for XChangeKeyboardControl */
+Xlib.h:2046:extern int XChangeKeyboardControl(
+
+#### XChangeKeyboardMapping ####
+SetPntMap.c:55:XChangeKeyboardMapping (
+Xlib.h:2052:extern int XChangeKeyboardMapping(
+
+#### XChangePointerControl ####
+ChPntCon.c:33:XChangePointerControl(
+Xlib.h:2060:extern int XChangePointerControl(
+
+#### XChangeProperty ####
+ChProp.c:33:XChangeProperty (
+imTrX.c:287: XChangeProperty(im->core.display, spec->ims_connect_wid,
+imTrX.c:387: XChangeProperty(im->core.display, spec->lib_connect_wid, prop,
+imTrX.c:410: XChangeProperty(im->core.display, spec->lib_connect_wid, prop,
+imTrX.c:435: XChangeProperty(im->core.display, spec->lib_connect_wid, prop,
+SetHints.c:96: return XChangeProperty (dpy, w, property, XA_WM_SIZE_HINTS, 32,
+SetHints.c:131: return XChangeProperty (dpy, w, XA_WM_HINTS, XA_WM_HINTS, 32,
+SetHints.c:171: * when examining a protocol structure. This is because the XChangeProperty
+SetHints.c:198: XChangeProperty (dpy, w, XA_WM_ICON_SIZE, XA_WM_ICON_SIZE, 32,
+SetHints.c:229: XChangeProperty (dpy, w, XA_WM_COMMAND, XA_STRING, 8,
+SetHints.c:261: XChangeProperty (dpy, w, XA_WM_ICON_NAME, XA_STRING, 8,
+SetHints.c:286: return XChangeProperty(dpy, w, XA_WM_TRANSIENT_FOR, XA_WINDOW, 32,
+SetHints.c:313: XChangeProperty(dpy, w, XA_WM_CLASS, XA_STRING, 8,
+SetNrmHint.c:114: XChangeProperty (dpy, w, prop, XA_WM_SIZE_HINTS, 32,
+SetRGBCMap.c:87: XChangeProperty (dpy, w, property, XA_RGB_COLOR_MAP, 32, mode,
+SetRGBCMap.c:95: XChangeProperty (dpy, w, property, XA_RGB_COLOR_MAP, 32,
+SetTxtProp.c:66: XChangeProperty (dpy, w, property, tp->encoding, tp->format,
+SetWMCMapW.c:71: XChangeProperty (dpy, w, prop, XA_WINDOW, 32,
+SetWMProto.c:71: XChangeProperty (dpy, w, prop, XA_ATOM, 32,
+StBytes.c:96: return XChangeProperty(dpy, RootWindow(dpy, 0), n_to_atom[buffer],
+StName.c:39: return XChangeProperty(dpy, w, XA_WM_NAME, XA_STRING,
+StName.c:50: return XChangeProperty(dpy, w, XA_WM_ICON_NAME, XA_STRING, 8,
+WMProps.c:143: XChangeProperty (dpy, w, XInternAtom(dpy, "WM_LOCALE_NAME", False),
+Xatomtype.h:54: * XChangeProperty. All fields must be longs as the semantics of property
+Xlib.h:2069:extern int XChangeProperty(
+
+#### XChangeSaveSet ####
+ChSaveSet.c:33:XChangeSaveSet(
+ChSaveSet.c:54: return XChangeSaveSet(dpy,win,SetModeInsert);
+ChSaveSet.c:62: return XChangeSaveSet(dpy,win,SetModeDelete);
+Xlib.h:2080:extern int XChangeSaveSet(
+
+#### XChangeWindowAttributes ####
+ChWAttrs.c:39:XChangeWindowAttributes (
+Xlib.h:2086:extern int XChangeWindowAttributes(
+
+#### XCheckIfEvent ####
+ChkIfEv.c:38:Bool XCheckIfEvent (
+ChkIfEv.c:88: * This is just like XCheckIfEvent() but doesn't
+ChkIfEv.c:93:Bool XCheckIfEventNoFlush (
+Xlib.h:2093:extern Bool XCheckIfEvent(
+Xlib.h:2107: * This is just like XCheckIfEvent() but doesn't
+Xlib.h:2112:extern Bool XCheckIfEventNoFlush(
+
+#### XCheckIfEventNoFlush ####
+ChkIfEv.c:93:Bool XCheckIfEventNoFlush (
+Xlib.h:2112:extern Bool XCheckIfEventNoFlush(
+
+#### XCheckMaskEvent ####
+ChkMaskEv.c:44:Bool XCheckMaskEvent (
+Xlib.h:2125:extern Bool XCheckMaskEvent(
+
+#### XCheckTypedEvent ####
+ChkTypEv.c:38:Bool XCheckTypedEvent (
+Xlib.h:2131:extern Bool XCheckTypedEvent(
+
+#### XCheckTypedWindowEvent ####
+ChkTypWEv.c:38:Bool XCheckTypedWindowEvent (
+Xlib.h:2137:extern Bool XCheckTypedWindowEvent(
+
+#### XCheckWindowEvent ####
+ChkWinEv.c:43:Bool XCheckWindowEvent (
+Xlib.h:2144:extern Bool XCheckWindowEvent(
+
+#### XCirculateSubwindows ####
+CirWin.c:33:XCirculateSubwindows(
+CirWinDn.c:33:XCirculateSubwindowsDown(
+CirWinUp.c:33:XCirculateSubwindowsUp(
+Xlib.h:2151:extern int XCirculateSubwindows(
+Xlib.h:2157:extern int XCirculateSubwindowsDown(
+Xlib.h:2162:extern int XCirculateSubwindowsUp(
+
+#### XCirculateSubwindowsDown ####
+CirWinDn.c:33:XCirculateSubwindowsDown(
+Xlib.h:2157:extern int XCirculateSubwindowsDown(
+
+#### XCirculateSubwindowsUp ####
+CirWinUp.c:33:XCirculateSubwindowsUp(
+Xlib.h:2162:extern int XCirculateSubwindowsUp(
+
+#### XClearArea ####
+ClearArea.c:33:XClearArea (
+locking.c:186: if (strcmp("XClearArea.c", file) && strcmp("XDrSegs.c", file)) /* ico */
+locking.c:214: if (strcmp("XClearArea.c", file) && strcmp("XDrSegs.c", file)) /* ico */
+Xlib.h:2167:extern int XClearArea(
+
+#### XClearWindow ####
+Clear.c:33:XClearWindow(
+Xlib.h:2177:extern int XClearWindow(
+
+#### XClipBox ####
+Region.c:158:XClipBox(
+Xutil.h:387:extern int XClipBox(
+
+#### XCloseDisplay ####
+ClDisplay.c:43: * XCloseDisplay - XSync the connection to the X Server, close the connection,
+ClDisplay.c:49:XCloseDisplay (
+OpenDis.c:844: * and also by XCloseDisplay. It needs to check whether all pointers
+XKB.c:761: XCloseDisplay(dpy);
+Xlib.h:2182:extern int XCloseDisplay(
+
+#### XCloseIM ####
+IMWrap.c:128:XCloseIM(XIM im)
+XlcDL.c:287: * since XCloseIM, XCloseOM, XlcClose aren't wrapped, but directly
+Xlib.h:3855:extern Status XCloseIM(
+
+#### XCloseOM ####
+FSWrap.c:202: XCloseOM(om);
+FSWrap.c:261: XCloseOM(font_set->core.om);
+OMWrap.c:48:XCloseOM(XOM om)
+XlcDL.c:287: * since XCloseIM, XCloseOM, XlcClose aren't wrapped, but directly
+Xlcint.h:370:typedef Status (*XCloseOMProc)(
+Xlcint.h:393: XCloseOMProc close;
+Xlib.h:3586:extern Status XCloseOM(
+
+#### XConfigureWindow ####
+ReconfWin.c:36:XConfigureWindow(
+ReconfWM.c:53: XConfigureWindow (dpy, w, mask, changes);
+ReconfWM.c:59: * We need to inline XConfigureWindow and XSync so that everything is done
+ReconfWM.c:66: * XConfigureWindow (dpy, w, mask, changes);
+Xlib.h:2186:extern int XConfigureWindow(
+
+#### XConnectionNumber ####
+Macros.c:43:int XConnectionNumber(Display *dpy) { return (ConnectionNumber(dpy)); }
+Xlib.h:2193:extern int XConnectionNumber(
+
+#### XContextDependentDrawing ####
+FSWrap.c:231:XContextDependentDrawing(XFontSet font_set)
+Xlib.h:3658:extern Bool XContextDependentDrawing(
+
+#### XContextualDrawing ####
+FSWrap.c:243:XContextualDrawing(XFontSet font_set)
+Xlib.h:3666:extern Bool XContextualDrawing(
+
+#### XConvertCase ####
+imThaiFlt.c:798: XConvertCase(syms[0], keysym_return, &usym);
+imThaiFlt.c:800: XConvertCase(syms[0], &lsym, &usym);
+imThaiFlt.c:806: XConvertCase(syms[0], &lsym, &usym);
+imThaiFlt.c:811: XConvertCase(sym, &lsym, &usym);
+imThaiFlt.c:814: XConvertCase(syms[0], &lsym, &usym);
+KeyBind.c:105: XConvertCase(syms[col&~1], &lsym, &usym);
+KeyBind.c:641:XConvertCase(
+KeyBind.c:793: XConvertCase(syms[0], keysym_return, &usym);
+KeyBind.c:799: XConvertCase(syms[0], &lsym, &usym);
+KeyBind.c:804: XConvertCase(sym, &lsym, &usym);
+KeyBind.c:807: XConvertCase(syms[0], &lsym, &usym);
+XKBCvt.c:165: XConvertCase(sym, &lower, &upper);
+XKBMisc.c:219: XConvertCase(syms[0], &lower, &upper);
+XKBMisc.c:238: XConvertCase(syms[0], &lower, &upper);
+Xutil.h:529:extern void XConvertCase(
+
+#### XConvertSelection ####
+ConvSel.c:33:XConvertSelection(
+imDefIm.c:340: XConvertSelection(display, selection, locales, locales, window,
+imDefIm.c:363: XConvertSelection(display, selection, transport, transport, window,
+Xlib.h:2197:extern int XConvertSelection(
+
+#### XCopyArea ####
+CopyArea.c:33:XCopyArea(
+Xlib.h:2206:extern int XCopyArea(
+
+#### XCopyColormapAndFree ####
+cmsCmap.c:287: * Augments Xlib's XCopyColormapAndFree() to copy
+CopyCmap.c:43:Colormap XCopyColormapAndFree(
+Xlib.h:1549:extern Colormap XCopyColormapAndFree(
+
+#### XCopyGC ####
+CopyGC.c:33:XCopyGC (
+Xlib.h:2219:extern int XCopyGC(
+
+#### XCopyPlane ####
+CopyPlane.c:33:XCopyPlane(
+Xlib.h:2226:extern int XCopyPlane(
+
+#### XCreateBitmapFromData ####
+CrBFData.c:33: * XCreateBitmapFromData: Routine to make a pixmap of depth 1 from user
+CrBFData.c:49:Pixmap XCreateBitmapFromData(
+RdBitF.c:256: *pixmap = XCreateBitmapFromData(display, d, (char *)data, *width, *height);
+Xlib.h:1605:extern Pixmap XCreateBitmapFromData(
+
+#### XCreateColormap ####
+CrCmap.c:34:Colormap XCreateColormap(
+Xlib.h:1553:extern Colormap XCreateColormap(
+
+#### XCreateFontCursor ####
+Cursor.c:34:Cursor XCreateFontCursor(
+Xlib.h:1577:extern Cursor XCreateFontCursor(
+Xlibint.h:184: Font cursor_font; /* for XCreateFontCursor */
+
+#### XCreateFontSet ####
+FSWrap.c:164:XCreateFontSet (
+imRmAttr.c:338: rep = XCreateFontSet(ic->core.im->core.display,
+imRmAttr.c:346: rep = XCreateFontSet(ic->core.im->core.display,
+Xlib.h:3631:extern XFontSet XCreateFontSet(
+
+#### XCreateGC ####
+CrBFData.c:57: GC gc = XCreateGC(display, pix, (unsigned long) 0, (XGCValues *) 0);
+CrGC.c:64:GC XCreateGC (
+CrPFBData.c:66: GC gc = XCreateGC(display, pix, GCForeground|GCBackground, &gcv);
+OpenDis.c:724: if ((sp->default_gc = XCreateGC (dpy, sp->root,
+Xlib.h:1585:extern GC XCreateGC(
+
+#### XCreateGlyphCursor ####
+CrGlCur.c:225:Cursor XCreateGlyphCursor(
+Cursor.c:50: return XCreateGlyphCursor (dpy, dpy->cursor_font, dpy->cursor_font,
+Xlib.h:1568:extern Cursor XCreateGlyphCursor(
+
+#### XCreateIC ####
+ICWrap.c:228:XCreateIC(XIM im, ...)
+Xlib.h:3875:extern XIC XCreateIC(
+
+#### XCreateImage ####
+GetImage.c:96: image = XCreateImage(dpy, _XVIDtoVisual(dpy, rep.visual),
+GetImage.c:102: image = XCreateImage (dpy, _XVIDtoVisual(dpy, rep.visual),
+ImUtil.c:96: * XCreateImage Creates a default XImage data structure
+ImUtil.c:274: image->f.create_image = XCreateImage;
+ImUtil.c:308:XImage *XCreateImage (
+ImUtil.c:323: XCreateImage can calculate it.*/
+Xlib.h:1442:extern XImage *XCreateImage(
+
+#### XCreateOC ####
+FSWrap.c:182: if ((oc = XCreateOC(om, XNBaseFontName, base_font_name_list, NULL))) {
+OCWrap.c:33:XCreateOC(XOM om, ...)
+Xlcint.h:386:typedef XOC (*XCreateOCProc)(
+Xlcint.h:396: XCreateOCProc create_oc;
+Xlib.h:3608:extern XOC XCreateOC(
+
+#### XCreatePixmap ####
+CrBFData.c:56: Pixmap pix = XCreatePixmap(display, d, width, height, 1);
+CrCursor.c:43:Cursor XCreatePixmapCursor(
+CrPFBData.c:34: * XCreatePixmapFromBitmapData: Routine to make a pixmap from user supplied bitmap data.
+CrPFBData.c:51:Pixmap XCreatePixmapFromBitmapData(
+CrPFBData.c:61: Pixmap pix = XCreatePixmap(display, d, width, height, depth);
+CrPixmap.c:40:Pixmap XCreatePixmap (
+Xlib.h:1559:extern Cursor XCreatePixmapCursor(
+Xlib.h:1598:extern Pixmap XCreatePixmap(
+Xlib.h:1612:extern Pixmap XCreatePixmapFromBitmapData(
+
+#### XCreatePixmapCursor ####
+CrCursor.c:43:Cursor XCreatePixmapCursor(
+Xlib.h:1559:extern Cursor XCreatePixmapCursor(
+
+#### XCreatePixmapFromBitmapData ####
+CrPFBData.c:34: * XCreatePixmapFromBitmapData: Routine to make a pixmap from user supplied bitmap data.
+CrPFBData.c:51:Pixmap XCreatePixmapFromBitmapData(
+Xlib.h:1612:extern Pixmap XCreatePixmapFromBitmapData(
+
+#### XCreateRegion ####
+PolyReg.c:494: if (! (region = XCreateRegion())) return (Region) NULL;
+Region.c:138:XCreateRegion(void)
+Region.c:387: if (! (s = XCreateRegion()) )
+Region.c:389: if (! (t = XCreateRegion()) ) {
+Region.c:1457: if (! (tra = XCreateRegion()) )
+Region.c:1459: if (! (trb = XCreateRegion()) ) {
+Xutil.h:392:extern Region XCreateRegion(
+
+#### XCreateSimpleWindow ####
+CrWindow.c:32:Window XCreateSimpleWindow(
+imDefIm.c:297: if(!(window = XCreateSimpleWindow(display, DefaultRootWindow(display),
+imTrans.c:111: if (!(window = XCreateSimpleWindow(im->core.display,
+imTrX.c:164: if (!(spec->lib_connect_wid = XCreateSimpleWindow(im->core.display,
+Xlib.h:1622:extern Window XCreateSimpleWindow(
+
+#### XCreateWindow ####
+EvToWire.c:185: register XCreateWindowEvent *ev =
+EvToWire.c:186: (XCreateWindowEvent *) re;
+imEvToWire.c:188: register XCreateWindowEvent *ev =
+imEvToWire.c:189: (XCreateWindowEvent *) re;
+imEvToWire.c:568: register XCreateWindowEvent *ev =
+imEvToWire.c:569: (XCreateWindowEvent *) re;
+Window.c:100:Window XCreateWindow(
+XlibInt.c:3228: register XCreateWindowEvent *ev =
+XlibInt.c:3229: (XCreateWindowEvent *) re;
+Xlib.h:717:} XCreateWindowEvent;
+Xlib.h:986: XCreateWindowEvent xcreatewindow;
+Xlib.h:1637:extern Window XCreateWindow(
+
+#### XDefaultColormap ####
+Macros.c:128:Colormap XDefaultColormap(Display *dpy, int scr)
+Macros.c:194:Colormap XDefaultColormapOfScreen(Screen *s)
+Xlib.h:1819:extern Colormap XDefaultColormap(
+Xlib.h:1823:extern Colormap XDefaultColormapOfScreen(
+
+#### XDefaultColormapOfScreen ####
+Macros.c:194:Colormap XDefaultColormapOfScreen(Screen *s)
+Xlib.h:1823:extern Colormap XDefaultColormapOfScreen(
+
+#### XDefaultDepth ####
+Macros.c:123:int XDefaultDepth(Display *dpy, int scr)
+Macros.c:199:int XDefaultDepthOfScreen(Screen *s)
+Xlib.h:2240:extern int XDefaultDepth(
+Xlib.h:2245:extern int XDefaultDepthOfScreen(
+
+#### XDefaultDepthOfScreen ####
+Macros.c:199:int XDefaultDepthOfScreen(Screen *s)
+Xlib.h:2245:extern int XDefaultDepthOfScreen(
+
+#### XDefaultGC ####
+Macros.c:62:GC XDefaultGC(Display *dpy, int scr)
+Macros.c:204:GC XDefaultGCOfScreen(Screen *s)
+Xlib.h:1783:extern GC XDefaultGC(
+Xlib.h:1787:extern GC XDefaultGCOfScreen(
+
+#### XDefaultGCOfScreen ####
+Macros.c:204:GC XDefaultGCOfScreen(Screen *s)
+Xlib.h:1787:extern GC XDefaultGCOfScreen(
+
+#### XDefaultRootWindow ####
+Macros.c:52:Window XDefaultRootWindow (Display *dpy)
+Xlib.h:1770:extern Window XDefaultRootWindow(
+
+#### XDefaultScreen ####
+Macros.c:50:int XDefaultScreen(Display *dpy) { return (DefaultScreen(dpy)); }
+Macros.c:175:Screen *XDefaultScreenOfDisplay(Display *dpy)
+Xlib.h:1833:extern Screen *XDefaultScreenOfDisplay(
+Xlib.h:2249:extern int XDefaultScreen(
+
+#### XDefaultScreenOfDisplay ####
+Macros.c:175:Screen *XDefaultScreenOfDisplay(Display *dpy)
+Xlib.h:1833:extern Screen *XDefaultScreenOfDisplay(
+
+#### XDefaultString ####
+lcGenConv.c:939: /* output default_string of XDefaultString() */
+lcGenConv.c:1965: /* output default_string of XDefaultString() */
+lcWrap.c:488:XDefaultString(void)
+Xlcint.h:309:typedef const char* (*XDefaultStringProc)(
+Xlcint.h:326: XDefaultStringProc default_string;
+XlcPubI.h:94: const char *default_string; /* for XDefaultString() */
+Xutil.h:396:extern const char *XDefaultString (void);
+
+#### XDefaultVisual ####
+Macros.c:57:Visual *XDefaultVisual(Display *dpy, int scr)
+Macros.c:209:Visual *XDefaultVisualOfScreen(Screen *s)
+Xlib.h:1776:extern Visual *XDefaultVisual(
+Xlib.h:1780:extern Visual *XDefaultVisualOfScreen(
+
+#### XDefaultVisualOfScreen ####
+Macros.c:209:Visual *XDefaultVisualOfScreen(Screen *s)
+Xlib.h:1780:extern Visual *XDefaultVisualOfScreen(
+
+#### XDefineCursor ####
+DefCursor.c:33:XDefineCursor (
+Xlib.h:2253:extern int XDefineCursor(
+
+#### XDeleteContext ####
+Context.c:57: XDeleteContext(a,b,c) will delete the entry in (a,b,c).
+Context.c:271:int XDeleteContext(Display *display, XID rid, XContext context)
+Xutil.h:398:extern int XDeleteContext(
+
+#### XDeleteModifiermapEntry ####
+ModMap.c:167:XDeleteModifiermapEntry(XModifierKeymap *map,
+Xlib.h:1414:extern XModifierKeymap *XDeleteModifiermapEntry(
+
+#### XDeleteProperty ####
+DelProp.c:33:XDeleteProperty(
+Xlib.h:2259:extern int XDeleteProperty(
+
+#### XDestroyIC ####
+ICWrap.c:263:XDestroyIC(XIC ic)
+XDefaultIMIF.c:358:/*BugId4255571. This Xfree() should be removed because XDestroyIC() still need ic after invoking _DestroyIC() and there is a XFree(ic) at the end of XDestroyIC() already.
+Xlib.h:3879:extern void XDestroyIC(
+
+#### XDestroyImage ####
+GetImage.c:31:#include <nx-X11/Xutil.h> /* for XDestroyImage */
+GetImage.c:114: XDestroyImage(image);
+GetImage.c:141: XDestroyImage(temp_image);
+ImUtil.c:35:static int _XDestroyImage(XImage *);
+ImUtil.c:97: * _XDestroyImage Deletes an XImage data structure
+ImUtil.c:275: image->f.destroy_image = _XDestroyImage;
+ImUtil.c:435:static int _XDestroyImage (XImage *ximage)
+Macros.c:252:#undef XDestroyImage
+Macros.c:254:XDestroyImage(
+WrBitF.c:123: XDestroyImage(image);
+Xutil.h:196:extern int XDestroyImage(
+Xutil.h:217:#define XDestroyImage(ximage) \
+
+#### XDestroyOC ####
+OCWrap.c:64:XDestroyOC(XOC oc)
+Xlcint.h:420:typedef void (*XDestroyOCProc)(
+Xlcint.h:542: XDestroyOCProc destroy;
+Xlib.h:3613:extern void XDestroyOC(
+
+#### XDestroyRegion ####
+PolyReg.c:523: XDestroyRegion(region);
+Region.c:284:XDestroyRegion(
+Region.c:390: XDestroyRegion(s);
+Region.c:398: XDestroyRegion(s);
+Region.c:399: XDestroyRegion(t);
+Region.c:1460: XDestroyRegion(tra);
+Region.c:1466: XDestroyRegion(tra);
+Region.c:1467: XDestroyRegion(trb);
+Xutil.h:404:extern int XDestroyRegion(
+
+#### XDestroySubwindows ####
+DestSubs.c:33:XDestroySubwindows(
+Xlib.h:2270:extern int XDestroySubwindows(
+
+#### XDestroyWindow ####
+cmsCmap.c:212: XDestroyWindow(dpy, tmpWindow);
+DestWind.c:33:XDestroyWindow (
+EvToWire.c:199: register XDestroyWindowEvent *ev =
+EvToWire.c:200: (XDestroyWindowEvent *) re;
+imDefIm.c:375: XDestroyWindow(display, window);
+imDefIm.c:386: XDestroyWindow(display, window);
+imEvToWire.c:202: register XDestroyWindowEvent *ev =
+imEvToWire.c:203: (XDestroyWindowEvent *) re;
+imEvToWire.c:582: register XDestroyWindowEvent *ev =
+imEvToWire.c:583: (XDestroyWindowEvent *) re;
+imTrans.c:137: XDestroyWindow(im->core.display, spec->window);
+imTrX.c:239: XDestroyWindow(im->core.display,
+XlibInt.c:3242: register XDestroyWindowEvent *ev =
+XlibInt.c:3243: (XDestroyWindowEvent *) re;
+Xlib.h:726:} XDestroyWindowEvent;
+Xlib.h:987: XDestroyWindowEvent xdestroywindow;
+Xlib.h:2265:extern int XDestroyWindow(
+
+#### XDirectionalDependentDrawing ####
+FSWrap.c:237:XDirectionalDependentDrawing(XFontSet font_set)
+Xlib.h:3662:extern Bool XDirectionalDependentDrawing(
+
+#### XDisableAccessControl ####
+ChAccCon.c:39:XDisableAccessControl(register Display *dpy)
+Xlib.h:2283:extern int XDisableAccessControl(
+
+#### XDisplayCells ####
+Macros.c:106:int XDisplayCells(Display *dpy, int scr)
+Xlib.h:2288:extern int XDisplayCells(
+
+#### XDisplayHeight ####
+Macros.c:86:int XDisplayHeight(Display *dpy, int scr)
+Macros.c:96:int XDisplayHeightMM(Display *dpy, int scr)
+Xlib.h:2293:extern int XDisplayHeight(
+Xlib.h:2298:extern int XDisplayHeightMM(
+
+#### XDisplayHeightMM ####
+Macros.c:96:int XDisplayHeightMM(Display *dpy, int scr)
+Xlib.h:2298:extern int XDisplayHeightMM(
+
+#### XDisplayKeycodes ####
+Misc.c:48:XDisplayKeycodes(
+Xlib.h:2303:extern int XDisplayKeycodes(
+
+#### XDisplayMotionBufferSize ####
+Misc.c:42:unsigned long XDisplayMotionBufferSize(Display *dpy)
+Xlib.h:1726:extern unsigned long XDisplayMotionBufferSize(
+
+#### XDisplayName ####
+ConnDis.c:640: * XDisplayString() and XDisplayName() agree.
+DisName.c:30:/* XDisplayName.c */
+DisName.c:40: * strncpy( displaybuf, XDisplayName( display ), sizeof(displaybuf) );
+DisName.c:55:XDisplayName(
+Xlib.h:1516:extern char *XDisplayName(
+
+#### XDisplayOfIM ####
+IMWrap.c:146:XDisplayOfIM(XIM im)
+Xlib.h:3867:extern Display *XDisplayOfIM(
+
+#### XDisplayOfOM ####
+OMWrap.c:120:XDisplayOfOM(XOM om)
+Xlib.h:3600:extern Display *XDisplayOfOM(
+
+#### XDisplayOfScreen ####
+Macros.c:180:Display *XDisplayOfScreen(Screen *s) { return (DisplayOfScreen(s)); }
+Xlib.h:1826:extern Display *XDisplayOfScreen(
+
+#### XDisplayPlanes ####
+Macros.c:101:int XDisplayPlanes(Display *dpy, int scr)
+Xlib.h:2309:extern int XDisplayPlanes(
+
+#### XDisplayString ####
+ConnDis.c:640: * XDisplayString() and XDisplayName() agree.
+Macros.c:121:char *XDisplayString(Display *dpy) { return (DisplayString(dpy)); }
+Xlib.h:1816:extern char *XDisplayString(
+
+#### XDisplayWidth ####
+Macros.c:81:int XDisplayWidth(Display *dpy, int scr)
+Macros.c:91:int XDisplayWidthMM(Display *dpy, int scr)
+Xlib.h:2314:extern int XDisplayWidth(
+Xlib.h:2319:extern int XDisplayWidthMM(
+
+#### XDisplayWidthMM ####
+Macros.c:91:int XDisplayWidthMM(Display *dpy, int scr)
+Xlib.h:2319:extern int XDisplayWidthMM(
+
+#### XDoesBackingStore ####
+Macros.c:232:int XDoesBackingStore(Screen *s) { return (DoesBackingStore(s)); }
+Xlib.h:2275:extern int XDoesBackingStore(
+
+#### XDoesSaveUnders ####
+Macros.c:230:Bool XDoesSaveUnders(Screen *s) { return (DoesSaveUnders(s)); }
+Xlib.h:2279:extern Bool XDoesSaveUnders(
+
+#### XDrawArc ####
+DrArc.c:27:/* Note to future maintainers: XDrawArc does NOT batch successive PolyArc
+DrArc.c:39:XDrawArc(
+DrArcs.c:35:XDrawArcs(
+Xlib.h:2324:extern int XDrawArc(
+Xlib.h:2336:extern int XDrawArcs(
+
+#### XDrawArcs ####
+DrArcs.c:35:XDrawArcs(
+Xlib.h:2336:extern int XDrawArcs(
+
+#### XDrawImageString16 ####
+ImText16.c:33:XDrawImageString16(
+Xlib.h:2354:extern int XDrawImageString16(
+
+#### XDrawImageString ####
+ImText16.c:33:XDrawImageString16(
+ImText.c:33:XDrawImageString(
+omDefault.c:410: XDrawImageString(dpy, d, gc, x, y, text, length);
+XDefaultOMIF.c:814: XDrawImageString(dpy, d, gc, x, y, text, length);
+Xlib.h:2344:extern int XDrawImageString(
+Xlib.h:2354:extern int XDrawImageString16(
+
+#### XDrawLine ####
+DrArc.c:28: requests into a single request like XDrawLine, XDrawPoint, etc.
+DrLine.c:38:XDrawLine (
+DrLines.c:33:XDrawLines (
+Xlib.h:2364:extern int XDrawLine(
+Xlib.h:2374:extern int XDrawLines(
+
+#### XDrawLines ####
+DrLines.c:33:XDrawLines (
+Xlib.h:2374:extern int XDrawLines(
+
+#### XDrawPoint ####
+DrArc.c:28: requests into a single request like XDrawLine, XDrawPoint, etc.
+DrPoint.c:37:XDrawPoint(
+DrPoints.c:33:XDrawPoints(
+Xlib.h:2383:extern int XDrawPoint(
+Xlib.h:2391:extern int XDrawPoints(
+
+#### XDrawPoints ####
+DrPoints.c:33:XDrawPoints(
+Xlib.h:2391:extern int XDrawPoints(
+
+#### XDrawRectangle ####
+DrRect.c:38:XDrawRectangle(
+DrRects.c:33:XDrawRectangles(
+Xlib.h:2400:extern int XDrawRectangle(
+Xlib.h:2410:extern int XDrawRectangles(
+
+#### XDrawRectangles ####
+DrRects.c:33:XDrawRectangles(
+Xlib.h:2410:extern int XDrawRectangles(
+
+#### XDrawSegments ####
+DrSegs.c:33:XDrawSegments (
+Xlib.h:2418:extern int XDrawSegments(
+
+#### XDrawString16 ####
+omText.c:123: XDrawString16(dpy, d, gc, wx, wy, buf2b, 1);
+omText.c:130: XDrawString16(dpy, d, gc, wx, wy, buf2b, 1);
+omText.c:212: XDrawString16(dpy, d, gc, x, y, (XChar2b *)ptr, char_len);
+Text16.c:33:XDrawString16(
+Xlib.h:2436:extern int XDrawString16(
+
+#### XDrawString ####
+omDefault.c:352: XDrawString(dpy, d, gc, x, y, text, length);
+omText.c:123: XDrawString16(dpy, d, gc, wx, wy, buf2b, 1);
+omText.c:130: XDrawString16(dpy, d, gc, wx, wy, buf2b, 1);
+omText.c:143: XDrawString(dpy, d, gc, wx, wy, buf, 1);
+omText.c:150: XDrawString(dpy, d, gc, wx, wy, buf, 1);
+omText.c:212: XDrawString16(dpy, d, gc, x, y, (XChar2b *)ptr, char_len);
+omText.c:216: XDrawString(dpy, d, gc, x, y, (char *)ptr, char_len);
+Text16.c:33:XDrawString16(
+Text.c:33:XDrawString(
+XDefaultOMIF.c:782: XDrawString(dpy, d, gc, x, y, text, length);
+Xlib.h:2426:extern int XDrawString(
+Xlib.h:2436:extern int XDrawString16(
+
+#### XDrawText16 ####
+PolyTxt16.c:33:XDrawText16(
+Xlib.h:2456:extern int XDrawText16(
+
+#### XDrawText ####
+PolyTxt16.c:33:XDrawText16(
+PolyTxt.c:33:XDrawText(
+Xlib.h:2446:extern int XDrawText(
+Xlib.h:2456:extern int XDrawText16(
+
+#### XEHeadOfExtensionList ####
+Font.c:321: pData = XFindOnExtensionList(XEHeadOfExtensionList(dpy_union),
+Font.c:348: XAddToExtensionList(XEHeadOfExtensionList(dpy_union), pData);
+Font.c:609: XAddToExtensionList(XEHeadOfExtensionList(fs_union), pData);
+Font.c:637: if ((pData = XFindOnExtensionList(XEHeadOfExtensionList(fs_union),
+InitExt.c:98:XExtData **XEHeadOfExtensionList(XEDataObject object)
+Xlib.h:1761:extern XExtData **XEHeadOfExtensionList(
+
+#### XESetBeforeFlush ####
+InitExt.c:389:BeforeFlushType XESetBeforeFlush(
+Xlibint.h:1197:extern void (*XESetBeforeFlush(
+
+#### XESetCloseDisplay ####
+InitExt.c:218:CloseDisplayType XESetCloseDisplay(
+Xlibint.h:1086:extern int (*XESetCloseDisplay(
+
+#### XESetCopyEventCookie ####
+InitExt.c:280:CopyEventCookieType XESetCopyEventCookie(
+Xlibint.h:1160:extern Bool (*XESetCopyEventCookie(
+
+#### XESetCopyGC ####
+InitExt.c:143:CopyGCType XESetCopyGC(
+Xlibint.h:1026:extern int (*XESetCopyGC(
+
+#### XESetCreateFont ####
+InitExt.c:188:CreateFontType XESetCreateFont(
+Xlibint.h:1062:extern int (*XESetCreateFont(
+
+#### XESetCreateGC ####
+InitExt.c:128:CreateGCType XESetCreateGC(
+Xlibint.h:1014:extern int (*XESetCreateGC(
+
+#### XESetError ####
+InitExt.c:344:ErrorType XESetError(
+InitExt.c:359:ErrorStringType XESetErrorString(
+Xlibint.h:1097:extern int (*XESetError(
+Xlibint.h:1110:extern char* (*XESetErrorString(
+
+#### XESetErrorString ####
+InitExt.c:359:ErrorStringType XESetErrorString(
+Xlibint.h:1110:extern char* (*XESetErrorString(
+
+#### XESetEventToWire ####
+InitExt.c:302:EventToWireType XESetEventToWire(
+Xlibint.h:1173:extern Status (*XESetEventToWire(
+
+#### XESetFlushGC ####
+InitExt.c:158:FlushGCType XESetFlushGC(
+Xlibint.h:1038:extern int (*XESetFlushGC(
+
+#### XESetFreeFont ####
+InitExt.c:203:FreeFontType XESetFreeFont(
+Xlibint.h:1074:extern int (*XESetFreeFont(
+
+#### XESetFreeGC ####
+InitExt.c:173:FreeGCType XESetFreeGC(
+Xlibint.h:1050:extern int (*XESetFreeGC(
+
+#### XESetPrintErrorValues ####
+InitExt.c:374:PrintErrorType XESetPrintErrorValues(
+Xlibint.h:1124:extern void (*XESetPrintErrorValues (
+
+#### XESetWireToError ####
+InitExt.c:322:WireToErrorType XESetWireToError(
+Xlibint.h:1185:extern Bool (*XESetWireToError(
+
+#### XESetWireToEvent ####
+InitExt.c:239:WireToEventType XESetWireToEvent(
+InitExt.c:259:WireToEventCookieType XESetWireToEventCookie(
+XKBUse.c:811: XESetWireToEvent(dpy, ev_base + XkbEventCode, wire_to_event);
+Xlibint.h:1136:extern Bool (*XESetWireToEvent(
+Xlibint.h:1148:extern Bool (*XESetWireToEventCookie(
+
+#### XESetWireToEventCookie ####
+InitExt.c:259:WireToEventCookieType XESetWireToEventCookie(
+Xlibint.h:1148:extern Bool (*XESetWireToEventCookie(
+
+#### XEmptyRegion ####
+Region.c:1476:XEmptyRegion(
+Xutil.h:408:extern int XEmptyRegion(
+
+#### XEnableAccessControl ####
+ChAccCon.c:33:XEnableAccessControl(register Display *dpy)
+Xlib.h:2466:extern int XEnableAccessControl(
+
+#### XEqualRegion ####
+Region.c:1487:XEqualRegion(Region r1, Region r2)
+Xutil.h:412:extern int XEqualRegion(
+
+#### XEventMaskOfScreen ####
+Macros.c:234:long XEventMaskOfScreen(Screen *s) { return (EventMaskOfScreen(s)); }
+Xlib.h:1836:extern long XEventMaskOfScreen(
+
+#### XEventsQueued ####
+ChkIfEv.c:71: _XEventsQueued(dpy, QueuedAfterReading);
+ChkIfEv.c:127: _XEventsQueued(dpy, QueuedAfterReading);
+ChkMaskEv.c:78: _XEventsQueued(dpy, QueuedAfterReading);
+ChkTypEv.c:69: _XEventsQueued(dpy, QueuedAfterReading);
+ChkTypWEv.c:71: _XEventsQueued(dpy, QueuedAfterReading);
+ChkWinEv.c:79: _XEventsQueued(dpy, QueuedAfterReading);
+Pending.c:38:int XEventsQueued (
+Pending.c:44: fprintf(stderr, "\nXEventsQueued: Called with a display at [%p].\n", (void *)dpy);
+Pending.c:51: ret_val = _XEventsQueued (dpy, mode);
+Pending.c:53: fprintf(stderr, "\nXEventsQueued: Going to unlock the display at [%p].\n", (void *)dpy);
+Pending.c:66: ret_val = _XEventsQueued (dpy, QueuedAfterFlush);
+XlibInt.c:1101:_XEventsQueued(
+XlibInt.c:1116: printf("_XEventsQueued called in thread %x\n", XThread_Self());
+XlibInt.c:1128: fprintf(stderr, "_XEventsQueued: Returning [%d] after display failure.\n",
+XlibInt.c:1173: fprintf(stderr, "_XEventsQueued: Checking bytes readable.\n");
+XlibInt.c:1202: fprintf(stderr, "_XEventsQueued: Calling poll().\n");
+XlibInt.c:1209: fprintf(stderr, "_XEventsQueued: Calling select().\n");
+XlibInt.c:1257: fprintf(stderr, "_XEventsQueued: Returning [%d].\n", dpy->qlen);
+Xlib.h:2470:extern int XEventsQueued(
+Xlibint.h:106: int conn_checker; /* ugly thing used by _XEventsQueued */
+Xlibint.h:940:extern int _XEventsQueued(
+
+#### XExtendedMaxRequestSize ####
+Misc.c:63:long XExtendedMaxRequestSize(Display *dpy)
+Xlib.h:1717:extern long XExtendedMaxRequestSize(
+
+#### XExtentsOfFontSet ####
+FSWrap.c:249:XExtentsOfFontSet(XFontSet font_set)
+imRm.c:747: fset_extents = XExtentsOfFontSet(fontset);
+Xlib.h:3670:extern XFontSetExtents *XExtentsOfFontSet(
+
+#### XFetchBuffer ####
+StBytes.c:55:char *XFetchBuffer (
+StBytes.c:85: return (XFetchBuffer (dpy, nbytes, 0));
+Xlib.h:1496:extern char *XFetchBuffer(
+
+#### XFetchBytes ####
+StBytes.c:81:char *XFetchBytes (
+Xlib.h:1492:extern char *XFetchBytes(
+
+#### XFetchName ####
+FetchName.c:36:Status XFetchName (
+Xlib.h:2475:extern Status XFetchName(
+
+#### XFillArc ####
+FillArc.c:37:XFillArc(
+FillArcs.c:35:XFillArcs(
+Xlib.h:2481:extern int XFillArc(
+Xlib.h:2493:extern int XFillArcs(
+
+#### XFillArcs ####
+FillArcs.c:35:XFillArcs(
+Xlib.h:2493:extern int XFillArcs(
+
+#### XFillPolygon ####
+FillPoly.c:33:XFillPolygon(
+Xlib.h:2501:extern int XFillPolygon(
+
+#### XFillRectangle ####
+FillRct.c:37:XFillRectangle(
+FillRcts.c:33:XFillRectangles(
+omImText.c:56: XFillRectangle(dpy, d, gc, x + extent.x, y + extent.y, extent.width,
+Xlib.h:2511:extern int XFillRectangle(
+Xlib.h:2521:extern int XFillRectangles(
+
+#### XFillRectangles ####
+FillRcts.c:33:XFillRectangles(
+Xlib.h:2521:extern int XFillRectangles(
+
+#### XFilterEvent ####
+FilterEv.c:72:XFilterEvent(
+FilterEv.c:77: XFilterEventList p;
+RegstFlt.c:65: register XFilterEventList fl;
+RegstFlt.c:86: XFilterEventRec *rec;
+RegstFlt.c:88: rec = Xmalloc(sizeof(XFilterEventRec));
+RegstFlt.c:118: XFilterEventRec *rec;
+RegstFlt.c:120: rec = Xmalloc(sizeof(XFilterEventRec));
+RegstFlt.c:145: register XFilterEventList *prev, fl;
+Xlcint.h:79:typedef Bool (*XFilterEventProc)(
+Xlcint.h:91: XFilterEventProc filter;
+Xlcint.h:93:} XFilterEventRec, *XFilterEventList;
+Xlib.h:3915:extern Bool XFilterEvent(
+
+#### XFindContext ####
+Context.c:56: XFindContext(a,b,c,&d) will set d to be the value in position (a,b,c).
+Context.c:236:int XFindContext(Display *display, XID rid, XContext context, XPointer *data)
+Xutil.h:417:extern int XFindContext(
+
+#### XFindOnExtensionList ####
+Font.c:321: pData = XFindOnExtensionList(XEHeadOfExtensionList(dpy_union),
+Font.c:637: if ((pData = XFindOnExtensionList(XEHeadOfExtensionList(fs_union),
+InitExt.c:113:XExtData *XFindOnExtensionList(
+Xlib.h:1757:extern XExtData *XFindOnExtensionList(
+
+#### XFlush ####
+ChGC.c:47: _XFlushGCCache(dpy, gc);
+ChkIfEv.c:74: _XFlush(dpy);
+ChkMaskEv.c:81: _XFlush(dpy);
+ChkTypEv.c:72: _XFlush(dpy);
+ChkTypWEv.c:74: _XFlush(dpy);
+ChkWinEv.c:82: _XFlush(dpy);
+CopyGC.c:50: _XFlushGCCache(dpy, srcGC);
+CrGC.c:315:void _XFlushGCCache(
+CrGC.c:335:XFlushGC(
+Flush.c:36:XFlush (register Display *dpy)
+Flush.c:39: _XFlush (dpy);
+imTrans.c:240: XFlush(im->core.display);
+imTrX.c:194: XFlush(im->core.display);
+imTrX.c:488:_XimXFlush(Xim im)
+imTrX.c:490: XFlush(im->core.display);
+imTrX.c:513: im->private.proto.flush = _XimXFlush;
+PolyTxt16.c:90: _XFlush (dpy);
+PolyTxt16.c:237: _XFlush (dpy);
+PolyTxt.c:90: _XFlush (dpy);
+PolyTxt.c:230: _XFlush (dpy);
+SetClMask.c:43: _XFlushGCCache(dpy, gc);
+SetFont.c:42: _XFlushGCCache(dpy, gc);
+SetStip.c:42: _XFlushGCCache(dpy, gc);
+SetTile.c:42: _XFlushGCCache(dpy, gc);
+Text16.c:71: _XFlush (dpy);
+Text16.c:124: _XFlush (dpy);
+Text.c:71: _XFlush (dpy);
+Text.c:135: _XFlush (dpy);
+XlibInt.c:940:static void _XFlushInt(
+XlibInt.c:946: * _XFlush - Flush the X request buffer. If the buffer is empty, no
+XlibInt.c:950:void _XFlush(
+XlibInt.c:957: _XFlushInt(dpy, NULL);
+XlibInt.c:960:/* _XFlushInt - Internal version of _XFlush used to do multi-threaded
+XlibInt.c:964:static void _XFlushInt(
+XlibInt.c:978: fprintf(stderr, "_XFlushInt: Entering flush with [%d] bytes to write.\n",
+XlibInt.c:984: * callers of _XFlush() are not verifying this before they call it.
+XlibInt.c:989: fprintf(stderr, "_XFlushInt: Returning with I/O error detected.\n");
+XlibInt.c:1122: _XFlush(dpy);
+XlibInt.c:1249: /* _XFlush can enqueue events */
+XlibInt.c:1412: _XFlush (dpy);
+XlibInt.c:2180: _XFlushInt(dpy, cvl ? cvl->cv : NULL);
+XlibInt.c:2192: _XFlush(dpy);
+XlibInt.c:3882: _XFlush(dpy);
+XlibInt.c:3984: _XFlush(dpy);
+Xlib.h:1594:extern void XFlushGC(
+Xlib.h:2529:extern int XFlush(
+Xlibint.h:88:#define _XFlush _XFlushIt
+Xlibint.h:429:#define XlibDisplayWriting (1L << 6) /* in _XFlushInt, _XSend */
+Xlibint.h:551:extern void _XFlushGCCache(Display *dpy, GC gc);
+Xlibint.h:553: if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
+Xlibint.h:589: _XFlush (dpy); \
+Xlibint.h:937:extern void _XFlush(
+
+#### XFlushGC ####
+ChGC.c:47: _XFlushGCCache(dpy, gc);
+CopyGC.c:50: _XFlushGCCache(dpy, srcGC);
+CrGC.c:315:void _XFlushGCCache(
+CrGC.c:335:XFlushGC(
+SetClMask.c:43: _XFlushGCCache(dpy, gc);
+SetFont.c:42: _XFlushGCCache(dpy, gc);
+SetStip.c:42: _XFlushGCCache(dpy, gc);
+SetTile.c:42: _XFlushGCCache(dpy, gc);
+Xlib.h:1594:extern void XFlushGC(
+Xlibint.h:551:extern void _XFlushGCCache(Display *dpy, GC gc);
+Xlibint.h:553: if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
+
+#### XFontsOfFontSet ####
+FSWrap.c:208:XFontsOfFontSet(
+imRmAttr.c:977: list_ret = XFontsOfFontSet((XFontSet)p->value,
+imRmAttr.c:1028: list_ret = XFontsOfFontSet((XFontSet)p->value,
+imRmAttr.c:1205: list_ret = XFontsOfFontSet((XFontSet)value,
+imRmAttr.c:1246: list_ret = XFontsOfFontSet((XFontSet)value,
+Xlib.h:3644:extern int XFontsOfFontSet(
+
+#### XForceScreenSaver ####
+FSSaver.c:35: XForceScreenSaver (dpy, ScreenSaverActive);
+FSSaver.c:42: XForceScreenSaver (dpy, ScreenSaverReset);
+FSSaver.c:47:XForceScreenSaver(
+Xlib.h:2533:extern int XForceScreenSaver(
+
+#### XFree ####
+ChkMaskEv.c:56: _XFreeEventCookies(dpy);
+ChkTypEv.c:50: _XFreeEventCookies(dpy);
+ChkTypWEv.c:51: _XFreeEventCookies(dpy);
+ChkWinEv.c:56: _XFreeEventCookies(dpy);
+ClDisplay.c:60: XFreeGC (dpy, sp->default_gc);
+ClDisplay.c:80: _XFreeDisplayStructure (dpy);
+cmsProp.c:137: XFree (prop_ret);
+Context.c:132:static void _XFreeContextDB(Display *display)
+Context.c:147: _XFreeMutex(&db->linfo);
+Context.c:200: display->free_funcs->context_db = _XFreeContextDB;
+CrBFData.c:59: XFreePixmap(display, pix);
+CrBFData.c:77: XFreeGC(display, gc);
+CrPFBData.c:68: XFreePixmap(display, pix);
+CrPFBData.c:86: XFreeGC(display, gc);
+Font.c:4:Copyright (c) 2000 The XFree86 Project, Inc.
+Font.c:24:XFree86 Project shall not be used in advertising or otherwise to promote the
+Font.c:26:authorization from the X Consortium and the XFree86 Project.
+Font.c:151:XFreeFont(
+Font.c:172: _XFreeExtData(fs->ext_data);
+Font.c:699: _XFreeExtData(fs->ext_data);
+Font.c:705: XFreeFont(dpy, fs);
+FontInfo.c:168: flist[i] = NULL; /* required in case XFreeFontNames is called */
+FontInfo.c:200:XFreeFontInfo (
+FontNames.c:91: *ch = 1; /* make sure it is non-zero for XFreeFontNames */
+FontNames.c:123:XFreeFontNames(char **list)
+FreeCmap.c:35:XFreeColormap(
+FreeCols.c:33:XFreeColors(
+FreeCurs.c:33:XFreeCursor(
+FreeEData.c:33:_XFreeExtData (XExtData *extension)
+FreeEventData.c:31:XFreeEventData(Display *dpy, XGenericEventCookie *event)
+FreeEventData.c:36: XFree(event->data);
+FreeGC.c:33:XFreeGC (
+FreeGC.c:46: _XFreeExtData(gc->ext_data);
+FreePix.c:33:XFreePixmap(
+FSWrap.c:257:XFreeFontSet(
+GetFPath.c:92:XFreeFontPath (char **list)
+imConv.c:33:/* 2000 Modifier: Ivan Pascal The XFree86 Project.
+imDefIm.c:305: XFree( (XPointer)str );
+imDefIm.c:308: XFree( (XPointer)str );
+imDefIm.c:347: XFree((XPointer)address);
+imDefIm.c:353: XFree( locale_name[i] );
+imDefIm.c:357: XFree((XPointer)address);
+imDefIm.c:374: XFree((XPointer)address);
+imDefIm.c:381: XFree((XPointer)address);
+imDefIm.c:385: XFree( locale_name[i] );
+imDefIm.c:416: XFree((XPointer)prop_return);
+imDefIm.c:429: XFree((XPointer)prop_return);
+imExten.c:453: XFree(buf);
+imExten.c:456: XFree(buf);
+imInsClbk.c:106: XFree( atoms );
+imInsClbk.c:130: XFree( atoms );
+imInsClbk.c:140: XFree( tmp );
+imInsClbk.c:261: XFree( icb );
+imRmAttr.c:963: XFree(colormap_ret);
+imRmAttr.c:1014: XFree(colormap_ret);
+imThaiFlt.c:591: XFree(screc.text->string.mbs);
+imThaiFlt.c:593: XFree(screc.text);
+imThaiFlt.c:625: XFree(screc.text->string.wcs);
+imThaiFlt.c:628: XFree(screc.text->string.mbs);
+imThaiFlt.c:631: XFree(screc.text);
+imThaiFlt.c:1276: XFreeModifiermap(map);
+imThaiFlt.c:1280: XFreeModifiermap(map);
+imTrX.c:85:_XimXFreeIntrCallback(
+imTrX.c:241: _XimXFreeIntrCallback(im);
+imTrX.c:372: XFree(prop_ret);
+imTrX.c:379: XFree(prop_ret);
+imTrX.c:400: XFree(prop_ret);
+imTrX.c:416: XFree(prop_ret);
+imTrX.c:425: XFree(prop_ret);
+imTrX.c:438: XFree(prop_ret);
+IntAtom.c:40:_XFreeAtomTable(Display *dpy)
+IntAtom.c:76: dpy->free_funcs->atoms = _XFreeAtomTable;
+IntAtom.c:131: dpy->free_funcs->atoms = _XFreeAtomTable;
+KeyBind.c:218: XFreeModifiermap(dpy->modifiermap);
+KeyBind.c:220: dpy->free_funcs->modifiermap = XFreeModifiermap;
+KeyBind.c:245: XFreeModifiermap(event->display->modifiermap);
+KeyBind.c:898:_XFreeKeyBindings(
+KeyBind.c:942: dpy->free_funcs->key_bindings = _XFreeKeyBindings;
+lcCT.c:35: * Modifier: Ivan Pascal The XFree86 Project
+lcCT.c:36: * Modifier: Bruno Haible The XFree86 Project
+lcCT.c:119: /* Backward compatibility with XFree86 3.x */
+lcDefConv.c:27: * Modifier: Ivan Pascal The XFree86 Project
+lcGenConv.c:35: * Modifier: Ivan Pascal The XFree86 Project
+lcRM.c:24: * Bug fixes: Bruno Haible XFree86 Inc.
+lcUtil.c:24: * Bug fixes: Bruno Haible XFree86 Inc.
+LiHosts.c:68: * can be freed using XFree.
+ListExt.c:102:XFreeExtensionList (char **list)
+locking.c:40:#undef _XFreeMutex
+locking.c:128:static void _XFreeMutex(
+locking.c:401:static void _XFreeDisplayLock(
+locking.c:520: _XFreeDisplayLock(dpy);
+locking.c:527: _XFreeDisplayLock(dpy);
+locking.c:606: _XFreeMutex_fn = _XFreeMutex;
+locking.c:608: _XFreeDisplayLock_fn = _XFreeDisplayLock;
+MaskEvent.c:55: _XFreeEventCookies(dpy);
+ModMap.c:115:XFreeModifiermap(XModifierKeymap *map)
+ModMap.c:160: (void) XFreeModifiermap(map);
+NextEvent.c:47: _XFreeEventCookies(dpy);
+omGeneric.c:307: XFreeFontNames(fn_list);
+omGeneric.c:495: XFreeFontNames(list);
+omGeneric.c:645: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:649: XFree(prop_fname);
+omGeneric.c:650: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:655: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:1171: XFreeStringList(name_list);
+omGeneric.c:1176: XFreeStringList(name_list);
+omGeneric.c:1329: XFreeFont(dpy,font_data->font); /* ADD 1996.01.7 */
+omGeneric.c:1331: XFreeFontInfo(NULL, font_data->font, 1);/* Add 1996.01.23 */
+omGeneric.c:1366: XFreeFont(dpy,font_set->font);
+omGeneric.c:1368: XFreeFontInfo(NULL, font_set->font, 1);
+omGeneric.c:1373: XFreeFontInfo(NULL, font_set->info, 1);
+omGeneric.c:1428: XFreeStringList(oc->core.font_info.font_name_list);
+omGeneric.c:1430: XFreeStringList(oc->core.missing_list.charset_list);
+omGeneric.c:1689: XFreeStringList(om->core.required_charset.charset_list);
+omXChar.c:294: XFreeFontInfo(NULL, font_set->info, 1);
+OpenDis.c:87:void (*_XFreeDisplayLock_fn)(Display *dpy) = NULL;
+OpenDis.c:90:#define FreeDisplayLock(d) if (_XFreeDisplayLock_fn) (*_XFreeDisplayLock_fn)(d)
+OpenDis.c:231: * Initialize pointers to NULL so that XFreeDisplayStructure will
+OpenDis.c:353: if ((dpy->free_funcs = Xcalloc(1, sizeof(_XFreeFuncRec))) == NULL) {
+OpenDis.c:842:/* XFreeDisplayStructure frees all the storage associated with a
+OpenDis.c:851:void _XFreeDisplayStructure(Display *dpy)
+OpenDis.c:863: _XFreeEventCookies(dpy);
+OpenDis.c:909: _XFreeExtData (dp->visuals[k].ext_data);
+OpenDis.c:917: _XFreeExtData (sp->ext_data);
+OpenDis.c:927: _XFreeExtData (dpy->pixmap_format[i].ext_data);
+OpenDis.c:939: _XFreeExtData (dpy->ext_data);
+OpenDis.c:969: _XFreeX11XCBStructure(dpy);
+OpenDis.c:986: _XFreeDisplayStructure (dpy);
+PrOfId.c:63: * the application is responsible for freeing (using XFree)
+Region.c:277: _XFreeTemp(dpy, (char *)xr, total);
+RegstFlt.c:62:_XFreeIMFilters(
+RegstFlt.c:100: display->free_funcs->im_filters = _XFreeIMFilters;
+RegstFlt.c:132: display->free_funcs->im_filters = _XFreeIMFilters;
+TextToStr.c:110:void XFreeStringList (char **list)
+UIThrStubs.c:40: * Modifications by Carlos A M dos Santos, XFree86 Project, November 1999.
+WinEvent.c:58: _XFreeEventCookies(dpy);
+XDefaultIMIF.c:240: XFree(im->private);
+XDefaultIMIF.c:241: XFree(im->core.im_name);
+XDefaultIMIF.c:242: XFree(im->core.res_name);
+XDefaultIMIF.c:243: XFree(im->core.res_class);
+XDefaultIMIF.c:351: XFree(ic);
+XDefaultIMIF.c:358:/*BugId4255571. This Xfree() should be removed because XDestroyIC() still need ic after invoking _DestroyIC() and there is a XFree(ic) at the end of XDestroyIC() already.
+XDefaultIMIF.c:360: XFree(ic); */
+XDefaultIMIF.c:455: XFree(mb_buf);
+XDefaultOMIF.c:296: XFreeFontNames(list);
+XDefaultOMIF.c:302: XFreeFont(dpy, fs);
+XDefaultOMIF.c:355: XFreeFontInfo(fn_list, fs_list, list_num);
+XDefaultOMIF.c:448: XFreeStringList(name_list);
+XDefaultOMIF.c:452: XFreeStringList(name_list);
+XDefaultOMIF.c:526: XFreeStringList(oc->core.font_info.font_name_list);
+XDefaultOMIF.c:531: XFreeFont(dpy, font);
+XDefaultOMIF.c:533: XFreeFontInfo(NULL, font, 1);
+XDefaultOMIF.c:539: XFreeStringList(oc->core.missing_list.charset_list);
+XDefaultOMIF.c:936: XFreeStringList(om->core.required_charset.charset_list);
+XKBSetGeom.c:440: _XFreeTemp(dpy, tbuf, sz);
+XlibInt.c:85:void (*_XFreeMutex_fn)(LockInfoPtr) = NULL;
+XlibInt.c:2806: jar. _XFreeEventCookies removes all unclaimed cookies from the jar
+XlibInt.c:2809: _XFreeDisplayStructure calls _XFreeEventCookies for each cookie in the
+XlibInt.c:2831:_XFreeEventCookies(Display *dpy)
+XlibInt.c:2843: XFree(e->ev.data);
+XlibInt.c:2844: XFree(e);
+XlibInt.c:3011: * _XFreeDisplayStructure */
+XlibInt.c:3778: * MT safe, but you must hand the buffer back with _XFreeTemp.
+XlibInt.c:3792:void _XFreeTemp(
+XlibInt.c:3829:XFree (void *data)
+XlibInt.c:4194:void (**_XFreeMutex_fn_p)(LockInfoPtr) = &_XFreeMutex_fn;
+Xrm.c:803: _XFreeMutex(&from->linfo);
+Xrm.c:2662: _XFreeMutex(&db->linfo);
+locking.h:154:extern void (*_XFreeDisplayLock_fn)(Display *dpy);
+Xintatom.h:29:extern void _XFreeAtomTable(Display *dpy);
+Xintconn.h:34:extern void _XFreeDisplayStructure(Display *dpy);
+Xlib.h:69:/* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
+Xlib.h:1923:extern void XFreeStringList(
+Xlib.h:2538:extern int XFree(
+Xlib.h:2542:extern int XFreeColormap(
+Xlib.h:2547:extern int XFreeColors(
+Xlib.h:2555:extern int XFreeCursor(
+Xlib.h:2560:extern int XFreeExtensionList(
+Xlib.h:2564:extern int XFreeFont(
+Xlib.h:2569:extern int XFreeFontInfo(
+Xlib.h:2575:extern int XFreeFontNames(
+Xlib.h:2579:extern int XFreeFontPath(
+Xlib.h:2583:extern int XFreeGC(
+Xlib.h:2588:extern int XFreeModifiermap(
+Xlib.h:2592:extern int XFreePixmap(
+Xlib.h:3639:extern void XFreeFontSet(
+Xlib.h:4026:extern void XFreeEventData(
+Xlibint.h:104: struct _XFreeFuncs *free_funcs; /* internal free functions */
+Xlibint.h:304:#define _XFreeMutex_fn (*_XFreeMutex_fn_p)
+Xlibint.h:314:extern void (*_XFreeMutex_fn)(
+Xlibint.h:347:#define _XFreeMutex(lock) if (_XFreeMutex_fn) (*_XFreeMutex_fn)(lock);
+Xlibint.h:355:#define _XFreeMutex(lock)
+Xlibint.h:736:typedef struct _XFreeFuncs {
+Xlibint.h:737: FreeFuncType atoms; /* _XFreeAtomTable */
+Xlibint.h:738: FreeModmapType modifiermap; /* XFreeModifiermap */
+Xlibint.h:739: FreeFuncType key_bindings; /* _XFreeKeyBindings */
+Xlibint.h:740: FreeFuncType context_db; /* _XFreeContextDB */
+Xlibint.h:744: FreeFuncType im_filters; /* _XFreeIMFilters */
+Xlibint.h:746:} _XFreeFuncRec;
+Xlibint.h:891:extern void _XFreeTemp(
+Xlibint.h:1010:extern int _XFreeExtData(
+Xlibint.h:1341:extern void _XFreeEventCookies(
+Xutil.h:180: /* The following is an XFree86 extension, introduced in November 2000 */
+
+#### XFreeColormap ####
+FreeCmap.c:35:XFreeColormap(
+Xlib.h:2542:extern int XFreeColormap(
+
+#### XFreeColors ####
+FreeCols.c:33:XFreeColors(
+Xlib.h:2547:extern int XFreeColors(
+
+#### XFreeCursor ####
+FreeCurs.c:33:XFreeCursor(
+Xlib.h:2555:extern int XFreeCursor(
+
+#### XFreeEventData ####
+FreeEventData.c:31:XFreeEventData(Display *dpy, XGenericEventCookie *event)
+Xlib.h:4026:extern void XFreeEventData(
+
+#### XFreeExtensionList ####
+ListExt.c:102:XFreeExtensionList (char **list)
+Xlib.h:2560:extern int XFreeExtensionList(
+
+#### XFreeFont ####
+Font.c:151:XFreeFont(
+Font.c:705: XFreeFont(dpy, fs);
+FontInfo.c:168: flist[i] = NULL; /* required in case XFreeFontNames is called */
+FontInfo.c:200:XFreeFontInfo (
+FontNames.c:91: *ch = 1; /* make sure it is non-zero for XFreeFontNames */
+FontNames.c:123:XFreeFontNames(char **list)
+FSWrap.c:257:XFreeFontSet(
+GetFPath.c:92:XFreeFontPath (char **list)
+omGeneric.c:307: XFreeFontNames(fn_list);
+omGeneric.c:495: XFreeFontNames(list);
+omGeneric.c:645: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:650: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:655: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:1329: XFreeFont(dpy,font_data->font); /* ADD 1996.01.7 */
+omGeneric.c:1331: XFreeFontInfo(NULL, font_data->font, 1);/* Add 1996.01.23 */
+omGeneric.c:1366: XFreeFont(dpy,font_set->font);
+omGeneric.c:1368: XFreeFontInfo(NULL, font_set->font, 1);
+omGeneric.c:1373: XFreeFontInfo(NULL, font_set->info, 1);
+omXChar.c:294: XFreeFontInfo(NULL, font_set->info, 1);
+XDefaultOMIF.c:296: XFreeFontNames(list);
+XDefaultOMIF.c:302: XFreeFont(dpy, fs);
+XDefaultOMIF.c:355: XFreeFontInfo(fn_list, fs_list, list_num);
+XDefaultOMIF.c:531: XFreeFont(dpy, font);
+XDefaultOMIF.c:533: XFreeFontInfo(NULL, font, 1);
+Xlib.h:2564:extern int XFreeFont(
+Xlib.h:2569:extern int XFreeFontInfo(
+Xlib.h:2575:extern int XFreeFontNames(
+Xlib.h:2579:extern int XFreeFontPath(
+Xlib.h:3639:extern void XFreeFontSet(
+
+#### XFreeFontInfo ####
+FontInfo.c:200:XFreeFontInfo (
+omGeneric.c:645: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:650: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:655: XFreeFontInfo(fn_list, fs_list, list_num);
+omGeneric.c:1331: XFreeFontInfo(NULL, font_data->font, 1);/* Add 1996.01.23 */
+omGeneric.c:1368: XFreeFontInfo(NULL, font_set->font, 1);
+omGeneric.c:1373: XFreeFontInfo(NULL, font_set->info, 1);
+omXChar.c:294: XFreeFontInfo(NULL, font_set->info, 1);
+XDefaultOMIF.c:355: XFreeFontInfo(fn_list, fs_list, list_num);
+XDefaultOMIF.c:533: XFreeFontInfo(NULL, font, 1);
+Xlib.h:2569:extern int XFreeFontInfo(
+
+#### XFreeFontNames ####
+FontInfo.c:168: flist[i] = NULL; /* required in case XFreeFontNames is called */
+FontNames.c:91: *ch = 1; /* make sure it is non-zero for XFreeFontNames */
+FontNames.c:123:XFreeFontNames(char **list)
+omGeneric.c:307: XFreeFontNames(fn_list);
+omGeneric.c:495: XFreeFontNames(list);
+XDefaultOMIF.c:296: XFreeFontNames(list);
+Xlib.h:2575:extern int XFreeFontNames(
+
+#### XFreeFontPath ####
+GetFPath.c:92:XFreeFontPath (char **list)
+Xlib.h:2579:extern int XFreeFontPath(
+
+#### XFreeFontSet ####
+FSWrap.c:257:XFreeFontSet(
+Xlib.h:3639:extern void XFreeFontSet(
+
+#### XFreeGC ####
+ClDisplay.c:60: XFreeGC (dpy, sp->default_gc);
+CrBFData.c:77: XFreeGC(display, gc);
+CrPFBData.c:86: XFreeGC(display, gc);
+FreeGC.c:33:XFreeGC (
+Xlib.h:2583:extern int XFreeGC(
+
+#### XFreeModifiermap ####
+imThaiFlt.c:1276: XFreeModifiermap(map);
+imThaiFlt.c:1280: XFreeModifiermap(map);
+KeyBind.c:218: XFreeModifiermap(dpy->modifiermap);
+KeyBind.c:220: dpy->free_funcs->modifiermap = XFreeModifiermap;
+KeyBind.c:245: XFreeModifiermap(event->display->modifiermap);
+ModMap.c:115:XFreeModifiermap(XModifierKeymap *map)
+ModMap.c:160: (void) XFreeModifiermap(map);
+Xlib.h:2588:extern int XFreeModifiermap(
+Xlibint.h:738: FreeModmapType modifiermap; /* XFreeModifiermap */
+
+#### XFreePixmap ####
+CrBFData.c:59: XFreePixmap(display, pix);
+CrPFBData.c:68: XFreePixmap(display, pix);
+FreePix.c:33:XFreePixmap(
+Xlib.h:2592:extern int XFreePixmap(
+
+#### XFreeStringList ####
+omGeneric.c:1171: XFreeStringList(name_list);
+omGeneric.c:1176: XFreeStringList(name_list);
+omGeneric.c:1428: XFreeStringList(oc->core.font_info.font_name_list);
+omGeneric.c:1430: XFreeStringList(oc->core.missing_list.charset_list);
+omGeneric.c:1689: XFreeStringList(om->core.required_charset.charset_list);
+TextToStr.c:110:void XFreeStringList (char **list)
+XDefaultOMIF.c:448: XFreeStringList(name_list);
+XDefaultOMIF.c:452: XFreeStringList(name_list);
+XDefaultOMIF.c:526: XFreeStringList(oc->core.font_info.font_name_list);
+XDefaultOMIF.c:539: XFreeStringList(oc->core.missing_list.charset_list);
+XDefaultOMIF.c:936: XFreeStringList(om->core.required_charset.charset_list);
+Xlib.h:1923:extern void XFreeStringList(
+
+#### XGContextFromGC ####
+CrGC.c:342:GContext XGContextFromGC(GC gc)
+Xlib.h:1591:extern GContext XGContextFromGC(
+
+#### XGeometry ####
+Geom.c:43:XGeometry (
+Xlib.h:2597:extern int XGeometry(
+
+#### XGetAtomName ####
+GetAtomNm.c:34:char *_XGetAtomName(
+GetAtomNm.c:59:char *XGetAtomName(
+GetAtomNm.c:67: if ((name = _XGetAtomName(dpy, atom))) {
+GetAtomNm.c:97:} _XGetAtomNameState;
+GetAtomNm.c:100:Bool _XGetAtomNameHandler(
+GetAtomNm.c:107: register _XGetAtomNameState *state;
+GetAtomNm.c:111: state = (_XGetAtomNameState *)data;
+GetAtomNm.c:142:XGetAtomNames (
+GetAtomNm.c:149: _XGetAtomNameState async_state;
+GetAtomNm.c:162: async.handler = _XGetAtomNameHandler;
+GetAtomNm.c:166: if (!(names_return[i] = _XGetAtomName(dpy, atoms[i]))) {
+imDefIm.c:302: if( !(str = XGetAtomName( display, selection )) )
+omGeneric.c:191: return XGetAtomName(dpy, fp);
+XDefaultOMIF.c:152: return XGetAtomName(dpy, fp);
+XKB.c:36:XkbGetAtomNameFunc _XkbGetAtomNameFunc = XGetAtomName;
+XKB.c:773: _XkbGetAtomNameFunc = (getName ? getName : XGetAtomName);
+Xlib.h:1501:extern char *XGetAtomName(
+Xlib.h:1505:extern Status XGetAtomNames(
+
+#### XGetAtomNames ####
+GetAtomNm.c:142:XGetAtomNames (
+Xlib.h:1505:extern Status XGetAtomNames(
+
+#### XGetClassHint ####
+GetHints.c:299:XGetClassHint(
+Xutil.h:424:extern Status XGetClassHint(
+
+#### XGetCommand ####
+GetHints.c:229:Status XGetCommand (
+Xlib.h:1905:extern Status XGetCommand(
+
+#### XGetDefault ####
+GetDflt.c:174:XGetDefault(
+OpenDis.c:889: /* if RM database was allocated by XGetDefault() free it */
+Xrm.c:352: /* destroy database if set up implicitly by XGetDefault() */
+Xlib.h:1511:extern char *XGetDefault(
+Xlibint.h:430:#define XlibDisplayDfltRMDB (1L << 7) /* mark if RM db from XGetDefault */
+
+#### XGetErrorDatabaseText ####
+ErrDes.c:113: (void) XGetErrorDatabaseText(dpy, "XProtoError", buf,
+ErrDes.c:130: (void) XGetErrorDatabaseText(dpy, "XProtoError", buf, "", buffer, nbytes);
+ErrDes.c:139:XGetErrorDatabaseText(
+XlibInt.c:3515: XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ);
+XlibInt.c:3517: XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d",
+XlibInt.c:3522: XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
+XlibInt.c:3536: XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d",
+XlibInt.c:3542: XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ);
+XlibInt.c:3568: XGetErrorDatabaseText(dpy, mtype, buffer, "", mesg, BUFSIZ);
+XlibInt.c:3590: XGetErrorDatabaseText(dpy, mtype, "Value", "Value 0x%x",
+XlibInt.c:3593: XGetErrorDatabaseText(dpy, mtype, "AtomID", "AtomID 0x%x",
+XlibInt.c:3596: XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
+XlibInt.c:3602: XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
+XlibInt.c:3606: XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d",
+Xlib.h:2613:extern int XGetErrorDatabaseText(
+
+#### XGetErrorText ####
+ErrDes.c:100:XGetErrorText(
+XlibInt.c:3514: XGetErrorText(dpy, event->error_code, buffer, BUFSIZ);
+Xlib.h:2622:extern int XGetErrorText(
+
+#### XGetEventData ####
+GetEventData.c:31:XGetEventData(Display *dpy, XGenericEventCookie *event)
+XlibInt.c:2805: _XFetchEventCookie (called from XGetEventData) removes a cookie from the
+Xlib.h:4021:extern Bool XGetEventData(
+
+#### XGetFontPath ####
+GetFPath.c:33:char **XGetFontPath(
+Xlib.h:1669:extern char **XGetFontPath(
+
+#### XGetFontProperty ####
+GetFProp.c:33:XGetFontProperty(
+omGeneric.c:190: if (XGetFontProperty(fs, XA_FONT, &fp))
+XDefaultOMIF.c:151: if (XGetFontProperty(fs, XA_FONT, &fp))
+Xlib.h:2629:extern Bool XGetFontProperty(
+
+#### XGetGCValues ####
+GetGCVals.c:46:Status XGetGCValues (
+omImText.c:49: XGetGCValues(dpy, gc, GET_VALUE_MASK, &values);
+Xlib.h:2635:extern Status XGetGCValues(
+
+#### XGetGeometry ####
+GetGeom.c:32:Status XGetGeometry (
+imRm.c:607: if(XGetGeometry(im->core.display, (Drawable)ic->core.focus_window,
+SetStCmap.c:75: /* already caught the XGetGeometry error in _XScreenOfWindow */
+XlibInt.c:3960: if (XGetGeometry (dpy, w, &root, &x, &y, &width, &height,
+Xlib.h:2642:extern Status XGetGeometry(
+
+#### XGetICValues ####
+ICWrap.c:281:XGetICValues(XIC ic, ...)
+Xlib.h:3907:extern char *XGetICValues(
+
+#### XGetIMValues ####
+ICWrap.c:195:XGetIMValues(XIM im, ...)
+Xlib.h:3859:extern char *XGetIMValues(
+
+#### XGetIconName ####
+FetchName.c:66:Status XGetIconName (
+Xlib.h:2654:extern Status XGetIconName(
+
+#### XGetIconSizes ####
+GetHints.c:169: * XGetIconSizes reads the property
+GetHints.c:173:Status XGetIconSizes (
+Xutil.h:430:extern Status XGetIconSizes(
+
+#### XGetImage ####
+GetImage.c:47:XImage *XGetImage (
+GetImage.c:136: temp_image = XGetImage(dpy, d, x, y, width, height,
+WrBitF.c:115: image = XGetImage(display, bitmap, 0,0,width, height, 1L, XYPixmap);
+Xlib.h:1457:extern XImage *XGetImage(
+
+#### XGetInputFocus ####
+GetIFocus.c:33:XGetInputFocus(
+Xlib.h:2660:extern int XGetInputFocus(
+
+#### XGetKeyboardControl ####
+GetKCnt.c:33:XGetKeyboardControl (
+Xlib.h:456:/* Data structure for XGetKeyboardControl */
+Xlib.h:2666:extern int XGetKeyboardControl(
+
+#### XGetKeyboardMapping ####
+GetPntMap.c:87:XGetKeyboardMapping (Display *dpy,
+KeyBind.c:268: keysyms = XGetKeyboardMapping (dpy, (KeyCode) dpy->min_keycode,
+Xlib.h:1701:extern KeySym *XGetKeyboardMapping(
+
+#### XGetModifierMapping ####
+imThaiFlt.c:1270: map = XGetModifierMapping (d);
+KeyBind.c:214: if (! (map = XGetModifierMapping(dpy)))
+ModMap.c:34:XGetModifierMapping(register Display *dpy)
+Xlib.h:1424:extern XModifierKeymap *XGetModifierMapping(
+
+#### XGetMotionEvents ####
+GetMoEv.c:33:XTimeCoord *XGetMotionEvents(
+Xlib.h:467:/* Data structure for XGetMotionEvents. */
+Xlib.h:1406:extern XTimeCoord *XGetMotionEvents(
+
+#### XGetNormalHints ####
+GetHints.c:159:XGetNormalHints (
+Xutil.h:437:extern Status XGetNormalHints(
+
+#### XGetOCValues ####
+OCWrap.c:117:XGetOCValues(XOC oc, ...)
+Xlcint.h:430:typedef char* (*XGetOCValuesProc)(
+Xlcint.h:544: XGetOCValuesProc get_values;
+Xlib.h:3626:extern char *XGetOCValues(
+
+#### XGetOMValues ####
+OMWrap.c:94:XGetOMValues(XOM om, ...)
+Xlcint.h:380:typedef char* (*XGetOMValuesProc)(
+Xlcint.h:395: XGetOMValuesProc get_values;
+Xlib.h:3595:extern char *XGetOMValues(
+
+#### XGetPixel ####
+ImUtil.c:36:static unsigned long _XGetPixel(XImage *, int, int);
+ImUtil.c:37:static unsigned long _XGetPixel1(XImage *, int, int);
+ImUtil.c:38:static unsigned long _XGetPixel8(XImage *, int, int);
+ImUtil.c:39:static unsigned long _XGetPixel16(XImage *, int, int);
+ImUtil.c:40:static unsigned long _XGetPixel32(XImage *, int, int);
+ImUtil.c:98: * _XGetPixel Reads a pixel from an image data structure
+ImUtil.c:99: * _XGetPixel32 Reads a pixel from a 32-bit Z image data structure
+ImUtil.c:100: * _XGetPixel16 Reads a pixel from a 16-bit Z image data structure
+ImUtil.c:101: * _XGetPixel8 Reads a pixel from an 8-bit Z image data structure
+ImUtil.c:102: * _XGetPixel1 Reads a pixel from an 1-bit image data structure
+ImUtil.c:277: image->f.get_pixel = _XGetPixel8;
+ImUtil.c:281: image->f.get_pixel = _XGetPixel1;
+ImUtil.c:285: image->f.get_pixel = _XGetPixel32;
+ImUtil.c:289: image->f.get_pixel = _XGetPixel16;
+ImUtil.c:292: image->f.get_pixel = _XGetPixel;
+ImUtil.c:470:static unsigned long _XGetPixel (
+ImUtil.c:533:static unsigned long _XGetPixel32 (
+ImUtil.c:561: return XGetPixel(ximage, x, y);
+ImUtil.c:565:static unsigned long _XGetPixel16 (
+ImUtil.c:585: return XGetPixel(ximage, x, y);
+ImUtil.c:589:static unsigned long _XGetPixel8 (
+ImUtil.c:604: return XGetPixel(ximage, x, y);
+ImUtil.c:608:static unsigned long _XGetPixel1 (
+ImUtil.c:628: return XGetPixel(ximage, x, y);
+ImUtil.c:888: pixel = XGetPixel(ximage, col, row);
+ImUtil.c:948: pixel = XGetPixel(srcimg, col, row);
+ImUtil.c:1009: register unsigned long pixel = XGetPixel(ximage, x, y);
+Macros.c:259:#undef XGetPixel
+Macros.c:260:unsigned long XGetPixel(
+PutImage.c:1000: XPutPixel(&img, i, j, XGetPixel(image, req_xoffset + i,
+WrBitF.c:67: if (XGetPixel(image, x, y))
+Xutil.h:198:extern unsigned long XGetPixel(
+Xutil.h:219:#define XGetPixel(ximage, x, y) \
+
+#### XGetPointerControl ####
+GetPCnt.c:33:XGetPointerControl(
+Xlib.h:2671:extern int XGetPointerControl(
+
+#### XGetPointerMapping ####
+GetPntMap.c:39:int XGetPointerMapping (
+Xlib.h:2678:extern int XGetPointerMapping(
+
+#### XGetRGBColormaps ####
+GetRGBCMap.c:38:Status XGetRGBColormaps (
+GetStCmap.c:74: stat = XGetRGBColormaps (dpy, w, &stdcmaps, &nstdcmaps, property);
+imRmAttr.c:958: if (!(XGetRGBColormaps(ic->core.im->core.display,
+imRmAttr.c:1009: if (!(XGetRGBColormaps(ic->core.im->core.display,
+imRm.c:2823: if (!(XGetRGBColormaps(ic->core.im->core.display,
+imRm.c:2845: if (!(XGetRGBColormaps(ic->core.im->core.display,
+Xutil.h:443:extern Status XGetRGBColormaps(
+
+#### XGetScreenSaver ####
+GetSSaver.c:33:XGetScreenSaver(
+Xlib.h:2684:extern int XGetScreenSaver(
+
+#### XGetSelectionOwner ####
+GetSOwner.c:32:Window XGetSelectionOwner(
+imDefIm.c:422: if((im_window = XGetSelectionOwner(display, atoms[i])) == (Window)None)
+imInsClbk.c:112: if(XGetSelectionOwner (display, atoms[ii])) {
+Xlib.h:1633:extern Window XGetSelectionOwner(
+
+#### XGetSizeHints ####
+GetHints.c:59:Status XGetSizeHints (
+GetHints.c:155: return (XGetSizeHints(dpy, w, zhints, XA_WM_ZOOM_HINTS));
+GetHints.c:164: return (XGetSizeHints(dpy, w, hints, XA_WM_NORMAL_HINTS));
+Xutil.h:451:extern Status XGetSizeHints(
+
+#### XGetStandardColormap ####
+GetStCmap.c:64:Status XGetStandardColormap (
+Xutil.h:458:extern Status XGetStandardColormap(
+
+#### XGetSubImage ####
+GetImage.c:122:XImage *XGetSubImage(
+Xlib.h:1467:extern XImage *XGetSubImage(
+
+#### XGetTextProperty ####
+GetHints.c:239: if (!XGetTextProperty (dpy, w, &tp, XA_WM_COMMAND)) return 0;
+GetTxtProp.c:60:Status XGetTextProperty (
+GetTxtProp.c:95: return (XGetTextProperty (dpy, w, tp, XA_WM_NAME));
+GetTxtProp.c:103: return (XGetTextProperty (dpy, w, tp, XA_WM_ICON_NAME));
+GetTxtProp.c:111: return (XGetTextProperty (dpy, w, tp, XA_WM_CLIENT_MACHINE));
+Xutil.h:465:extern Status XGetTextProperty(
+
+#### XGetTransientForHint ####
+GetHints.c:269:XGetTransientForHint(
+Xlib.h:2692:extern Status XGetTransientForHint(
+
+#### XGetVisualInfo ####
+cmsCmap.c:143: visualList = XGetVisualInfo(dpy, VisualScreenMask, &visualTemplate,
+VisUtil.c:56:XVisualInfo *XGetVisualInfo(
+Xutil.h:472:extern XVisualInfo *XGetVisualInfo(
+
+#### XGetWMClientMachine ####
+GetTxtProp.c:106:Status XGetWMClientMachine (
+Xutil.h:479:extern Status XGetWMClientMachine(
+
+#### XGetWMColormapWindows ####
+GetWMCMapW.c:56:Status XGetWMColormapWindows (
+Xlib.h:1911:extern Status XGetWMColormapWindows(
+
+#### XGetWMHints ####
+GetHints.c:106:XWMHints *XGetWMHints (
+Xutil.h:485:extern XWMHints *XGetWMHints(
+
+#### XGetWMIconName ####
+GetTxtProp.c:98:Status XGetWMIconName (
+Xutil.h:490:extern Status XGetWMIconName(
+
+#### XGetWMName ####
+GetTxtProp.c:90:Status XGetWMName (
+Xutil.h:496:extern Status XGetWMName(
+
+#### XGetWMNormalHints ####
+GetNrmHint.c:120:Status XGetWMNormalHints (
+Xutil.h:502:extern Status XGetWMNormalHints(
+
+#### XGetWMProtocols ####
+GetWMProto.c:56:Status XGetWMProtocols (
+Xlib.h:1883:extern Status XGetWMProtocols(
+
+#### XGetWMSizeHints ####
+GetNrmHint.c:63:Status XGetWMSizeHints (
+GetNrmHint.c:126: return (XGetWMSizeHints (dpy, w, hints, supplied, XA_WM_NORMAL_HINTS));
+Xutil.h:509:extern Status XGetWMSizeHints(
+
+#### XGetWindowAttributes ####
+cmsCmap.c:267: * it may require the use of XGetWindowAttributes (a round trip request)
+cmsCmap.c:437: * cmap, so use XGetWindowAttributes() to extract that
+cmsCmap.c:453: if (XGetWindowAttributes(dpy, pRec->windowID, &windowAttr)) {
+GetWAttrs.c:88:_XGetWindowAttributes(
+GetWAttrs.c:141:XGetWindowAttributes(
+GetWAttrs.c:149: ret = _XGetWindowAttributes(dpy, w, attr);
+imDefLkup.c:469: if (!XGetWindowAttributes(im->core.display, ic->core.focus_window, &atr))
+imInsClbk.c:197: XGetWindowAttributes( display, root, &attr );
+imRm.c:638: if(XGetWindowAttributes(im->core.display, ic->core.client_window,
+imTrX.c:184: XGetWindowAttributes(im->core.display, spec->lib_connect_wid, &atr);
+Xlib.h:2713:extern Status XGetWindowAttributes(
+Xlibint.h:1328:Status _XGetWindowAttributes(
+
+#### XGetWindowProperty ####
+cmsProp.c:131: xgwp_ret = XGetWindowProperty (pDpy, w, property, 0, len, False,
+FetchName.c:46: if (XGetWindowProperty(dpy, w, XA_WM_NAME, 0L, (long)BUFSIZ, False, XA_STRING,
+FetchName.c:54: /* The data returned by XGetWindowProperty is guarranteed to
+FetchName.c:76: if (XGetWindowProperty(dpy, w, XA_WM_ICON_NAME, 0L, (long)BUFSIZ, False,
+FetchName.c:85: /* The data returned by XGetWindowProperty is guarranteed to
+GetHints.c:70: if (XGetWindowProperty(dpy, w, property, 0L,
+GetHints.c:116: if (XGetWindowProperty(dpy, w, XA_WM_HINTS,
+GetHints.c:188: if (XGetWindowProperty(dpy, w, XA_WM_ICON_SIZE, 0L, 60L,
+GetHints.c:279: if (XGetWindowProperty(dpy, w, XA_WM_TRANSIENT_FOR, 0L, 1L, False,
+GetHints.c:311: if (XGetWindowProperty(dpy, w, XA_WM_CLASS, 0L, (long)BUFSIZ, False,
+GetNrmHint.c:76: if (XGetWindowProperty (dpy, w, property, 0L,
+GetProp.c:34:XGetWindowProperty(
+GetRGBCMap.c:57: if (XGetWindowProperty (dpy, w, property, 0L, 1000000L, False,
+GetTxtProp.c:71: if (XGetWindowProperty (display, window, property, 0L, 1000000L, False,
+GetWMCMapW.c:72: if (XGetWindowProperty (dpy, w, prop,
+GetWMProto.c:72: if (XGetWindowProperty (dpy, w, prop,
+imDefIm.c:264: if( XGetWindowProperty( display, window, target, 0L, 1000000L,
+imDefIm.c:408: if(XGetWindowProperty(display, RootWindow(display, 0),
+imInsClbk.c:99: if( XGetWindowProperty( display, RootWindow(display, 0), ims, 0L, 1000000L,
+imTrX.c:366: return_code = XGetWindowProperty(im->core.display,
+imTrX.c:380: if (XGetWindowProperty(im->core.display,
+imTrX.c:401: if (XGetWindowProperty(im->core.display,
+imTrX.c:419: return_code = XGetWindowProperty(im->core.display,
+ScrResStr.c:44: XGetWindowProperty(screen->display, screen->root, prop_name,
+StBytes.c:68: if (XGetWindowProperty(dpy, RootWindow(dpy, 0), n_to_atom[buffer],
+Xatomtype.h:53: * This files defines crock C structures for calling XGetWindowProperty and
+Xlib.h:2698:extern int XGetWindowProperty(
+
+#### XGetZoomHints ####
+GetHints.c:150:XGetZoomHints (
+Xutil.h:517:extern Status XGetZoomHints(
+
+#### XGrabButton ####
+GrButton.c:33:XGrabButton(
+Xlib.h:2719:extern int XGrabButton(
+
+#### XGrabKey ####
+GrKeybd.c:31:int XGrabKeyboard (
+GrKey.c:33:XGrabKey(
+Xlib.h:2732:extern int XGrabKey(
+Xlib.h:2742:extern int XGrabKeyboard(
+
+#### XGrabKeyboard ####
+GrKeybd.c:31:int XGrabKeyboard (
+Xlib.h:2742:extern int XGrabKeyboard(
+
+#### XGrabPointer ####
+GrPointer.c:32:int XGrabPointer(
+Xlib.h:2751:extern int XGrabPointer(
+
+#### XGrabServer ####
+GrServer.c:33:XGrabServer (register Display *dpy)
+Xlib.h:2763:extern int XGrabServer(
+
+#### XHeightMMOfScreen ####
+Macros.c:220:int XHeightMMOfScreen(Screen *s) { return (HeightMMOfScreen(s)); }
+Xlib.h:2767:extern int XHeightMMOfScreen(
+
+#### XHeightOfScreen ####
+Macros.c:216:int XHeightOfScreen(Screen *s) { return (HeightOfScreen(s)); }
+Xlib.h:2771:extern int XHeightOfScreen(
+
+#### XIMOfIC ####
+ICWrap.c:366:XIMOfIC(XIC ic)
+imThaiFlt.c:568: im = (Xim) XIMOfIC((XIC)ic);
+imThaiFlt.c:1194: im = (Xim) XIMOfIC((XIC)ic);
+Xlib.h:3911:extern XIM XIMOfIC(
+
+#### XIconifyWindow ####
+Iconify.c:65:Status XIconifyWindow (
+Xlib.h:1895:extern Status XIconifyWindow(
+
+#### XIfEvent ####
+IfEvent.c:38:XIfEvent (
+imDefIm.c:257: XIfEvent(display, &event, _CheckSNEvent, (XPointer)&window);
+imTrX.c:197: XIfEvent(im->core.display, &event, _CheckConnect, (XPointer)im);
+imTrX.c:476: XIfEvent(im->core.display, ev, _CheckCMEvent, (XPointer)im);
+Xlib.h:2775:extern int XIfEvent(
+
+#### XImageByteOrder ####
+Macros.c:139:int XImageByteOrder(Display *dpy) { return (ImageByteOrder(dpy)); }
+Xlib.h:2786:extern int XImageByteOrder(
+
+#### XInitExtension ####
+Font.c:337: XExtCodes *codes = XInitExtension(dpy, XF86BIGFONTNAME);
+InitExt.c:41:XExtCodes *XInitExtension (
+XKBUse.c:739: if ((codes = XInitExtension(dpy, XkbName)) == NULL) {
+Xlib.h:1749:extern XExtCodes *XInitExtension(
+
+#### XInitImage ####
+ImUtil.c:271:void _XInitImageFuncPtrs (
+ImUtil.c:383: _XInitImageFuncPtrs (image);
+ImUtil.c:388:Status XInitImage (XImage *image)
+ImUtil.c:422: _XInitImageFuncPtrs (image);
+ImUtil.c:560: _XInitImageFuncPtrs(ximage);
+ImUtil.c:584: _XInitImageFuncPtrs(ximage);
+ImUtil.c:603: _XInitImageFuncPtrs(ximage);
+ImUtil.c:627: _XInitImageFuncPtrs(ximage);
+ImUtil.c:747: _XInitImageFuncPtrs(ximage);
+ImUtil.c:772: _XInitImageFuncPtrs(ximage);
+ImUtil.c:787: _XInitImageFuncPtrs(ximage);
+ImUtil.c:816: _XInitImageFuncPtrs(ximage);
+ImUtil.c:868: _XInitImageFuncPtrs (subimage);
+PutImage.c:997: _XInitImageFuncPtrs(&img);
+ImUtil.h:28:_XInitImageFuncPtrs(
+Xlib.h:1454:extern Status XInitImage(
+
+#### XInitThreads ####
+locking.c:572:Status XInitThreads(void)
+locking.c:583: "XInitThreads called, but no libthread in the calling program!\n" );
+locking.c:621:Status XInitThreads(void)
+XlibInt.c:81:/* these pointers get initialized by XInitThreads */
+XlibInt.c:900:/* NOTE: only called if !XTHREADS, or when XInitThreads wasn't called. */
+Xlib.h:1735:extern Status XInitThreads(
+
+#### XInsertModifiermapEntry ####
+ModMap.c:125:XInsertModifiermapEntry(XModifierKeymap *map,
+Xlib.h:1428:extern XModifierKeymap *XInsertModifiermapEntry(
+
+#### XInstallColormap ####
+InsCmap.c:33:XInstallColormap(
+Xlib.h:2790:extern int XInstallColormap(
+
+#### XInternAtom ####
+GetWMCMapW.c:68: prop = XInternAtom(dpy, "WM_COLORMAP_WINDOWS", False);
+GetWMProto.c:68: prop = XInternAtom(dpy, "WM_PROTOCOLS", False);
+Iconify.c:72: prop = XInternAtom (dpy, "WM_CHANGE_STATE", False);
+imDefIm.c:337: if((locales = XInternAtom(display, XIM_LOCALES, True)) == (Atom)None)
+imDefIm.c:360: if((transport = XInternAtom(display, XIM_TRANSPORT, True)) == (Atom)None)
+imDefIm.c:405: if((imserver = XInternAtom(display, XIM_SERVERS, True)) == (Atom)None)
+imInsClbk.c:94: if( (ims = XInternAtom( display, XIM_SERVERS, True )) == None ||
+imTrX.c:286: atom = XInternAtom(im->core.display, _NewAtom(atomName), False);
+imTrX.c:502: spec->improtocolid = XInternAtom(im->core.display, _XIM_PROTOCOL, False);
+imTrX.c:503: spec->imconnectid = XInternAtom(im->core.display, _XIM_XCONNECT, False);
+imTrX.c:504: spec->immoredataid = XInternAtom(im->core.display, _XIM_MOREDATA, False);
+IntAtom.c:57:Atom _XInternAtom(
+IntAtom.c:162:XInternAtom (
+IntAtom.c:175: if ((atom = _XInternAtom(dpy, name, onlyIfExists, &sig, &idx, &n))) {
+IntAtom.c:240:XInternAtoms (
+IntAtom.c:265: if (!(atoms_return[i] = _XInternAtom(dpy, names[i], onlyIfExists,
+lcPrTxt.c:142: else if (encoding == XInternAtom(dpy, "UTF8_STRING", False))
+lcPrTxt.c:144: else if (encoding == XInternAtom(dpy, "COMPOUND_TEXT", False))
+lcPrTxt.c:146: else if (encoding == XInternAtom(dpy, XLC_PUBLIC(lcd, encoding_name), False))
+lcTxtPr.c:102: encoding = XInternAtom(dpy, "UTF8_STRING", False);
+lcTxtPr.c:106: encoding = XInternAtom(dpy, "COMPOUND_TEXT", False);
+lcTxtPr.c:110: encoding = XInternAtom(dpy, XLC_PUBLIC(lcd, encoding_name), False);
+lcTxtPr.c:176: encoding = XInternAtom(dpy, "COMPOUND_TEXT", False);
+LRGB.c:467: Atom CorrectAtom = XInternAtom (dpy, XDCCC_CORRECT_ATOM_NAME, True);
+LRGB.c:468: Atom MatrixAtom = XInternAtom (dpy, XDCCC_MATRIX_ATOM_NAME, True);
+ScrResStr.c:42: prop_name = XInternAtom(screen->display, "SCREEN_RESOURCES", True);
+SetWMCMapW.c:68: prop = XInternAtom (dpy, "WM_COLORMAP_WINDOWS", False);
+SetWMProto.c:68: prop = XInternAtom (dpy, "WM_PROTOCOLS", False);
+WMProps.c:143: XChangeProperty (dpy, w, XInternAtom(dpy, "WM_LOCALE_NAME", False),
+XKB.c:35:XkbInternAtomFunc _XkbInternAtomFunc = XInternAtom;
+XKB.c:772: _XkbInternAtomFunc = (getAtom ? getAtom : XInternAtom);
+XKBUse.c:692: xkbi->composeLED = XInternAtom(dpy, str, False);
+XKBUse.c:704: xkbi->composeLED = XInternAtom(dpy, "Compose", False);
+Xlib.h:1537:extern Atom XInternAtom(
+Xlib.h:1542:extern Status XInternAtoms(
+Xlibint.h:185: struct _XDisplayAtoms *atoms; /* for XInternAtom */
+
+#### XInternAtoms ####
+IntAtom.c:240:XInternAtoms (
+Xlib.h:1542:extern Status XInternAtoms(
+
+#### XInternalConnectionNumbers ####
+XlibInt.c:2457: * XInternalConnectionNumbers or, more typically, by registering
+XlibInt.c:2548:/* XInternalConnectionNumbers
+XlibInt.c:2558:XInternalConnectionNumbers(
+XlibInt.c:2569: fprintf(stderr, "XInternalConnectionNumbers: Got called.\n");
+Xlib.h:3980:extern Status XInternalConnectionNumbers(
+
+#### XIntersectRegion ####
+Region.c:346: else XIntersectRegion(a,b,c)
+Region.c:486:XIntersectRegion(
+Xutil.h:523:extern int XIntersectRegion(
+
+#### XKeycodeToKeysym ####
+KeyBind.c:57:#define XKeycodeToKeysym _XKeycodeToKeysym
+KeyBind.c:118:XKeycodeToKeysym(Display *dpy,
+XKBBind.c:96:XKeycodeToKeysym(Display *dpy,
+XKBBind.c:107: return _XKeycodeToKeysym(dpy, kc, col);
+XKBBind.c:225: return XKeycodeToKeysym(dpy, event->keycode, col);
+XKBlibint.h:133:extern KeySym _XKeycodeToKeysym(
+Xlib.h:1688:extern KeySym XKeycodeToKeysym(
+
+#### XKeysymToKeycode ####
+imThaiFlt.c:1266: KeyCode numlock_keycode = XKeysymToKeycode (d, XK_Num_Lock);
+KeyBind.c:58:#define XKeysymToKeycode _XKeysymToKeycode
+KeyBind.c:132:XKeysymToKeycode(
+XKBBind.c:153:XKeysymToKeycode(Display *dpy, KeySym ks)
+XKBBind.c:158: return _XKeysymToKeycode(dpy, ks);
+XKBlibint.h:143:extern KeyCode _XKeysymToKeycode(
+Xlib.h:2795:extern KeyCode XKeysymToKeycode(
+
+#### XKeysymToString ####
+KeysymStr.c:71:char *XKeysymToString(KeySym ks)
+Xlib.h:1519:extern char *XKeysymToString(
+
+#### XKillClient ####
+KillCl.c:33:XKillClient(
+Xlib.h:2800:extern int XKillClient(
+
+#### XLastKnownRequestProcessed ####
+Macros.c:164:unsigned long XLastKnownRequestProcessed(Display *dpy)
+Xlib.h:1810:extern unsigned long XLastKnownRequestProcessed(
+
+#### XListDepths ####
+Depths.c:34: * XListDepths - return info from connection setup
+Depths.c:36:int *XListDepths (
+Xlib.h:1867:extern int *XListDepths(
+
+#### XListExtensions ####
+ListExt.c:33:char **XListExtensions(
+Xlib.h:1673:extern char **XListExtensions(
+
+#### XListFonts ####
+FontInfo.c:42:char **XListFontsWithInfo(
+FontInfo.c:152: nbytes++; /* make first string 1 byte longer, to match XListFonts */
+FontInfo.c:159: *flist[0] = 0; /* zero to distinguish from XListFonts */
+FontNames.c:35:XListFonts(
+omGeneric.c:302: fn_list = XListFontsWithInfo(dpy, font_set->font_name, 1, &fn_num,
+omGeneric.c:489: list = XListFonts(oc->core.om->core.display, pattern, 1, &count);
+omGeneric.c:638: if ((fn_list = XListFontsWithInfo(dpy, pattern,
+omGeneric.c:774: /* This may mot be needed anymore as XListFonts() takes care of this */
+XDefaultOMIF.c:292: list = XListFonts(dpy, pattern, 1, &count);
+XDefaultOMIF.c:349: if ((fn_list = XListFontsWithInfo(dpy, font_name,
+Xlib.h:1656:extern char **XListFonts(
+Xlib.h:1662:extern char **XListFontsWithInfo(
+
+#### XListFontsWithInfo ####
+FontInfo.c:42:char **XListFontsWithInfo(
+omGeneric.c:302: fn_list = XListFontsWithInfo(dpy, font_set->font_name, 1, &fn_num,
+omGeneric.c:638: if ((fn_list = XListFontsWithInfo(dpy, pattern,
+XDefaultOMIF.c:349: if ((fn_list = XListFontsWithInfo(dpy, font_name,
+Xlib.h:1662:extern char **XListFontsWithInfo(
+
+#### XListHosts ####
+LiHosts.c:71:XHostAddress *XListHosts (
+Xlib.h:1682:extern XHostAddress *XListHosts(
+
+#### XListInstalledColormaps ####
+LiICmaps.c:32:Colormap *XListInstalledColormaps(
+Xlib.h:1651:extern Colormap *XListInstalledColormaps(
+
+#### XListPixmapFormats ####
+PixFormats.c:34: * XListPixmapFormats - return info from connection setup
+PixFormats.c:37:XPixmapFormatValues *XListPixmapFormats (
+Xlib.h:1863:extern XPixmapFormatValues *XListPixmapFormats(
+
+#### XListProperties ####
+LiProps.c:32:Atom *XListProperties(
+Xlib.h:1677:extern Atom *XListProperties(
+
+#### XLoadFont ####
+Cursor.c:46: dpy->cursor_font = XLoadFont (dpy, CURSORFONT);
+LoadFont.c:33:XLoadFont (
+Xlib.h:1581:extern Font XLoadFont(
+
+#### XLoadQueryFont ####
+Font.c:91:XFontStruct *XLoadQueryFont(
+Font.c:684: fs = XLoadQueryFont(dpy, buf);
+omGeneric.c:210: fd->font = XLoadQueryFont(dpy, fd->xlfd_name);
+omGeneric.c:233: font_set->font = XLoadQueryFont(dpy, font_set->font_name);
+omXChar.c:288: font_set->font = XLoadQueryFont(oc->core.om->core.display,
+XDefaultOMIF.c:197: font_set->font = XLoadQueryFont(dpy, font_set->font_name);
+XDefaultOMIF.c:298: fs = XLoadQueryFont(dpy, pattern);
+Xlib.h:1395:extern XFontStruct *XLoadQueryFont(
+
+#### XLocaleOfFontSet ####
+FSWrap.c:225:XLocaleOfFontSet(XFontSet font_set)
+Xlib.h:3654:extern char *XLocaleOfFontSet(
+
+#### XLocaleOfIM ####
+IMWrap.c:155:XLocaleOfIM(XIM im)
+Xlib.h:3871:extern char *XLocaleOfIM(
+
+#### XLocaleOfOM ####
+OMWrap.c:126:XLocaleOfOM(XOM om)
+Xlib.h:3604:extern char *XLocaleOfOM(
+
+#### XLockDisplay ####
+LockDis.c:43:XLockDisplay(
+LockDis.c:52: * XLockDisplay returns, in case they have any side effects the
+LockDis.c:53: * caller of XLockDisplay was trying to protect against.
+LockDis.c:54: * XLockDisplay puts itself at the head of the event waiters queue
+locking.c:153:static void _XLockDisplayWarn(
+locking.c:451:static void _XLockDisplay(
+locking.c:457: _XLockDisplayWarn(dpy, file, line);
+locking.c:478: _XLockDisplayWarn(dpy, file, line);
+locking.c:502: /* signal other threads that might be waiting in XLockDisplay */
+locking.c:547: xcondition_set_name(dpy->lock->cv, "XLockDisplay");
+locking.c:550: dpy->lock_fns->lock_display = _XLockDisplay;
+locking.c:561: dpy->lock->lock_wait = NULL; /* filled in by XLockDisplay() */
+XlibInt.c:1137: * or XLockDisplay
+XlibInt.c:1142: /* some thread is in XProcessInternalConnection or XLockDisplay
+XlibInt.c:1367: * or XLockDisplay
+XlibInt.c:1372: /* some thread is in XProcessInternalConnection or XLockDisplay
+locking.h:64: /* for XLockDisplay */
+locking.h:65: int locking_level; /* how many times into XLockDisplay we are */
+locking.h:66: xthread_t locking_thread; /* thread that did XLockDisplay */
+locking.h:67: xcondition_t cv; /* wait if another thread has XLockDisplay */
+Xlib.h:1739:extern void XLockDisplay(
+
+#### XLookupColor ####
+LookupCol.c:36:XLookupColor (
+Xcmsint.h:74: * XLookupColor()
+Xlib.h:2805:extern Status XLookupColor(
+
+#### XLookupKeysym ####
+KeyBind.c:59:#define XLookupKeysym _XLookupKeysym
+KeyBind.c:150:XLookupKeysym(
+XKBBind.c:218:XLookupKeysym(register XKeyEvent * event, int col)
+XKBBind.c:223: return _XLookupKeysym(event, col);
+XKBlibint.h:148:extern KeySym _XLookupKeysym(
+Xlib.h:1697:extern KeySym XLookupKeysym(
+
+#### XLookupString ####
+imConv.c:47: * rather than just call _XLookupString (i.e. the pre-XKB XLookupString)
+imConv.c:49: * _XLookupString doesn't grok.
+imConv.c:54:#define XLOOKUPSTRING XLookupString
+imConv.c:148: ret = XLookupString(event, (char *)buffer, nbytes, keysym, status);
+imDefFlt.c:55: XLookupString(ev, buf, BUFSIZE, &keysym, NULL);
+imLcFlt.c:55: XLookupString((XKeyEvent *)ev, buf, sizeof(buf), &keysym, NULL);
+imLcFlt.c:99: XLookupString((XKeyEvent *)ev, buf, sizeof(buf), &keysym, NULL);
+KeyBind.c:61:#define XLookupString _XLookupString
+KeyBind.c:876:XLookupString (
+XDefaultIMIF.c:419: length = XLookupString(ev, buffer, bytes, keysym, &NotSupportedYet);
+XDefaultIMIF.c:445: length = XLookupString(ev, mb_buf, wlen, keysym, &NotSupportedYet);
+XKBBind.c:672:XLookupString(register XKeyEvent *event,
+XKBBind.c:724: /* that were used to compute the symbol here, but pre-XKB XLookupString */
+XKBUse.c:714: "XKEYBOARD XLookupString: %slatin-1, %s lookup modifiers\n",
+XKBUse.c:718: "XKEYBOARD XLookupString: %sconsume shift and lock, %scontrol fallback\n",
+XKBlibint.h:178:extern int _XLookupString(
+Xlibint.h:172: KeySym lock_meaning; /* for XLookupString */
+Xlibint.h:183: struct _XKeytrans *key_bindings; /* for XLookupString */
+Xutil.h:230: * Compose sequence status structure, used in calling XLookupString.
+Xutil.h:535:extern int XLookupString(
+
+#### XLowerWindow ####
+LowerWin.c:33:XLowerWindow(
+Xlib.h:2813:extern int XLowerWindow(
+
+#### XMapRaised ####
+MapRaised.c:33:XMapRaised (
+Xlib.h:2818:extern int XMapRaised(
+
+#### XMapSubwindows ####
+MapSubs.c:33:XMapSubwindows(
+Xlib.h:2823:extern int XMapSubwindows(
+
+#### XMapWindow ####
+MapWindow.c:33:XMapWindow (
+Xlib.h:2828:extern int XMapWindow(
+
+#### XMaskEvent ####
+MaskEvent.c:44:XMaskEvent (
+Xlib.h:2833:extern int XMaskEvent(
+
+#### XMatchVisualInfo ####
+VisUtil.c:189:Status XMatchVisualInfo(
+Xutil.h:543:extern Status XMatchVisualInfo(
+
+#### XMaxCmapsOfScreen ####
+Macros.c:228:int XMaxCmapsOfScreen(Screen *s) { return (MaxCmapsOfScreen(s)); }
+Xlib.h:2839:extern int XMaxCmapsOfScreen(
+
+#### XMaxRequestSize ####
+Misc.c:32:long XMaxRequestSize(Display *dpy)
+Xlib.h:1714:extern long XMaxRequestSize(
+
+#### XMinCmapsOfScreen ####
+Macros.c:226:int XMinCmapsOfScreen(Screen *s) { return (MinCmapsOfScreen(s)); }
+Xlib.h:2843:extern int XMinCmapsOfScreen(
+
+#### XMoveResizeWindow ####
+ConfWind.c:33:XMoveResizeWindow(
+Xlib.h:2847:extern int XMoveResizeWindow(
+
+#### XMoveWindow ####
+MoveWin.c:33:XMoveWindow (
+Xlib.h:2856:extern int XMoveWindow(
+
+#### XNewModifiermap ####
+ModMap.c:97:XNewModifiermap(int keyspermodifier)
+ModMap.c:149: if ((newmap = XNewModifiermap(map->max_keypermod+1)) == NULL)
+Xlib.h:1438:extern XModifierKeymap *XNewModifiermap(
+
+#### XNextEvent ####
+NextEvent.c:38:XNextEvent (
+XlibInt.c:2807: (called by XNextEvent).
+XlibInt.c:2850: * next call to XNextEvent().
+Xlib.h:2863:extern int XNextEvent(
+
+#### XNextRequest ####
+Macros.c:142:unsigned long XNextRequest(Display *dpy)
+Macros.c:147:/* XNextRequest() differs from the rest of the functions here because it is
+Macros.c:151: * but we can at least make XNextRequest() do the right thing.
+Macros.c:153:unsigned long XNextRequest(Display *dpy)
+Macros.c:157: next_request = _XNextRequest(dpy);
+Xlib.h:1807:extern unsigned long XNextRequest(
+
+#### XNoOp ####
+Macros.c:293:XNoOp (register Display *dpy)
+Xlib.h:2868:extern int XNoOp(
+
+#### XOMOfOC ####
+OCWrap.c:85:XOMOfOC(XOC oc)
+Xlib.h:3617:extern XOM XOMOfOC(
+
+#### XOffsetRegion ####
+Region.c:299:XOffsetRegion(
+Region.c:347:#define ZShiftRegion(a,b) if (xdir) XOffsetRegion(a,b,0); \
+Region.c:348: else XOffsetRegion(a,0,b)
+Region.c:397: XOffsetRegion(r, dx, dy);
+Xutil.h:551:extern int XOffsetRegion(
+
+#### XOpenDisplay ####
+ConnDis.c:1011: * so we can tell XOpenDisplay to not bother looking for it by
+DisName.c:32: * Returns the name of the display XOpenDisplay would use. This is better
+DisName.c:39: * For example, this is used in XOpenDisplay() as
+OpenDis.c:111:XOpenDisplay (
+OpenDis.c:152: fprintf(stderr, "\nXOpenDisplay: Called with display [%s].\n", display);
+OpenDis.c:228: fprintf(stderr, "\nXOpenDisplay: Connected display with dpy->fd = [%d].\n", dpy->fd);
+OpenDis.c:808: fprintf(stderr, "XOpenDisplay: Returning display at [%p].\n", dpy);
+OpenDis.c:843: * Display. It is used by XOpenDisplay if it runs out of memory,
+OpenDis.c:846: * by XOpenDisplay before the Display structure is fully formed.
+OpenDis.c:847: * XOpenDisplay must be sure to initialize all the pointers to NULL
+OpenDis.c:975:/* OutOfMemory is called if malloc fails. XOpenDisplay returns NULL
+XKB.c:747: dpy = XOpenDisplay(name);
+Xlib.h:1484:extern Display *XOpenDisplay(
+
+#### XOpenIM ####
+IMWrap.c:115:XOpenIM(Display *display, XrmDatabase rdb, char *res_name, char *res_class)
+Xlcint.h:237:typedef XIM (*XOpenIMProc)(
+Xlcint.h:317: XOpenIMProc open_im;
+Xlib.h:3848:extern XIM XOpenIM(
+
+#### XOpenOM ####
+FSWrap.c:178: om = XOpenOM(dpy, NULL, NULL, NULL);
+OMWrap.c:33:XOpenOM(Display *dpy, XrmDatabase rdb, _Xconst char *res_name,
+Xlcint.h:229:typedef XOM (*XOpenOMProc)(
+Xlcint.h:316: XOpenOMProc open_om;
+Xlib.h:3579:extern XOM XOpenOM(
+
+#### XParseColor ####
+ParseCol.c:36:XParseColor (
+Xcmsint.h:75: * XParseColor()
+Xlib.h:2872:extern Status XParseColor(
+
+#### XParseGeometry ####
+Geom.c:64: pmask = XParseGeometry(pos, &px, &py, &pwidth, &pheight);
+Geom.c:65: dmask = XParseGeometry(def, &dx, &dy, &dwidth, &dheight);
+ParseGeom.c:37: * XParseGeometry parses strings of the form
+ParseGeom.c:73:XParseGeometry (
+WMGeom.c:94: rmask = umask = XParseGeometry (user_geom, &ux, &uy, &uwidth, &uheight);
+WMGeom.c:95: dmask = XParseGeometry (def_geom, &dx, &dy, &dwidth, &dheight);
+Xlib.h:2879:extern int XParseGeometry(
+Xutil.h:66: * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
+
+#### XPeekEvent ####
+PeekEvent.c:39:XPeekEvent (
+Xlib.h:2887:extern int XPeekEvent(
+
+#### XPeekIfEvent ####
+PeekIfEv.c:39:XPeekIfEvent (
+Xlib.h:2892:extern int XPeekIfEvent(
+
+#### XPending ####
+Pending.c:59:int XPending (register Display *dpy)
+Xlib.h:2903:extern int XPending(
+
+#### XPlanesOfScreen ####
+Macros.c:222:int XPlanesOfScreen(Screen *s) { return (PlanesOfScreen(s)); }
+Xlib.h:2907:extern int XPlanesOfScreen(
+
+#### XPointInRegion ####
+Region.c:1507:XPointInRegion(
+Xutil.h:557:extern Bool XPointInRegion(
+
+#### XPolygonRegion ####
+PolyReg.c:472:XPolygonRegion(
+Xutil.h:563:extern Region XPolygonRegion(
+
+#### XProcessInternalConnection ####
+XlibInt.c:818: _XProcessInternalConnection(dpy, ilist);
+XlibInt.c:1136: * unless we were called from within XProcessInternalConnection
+XlibInt.c:1142: /* some thread is in XProcessInternalConnection or XLockDisplay
+XlibInt.c:1366: * unless we were called from within XProcessInternalConnection
+XlibInt.c:1372: /* some thread is in XProcessInternalConnection or XLockDisplay
+XlibInt.c:2453: * and detects input available, it must call XProcessInternalConnection,
+XlibInt.c:2592:void _XProcessInternalConnection(
+XlibInt.c:2616:/* XProcessInternalConnection
+XlibInt.c:2622:XProcessInternalConnection(
+XlibInt.c:2630: fprintf(stderr, "XProcessInternalConnection: Got called.\n");
+XlibInt.c:2636: _XProcessInternalConnection(dpy, info_list);
+locking.h:69: xthread_t conni_thread; /* thread in XProcessInternalConnection */
+Xlib.h:3986:extern void XProcessInternalConnection(
+Xlibint.h:426:#define XlibDisplayProcConni (1L << 4) /* in _XProcessInternalConnection */
+Xlibint.h:1231:extern void _XProcessInternalConnection(
+
+#### XProtocolRevision ####
+Macros.c:117:int XProtocolRevision(Display *dpy) { return (ProtocolRevision(dpy));}
+Xlib.h:2911:extern int XProtocolRevision(
+
+#### XProtocolVersion ####
+Macros.c:115:int XProtocolVersion(Display *dpy) { return (ProtocolVersion(dpy)); }
+Xlib.h:2915:extern int XProtocolVersion(
+
+#### XPutBackEvent ####
+imDefLkup.c:375: XPutBackEvent(d, &ev);
+imDefLkup.c:728: XPutBackEvent(im->core.display, (XEvent *)&ev);
+imExten.c:159: XPutBackEvent(im->core.display, &ev);
+imLcFlt.c:123: XPutBackEvent(d, ev);
+imLcFlt.c:153: _XPutBackEvent(d, ev);
+imThaiFlt.c:1419: XPutBackEvent(d, ev);
+imTrans.c:239: XPutBackEvent(im->core.display, &ev);
+imTrX.c:359: XPutBackEvent(im->core.display, event);
+imTrX.c:414: XPutBackEvent(im->core.display, event);
+PutBEvent.c:29:/* XPutBackEvent puts an event back at the head of the queue. */
+PutBEvent.c:36:_XPutBackEvent (
+PutBEvent.c:77:XPutBackEvent (
+PutBEvent.c:84: ret = _XPutBackEvent(dpy, event);
+XlibInt.c:829: XPutBackEvent. We notice it here and if we needed an event,
+XlibInt.c:1460: done XPutBackEvent. Which we can use so we're done. */
+XlibInt.c:1572: return -2; /* internal connection did XPutBackEvent */
+XlibInt.c:1578: return -2; /* internal connection did XPutBackEvent */
+Xlib.h:2920:extern int XPutBackEvent(
+Xlibint.h:1333:int _XPutBackEvent (
+
+#### XPutImage ####
+CrBFData.c:76: XPutImage(display, pix, gc, &ximage, 0, 0, 0, 0, width, height);
+CrPFBData.c:85: XPutImage(display, pix, gc, &ximage, 0, 0, 0, 0, width, height);
+PutImage.c:932:XPutImage (
+Xlib.h:2925:extern int XPutImage(
+
+#### XPutPixel ####
+ImUtil.c:41:static int _XPutPixel(XImage *, int, int, unsigned long);
+ImUtil.c:42:static int _XPutPixel1(XImage *, int, int, unsigned long);
+ImUtil.c:43:static int _XPutPixel8(XImage *, int, int, unsigned long);
+ImUtil.c:44:static int _XPutPixel16(XImage *, int, int, unsigned long);
+ImUtil.c:45:static int _XPutPixel32(XImage *, int, int, unsigned long);
+ImUtil.c:103: * _XPutPixel Writes a pixel into an image data structure
+ImUtil.c:104: * _XPutPixel32 Writes a pixel into a 32-bit Z image data structure
+ImUtil.c:105: * _XPutPixel16 Writes a pixel into a 16-bit Z image data structure
+ImUtil.c:106: * _XPutPixel8 Writes a pixel into an 8-bit Z image data structure
+ImUtil.c:107: * _XPutPixel1 Writes a pixel into an 1-bit image data structure
+ImUtil.c:278: image->f.put_pixel = _XPutPixel8;
+ImUtil.c:282: image->f.put_pixel = _XPutPixel1;
+ImUtil.c:286: image->f.put_pixel = _XPutPixel32;
+ImUtil.c:290: image->f.put_pixel = _XPutPixel16;
+ImUtil.c:293: image->f.put_pixel = _XPutPixel;
+ImUtil.c:648:static int _XPutPixel (
+ImUtil.c:721:static int _XPutPixel32 (
+ImUtil.c:748: return XPutPixel(ximage, x, y, pixel);
+ImUtil.c:752:static int _XPutPixel16 (
+ImUtil.c:773: return XPutPixel(ximage, x, y, pixel);
+ImUtil.c:777:static int _XPutPixel8 (
+ImUtil.c:788: return XPutPixel(ximage, x, y, pixel);
+ImUtil.c:792:static int _XPutPixel1 (
+ImUtil.c:817: return XPutPixel(ximage, x, y, pixel);
+ImUtil.c:889: XPutPixel(subimage, (col - x), (row - y), pixel);
+ImUtil.c:949: XPutPixel(dstimg, x + col, y + row, pixel);
+ImUtil.c:1011: XPutPixel(ximage, x, y, pixel);
+Macros.c:266:#undef XPutPixel
+Macros.c:267:int XPutPixel(
+PutImage.c:1000: XPutPixel(&img, i, j, XGetPixel(image, req_xoffset + i,
+Xutil.h:201:extern int XPutPixel(
+Xutil.h:221:#define XPutPixel(ximage, x, y, pixel) \
+
+#### XQLength ####
+Macros.c:79:int XQLength(Display *dpy) { return (QLength(dpy)); }
+Xlib.h:2938:extern int XQLength(
+
+#### XQueryBestCursor ####
+QuCurShp.c:32:Status XQueryBestCursor(
+Xlib.h:2942:extern Status XQueryBestCursor(
+
+#### XQueryBestSize ####
+QuBest.c:32:Status XQueryBestSize(
+Xlib.h:2951:extern Status XQueryBestSize(
+
+#### XQueryBestStipple ####
+QuStipShp.c:32:Status XQueryBestStipple(
+Xlib.h:2961:extern Status XQueryBestStipple(
+
+#### XQueryBestTile ####
+QuTileShp.c:32:Status XQueryBestTile(
+Xlib.h:2970:extern Status XQueryBestTile(
+
+#### XQueryColor ####
+QuCol.c:63: * This routine uses XQueryColor to obtain the X RGB values
+QuCol.c:76: return(_XcmsSetGetColor(XQueryColor, dpy, colormap,
+QuColor.c:33:XQueryColor(
+QuColors.c:33:_XQueryColors(
+QuColors.c:75:XQueryColors(
+QuColors.c:90: _XQueryColors(dpy, cmap, defs, n);
+QuColors.c:95: _XQueryColors(dpy, cmap, defs, ncolors);
+QuCols.c:63: * This routine uses XQueryColors to obtain the X RGB values
+QuCols.c:76: return(_XcmsSetGetColors(XQueryColors, dpy, colormap,
+SetGetCols.c:107: || (*xColorProc == XQueryColor)) ) {
+SetGetCols.c:115: if (*xColorProc == XQueryColor) {
+SetGetCols.c:140: } else if ((*xColorProc == XQueryColor) || (*xColorProc == XStoreColor)) {
+SetGetCols.c:141: /* Note: XQueryColor and XStoreColor do not return any Status */
+SetGetCols.c:229: if ( !((*xColorProc == XStoreColors) || (*xColorProc == XQueryColors)) ) {
+SetGetCols.c:245: if (*xColorProc == XQueryColors) {
+SetGetCols.c:267: if ((*xColorProc == XQueryColors) || (*xColorProc == XStoreColors)){
+SetGetCols.c:268: /* Note: XQueryColors and XStoreColors do not return any Status */
+Xlib.h:2979:extern int XQueryColor(
+Xlib.h:2985:extern int XQueryColors(
+
+#### XQueryColors ####
+QuColors.c:33:_XQueryColors(
+QuColors.c:75:XQueryColors(
+QuColors.c:90: _XQueryColors(dpy, cmap, defs, n);
+QuColors.c:95: _XQueryColors(dpy, cmap, defs, ncolors);
+QuCols.c:63: * This routine uses XQueryColors to obtain the X RGB values
+QuCols.c:76: return(_XcmsSetGetColors(XQueryColors, dpy, colormap,
+SetGetCols.c:229: if ( !((*xColorProc == XStoreColors) || (*xColorProc == XQueryColors)) ) {
+SetGetCols.c:245: if (*xColorProc == XQueryColors) {
+SetGetCols.c:267: if ((*xColorProc == XQueryColors) || (*xColorProc == XStoreColors)){
+SetGetCols.c:268: /* Note: XQueryColors and XStoreColors do not return any Status */
+Xlib.h:2985:extern int XQueryColors(
+
+#### XQueryExtension ####
+InitExt.c:47: if (!XQueryExtension(dpy, name,
+QuExt.c:33:XQueryExtension(
+Xlib.h:2992:extern Bool XQueryExtension(
+
+#### XQueryFont ####
+Font.c:55:static XFontStruct *_XQueryFont(
+Font.c:121: font_result = _XQueryFont(dpy, fid, seq);
+Font.c:127:XFontStruct *XQueryFont (
+Font.c:144: font_result = _XQueryFont(dpy, fid, 0L);
+Font.c:181:_XQueryFont (
+Font.c:436: /* The function _XQueryFont benefits from a "magic" error handler for
+Xlib.h:1400:extern XFontStruct *XQueryFont(
+
+#### XQueryKeymap ####
+QuKeybd.c:37:XQueryKeymap(
+Xlib.h:3000:extern int XQueryKeymap(
+
+#### XQueryPointer ####
+QuPntr.c:32:Bool XQueryPointer(
+Xlib.h:3005:extern Bool XQueryPointer(
+
+#### XQueryTextExtents16 ####
+QuTextE16.c:33:XQueryTextExtents16 (
+Xlib.h:3028:extern int XQueryTextExtents16(
+
+#### XQueryTextExtents ####
+QuTextE16.c:33:XQueryTextExtents16 (
+QuTextExt.c:33:XQueryTextExtents (
+Xlib.h:3017:extern int XQueryTextExtents(
+Xlib.h:3028:extern int XQueryTextExtents16(
+
+#### XQueryTree ####
+QuTree.c:32:Status XQueryTree (
+Xlib.h:3039:extern Status XQueryTree(
+
+#### XRaiseWindow ####
+RaiseWin.c:33:XRaiseWindow (
+Xlib.h:3048:extern int XRaiseWindow(
+
+#### XReadBitmapFile ####
+RdBitF.c:109:XReadBitmapFileData (
+RdBitF.c:240:XReadBitmapFile (
+RdBitF.c:253: res = XReadBitmapFileData(filename, width, height, &data, x_hot, y_hot);
+Xlib.h:3053:extern int XReadBitmapFile(
+Xlib.h:3064:extern int XReadBitmapFileData(
+Xutil.h:338: * return codes for XReadBitmapFile and XWriteBitmapFile
+
+#### XReadBitmapFileData ####
+RdBitF.c:109:XReadBitmapFileData (
+RdBitF.c:253: res = XReadBitmapFileData(filename, width, height, &data, x_hot, y_hot);
+Xlib.h:3064:extern int XReadBitmapFileData(
+
+#### XRebindKeysym ####
+KeyBind.c:912:XRebindKeysym (
+Xlib.h:3073:extern int XRebindKeysym(
+
+#### XRecolorCursor ####
+RecolorC.c:33:XRecolorCursor(
+Xlib.h:3082:extern int XRecolorCursor(
+
+#### XReconfigureWMWindow ####
+ReconfWM.c:37:Status XReconfigureWMWindow (
+Xlib.h:1875:extern Status XReconfigureWMWindow(
+
+#### XRectInRegion ####
+Region.c:1526:XRectInRegion(
+Xutil.h:276:/* Return values from XRectInRegion() */
+Xutil.h:569:extern int XRectInRegion(
+
+#### XRefreshKeyboardMapping ####
+KeyBind.c:60:#define XRefreshKeyboardMapping _XRefreshKeyboardMapping
+KeyBind.c:228:XRefreshKeyboardMapping(register XMappingEvent *event)
+XKBBind.c:354: _XRefreshKeyboardMapping((XMappingEvent *) event);
+XKBBind.c:390:XRefreshKeyboardMapping(register XMappingEvent * event)
+XKBBind.c:398: (void) _XRefreshKeyboardMapping(event);
+XKBlibint.h:153:extern int _XRefreshKeyboardMapping(
+Xlib.h:3089:extern int XRefreshKeyboardMapping(
+
+#### XRegisterIMInstantiateCallback ####
+IMWrap.c:165:XRegisterIMInstantiateCallback(
+Xlib.h:3953:extern Bool XRegisterIMInstantiateCallback(
+
+#### XRemoveConnectionWatch ####
+XlibInt.c:2703:/* XRemoveConnectionWatch
+XlibInt.c:2709:XRemoveConnectionWatch(
+XlibInt.c:2721: fprintf(stderr, "XRemoveConnectionWatch: Got called.\n");
+Xlib.h:3997:extern void XRemoveConnectionWatch(
+
+#### XRemoveFromSaveSet ####
+ChSaveSet.c:58:XRemoveFromSaveSet (
+Xlib.h:3093:extern int XRemoveFromSaveSet(
+
+#### XRemoveHost ####
+Host.c:113:XRemoveHost (
+Host.c:134:XRemoveHosts (
+Host.c:141: (void) XRemoveHost(dpy, &hosts[i]);
+Xlib.h:3098:extern int XRemoveHost(
+Xlib.h:3103:extern int XRemoveHosts(
+
+#### XRemoveHosts ####
+Host.c:134:XRemoveHosts (
+Xlib.h:3103:extern int XRemoveHosts(
+
+#### XReparentWindow ####
+RepWindow.c:33:XReparentWindow(
+Xlib.h:3109:extern int XReparentWindow(
+
+#### XResetScreenSaver ####
+FSSaver.c:40:XResetScreenSaver(register Display *dpy)
+Xlib.h:3117:extern int XResetScreenSaver(
+
+#### XResizeWindow ####
+ChWindow.c:33:XResizeWindow(
+Xlib.h:3121:extern int XResizeWindow(
+
+#### XResourceManagerString ####
+Misc.c:37:char *XResourceManagerString(Display *dpy)
+Xlib.h:1720:extern char *XResourceManagerString(
+
+#### XRestackWindows ####
+RestackWs.c:33:XRestackWindows (
+Xlib.h:3128:extern int XRestackWindows(
+
+#### XRootWindow ####
+Macros.c:45:Window XRootWindow (Display *dpy, int scr)
+Macros.c:182:Window XRootWindowOfScreen(Screen *s) { return (RootWindowOfScreen(s)); }
+Xlib.h:1766:extern Window XRootWindow(
+Xlib.h:1773:extern Window XRootWindowOfScreen(
+
+#### XRootWindowOfScreen ####
+Macros.c:182:Window XRootWindowOfScreen(Screen *s) { return (RootWindowOfScreen(s)); }
+Xlib.h:1773:extern Window XRootWindowOfScreen(
+
+#### XRotateBuffers ####
+StBytes.c:45:XRotateBuffers (
+Xlib.h:3134:extern int XRotateBuffers(
+
+#### XRotateWindowProperties ####
+RotProp.c:33:XRotateWindowProperties(
+StBytes.c:49: /* XRotateWindowProperties wants a non-const Atom*, but it doesn't
+StBytes.c:52: return XRotateWindowProperties(dpy, RootWindow(dpy, 0), (Atom *)n_to_atom, 8, rotate);
+Xlib.h:3139:extern int XRotateWindowProperties(
+
+#### XSaveContext ####
+Context.c:55: XSaveContext(a,b,c,d) will store d in position (a,b,c) of the array.
+Context.c:159:int XSaveContext(
+Xutil.h:577:extern int XSaveContext(
+
+#### XScreenCount ####
+Macros.c:111:int XScreenCount(Display *dpy) { return (ScreenCount(dpy)); }
+Xlib.h:3147:extern int XScreenCount(
+
+#### XScreenNumberOfScreen ####
+Macros.c:236:int XScreenNumberOfScreen (register Screen *scr)
+Xlib.h:1840:extern int XScreenNumberOfScreen(
+
+#### XScreenOfDisplay ####
+Macros.c:170:Screen *XScreenOfDisplay(Display *dpy, int scr)
+Xlib.h:1829:extern Screen *XScreenOfDisplay(
+
+#### XScreenResourceString ####
+ScrResStr.c:33:char *XScreenResourceString(Screen *screen)
+Xlib.h:1723:extern char *XScreenResourceString(
+
+#### XSelectInput ####
+imDefFlt.c:390: XSelectInput(im->core.display, im->private.proto.im_window,
+imExten.c:108: XSelectInput(im->core.display, ic->core.focus_window, select_mask);
+imInsClbk.c:200: XSelectInput( display, root,
+imTrX.c:186: XSelectInput(im->core.display, spec->lib_connect_wid, event_mask);
+SelInput.c:33:XSelectInput (
+Xlib.h:3151:extern int XSelectInput(
+
+#### XSendEvent ####
+Iconify.c:85: return (XSendEvent (dpy, root, False,
+imTrX.c:192: XSendEvent(im->core.display, im->private.proto.im_window,
+imTrX.c:294: XSendEvent(im->core.display, spec->ims_connect_wid,
+imTrX.c:311: XSendEvent(im->core.display, spec->ims_connect_wid,
+ReconfWM.c:138: return (XSendEvent (dpy, root, False,
+SendEvent.c:37:XSendEvent(
+Withdraw.c:80: return (XSendEvent (dpy, root, False,
+Xlib.h:3157:extern Status XSendEvent(
+
+#### XServerVendor ####
+Macros.c:113:char *XServerVendor(Display *dpy) { return (ServerVendor(dpy)); }
+Xlib.h:1813:extern char *XServerVendor(
+
+#### XSetAccessControl ####
+ChAccCon.c:35: return XSetAccessControl(dpy, EnableAccess);
+ChAccCon.c:41: return XSetAccessControl(dpy, DisableAccess);
+ChAccCon.c:45:XSetAccessControl(
+Xlib.h:3165:extern int XSetAccessControl(
+
+#### XSetAfterFunction ####
+Synchro.c:59:int (*XSetAfterFunction(
+Xlib.h:1529:extern int (*XSetAfterFunction(
+
+#### XSetArcMode ####
+GCMisc.c:33:XSetArcMode (
+Xlib.h:3170:extern int XSetArcMode(
+
+#### XSetAuthorization ####
+ConnDis.c:910:void XSetAuthorization (
+Xlib.h:4003:extern void XSetAuthorization(
+
+#### XSetBackground ####
+SetBack.c:33:XSetBackground (
+Xlib.h:3176:extern int XSetBackground(
+
+#### XSetClassHint ####
+SetHints.c:291:XSetClassHint(
+WMProps.c:138: XSetClassHint (dpy, w, classHints);
+Xutil.h:584:extern int XSetClassHint(
+
+#### XSetClipMask ####
+SetClMask.c:33:XSetClipMask (
+Xlib.h:3182:extern int XSetClipMask(
+
+#### XSetClipOrigin ####
+SetClOrig.c:33:XSetClipOrigin (
+Xlib.h:3188:extern int XSetClipOrigin(
+
+#### XSetClipRectangles ####
+Region.c:275: _XSetClipRectangles(dpy, gc, 0, 0, xr, r->numRects, YXBanded);
+SetCRects.c:33:void _XSetClipRectangles (
+SetCRects.c:65:XSetClipRectangles (
+SetCRects.c:75: _XSetClipRectangles (dpy, gc, clip_x_origin, clip_y_origin, rectangles, n,
+Xlib.h:3195:extern int XSetClipRectangles(
+Xlibint.h:1320:extern void _XSetClipRectangles (
+
+#### XSetCloseDownMode ####
+ChClMode.c:33:XSetCloseDownMode(
+Xlib.h:3205:extern int XSetCloseDownMode(
+
+#### XSetCommand ####
+SetHints.c:207:XSetCommand (
+SetHints.c:271: if (argv != NULL) XSetCommand(dpy, w, argv, argc);
+WMProps.c:101: XSetCommand (dpy, w, argv, argc);
+Xlib.h:3210:extern int XSetCommand(
+
+#### XSetDashes ####
+SetDashes.c:33:XSetDashes (
+Xlib.h:3217:extern int XSetDashes(
+
+#### XSetErrorHandler ####
+ErrHndlr.c:39:XSetErrorHandler(XErrorHandler handler)
+OpenDis.c:173: if (_XErrorFunction == NULL) (void) XSetErrorHandler (NULL);
+Xlib.h:1849:extern XErrorHandler XSetErrorHandler (
+
+#### XSetFillRule ####
+GCMisc.c:49:XSetFillRule (
+Xlib.h:3225:extern int XSetFillRule(
+
+#### XSetFillStyle ####
+GCMisc.c:65:XSetFillStyle (
+omImText.c:53: XSetFillStyle(dpy, gc, FillSolid);
+Xlib.h:3231:extern int XSetFillStyle(
+
+#### XSetFont ####
+omDefault.c:351: XSetFont(dpy, gc, font->fid);
+omDefault.c:409: XSetFont(dpy, gc, (*oc->core.font_info.font_struct_list)->fid);
+omText.c:208: XSetFont(dpy, gc, font->fid);
+omText.c:246: XSetFont(dpy, gc, font->fid);
+SetFont.c:33:XSetFont (
+SetFPath.c:35:XSetFontPath (
+XDefaultOMIF.c:781: XSetFont(dpy, gc, font->fid);
+XDefaultOMIF.c:813: XSetFont(dpy, gc, (*oc->core.font_info.font_struct_list)->fid);
+Xlib.h:3237:extern int XSetFont(
+Xlib.h:3243:extern int XSetFontPath(
+
+#### XSetFontPath ####
+SetFPath.c:35:XSetFontPath (
+Xlib.h:3243:extern int XSetFontPath(
+
+#### XSetForeground ####
+omImText.c:52: XSetForeground(dpy, gc, values.background);
+SetFore.c:33:XSetForeground (
+Xlib.h:3249:extern int XSetForeground(
+
+#### XSetFunction ####
+omImText.c:51: XSetFunction(dpy, gc, GXcopy);
+SetFunc.c:33:XSetFunction (
+Xlib.h:3255:extern int XSetFunction(
+
+#### XSetGraphicsExposures ####
+GCMisc.c:81:XSetGraphicsExposures (
+Xlib.h:3261:extern int XSetGraphicsExposures(
+
+#### XSetICFocus ####
+ICWrap.c:345:XSetICFocus(XIC ic)
+Xlib.h:3883:extern void XSetICFocus(
+
+#### XSetICValues ####
+ICWrap.c:311:XSetICValues(XIC ic, ...)
+Xlib.h:3903:extern char *XSetICValues(
+
+#### XSetIMValues ####
+ICWrap.c:167:XSetIMValues(XIM im, ...)
+Xlib.h:3863:extern char *XSetIMValues(
+
+#### XSetIOErrorHandler ####
+ErrHndlr.c:67:XSetIOErrorHandler(XIOErrorHandler handler)
+OpenDis.c:174: if (_XIOErrorFunction == NULL) (void) XSetIOErrorHandler (NULL);
+Xlib.h:1858:extern XIOErrorHandler XSetIOErrorHandler (
+
+#### XSetIconName ####
+StName.c:45:XSetIconName (
+Xlib.h:3267:extern int XSetIconName(
+
+#### XSetIconSizes ####
+SetHints.c:176:XSetIconSizes (
+Xutil.h:590:extern int XSetIconSizes(
+
+#### XSetInputFocus ####
+SetIFocus.c:33:XSetInputFocus(
+Xlib.h:3273:extern int XSetInputFocus(
+
+#### XSetLineAttributes ####
+SetLStyle.c:33:XSetLineAttributes(
+Xlib.h:3280:extern int XSetLineAttributes(
+
+#### XSetLocaleModifiers ####
+lcWrap.c:75:XSetLocaleModifiers(
+Xlib.h:3575:extern char *XSetLocaleModifiers(
+
+#### XSetModifierMapping ####
+ModMap.c:74:XSetModifierMapping(
+Xlib.h:3289:extern int XSetModifierMapping(
+
+#### XSetNormalHints ####
+SetHints.c:154: * XSetNormalHints sets the property
+SetHints.c:159:XSetNormalHints ( /* old routine */
+SetHints.c:273: if (hints != NULL) XSetNormalHints(dpy, w, hints);
+Xutil.h:597:extern int XSetNormalHints(
+
+#### XSetOCValues ####
+OCWrap.c:91:XSetOCValues(XOC oc, ...)
+Xlcint.h:424:typedef char* (*XSetOCValuesProc)(
+Xlcint.h:543: XSetOCValuesProc set_values;
+Xlib.h:3621:extern char *XSetOCValues(
+
+#### XSetOMValues ####
+OMWrap.c:68:XSetOMValues(XOM om, ...)
+Xlcint.h:374:typedef char* (*XSetOMValuesProc)(
+Xlcint.h:394: XSetOMValuesProc set_values;
+Xlib.h:3590:extern char *XSetOMValues(
+
+#### XSetPlaneMask ####
+SetPMask.c:33:XSetPlaneMask (
+Xlib.h:3294:extern int XSetPlaneMask(
+
+#### XSetPointerMapping ####
+SetPntMap.c:34:XSetPointerMapping (
+Xlib.h:3300:extern int XSetPointerMapping(
+
+#### XSetRGBColormaps ####
+SetRGBCMap.c:38:void XSetRGBColormaps (
+SetStCmap.c:91: XSetRGBColormaps (dpy, w, &stdcmap, 1, property);
+Xutil.h:603:extern void XSetRGBColormaps(
+
+#### XSetRegion ####
+Region.c:254:XSetRegion(
+Xutil.h:709:extern int XSetRegion(
+
+#### XSetScreenSaver ####
+SetSSaver.c:33:XSetScreenSaver(
+Xlib.h:3306:extern int XSetScreenSaver(
+
+#### XSetSelectionOwner ####
+SetSOwner.c:33:XSetSelectionOwner(
+Xlib.h:3314:extern int XSetSelectionOwner(
+
+#### XSetSizeHints ####
+SetHints.c:61:XSetSizeHints( /* old routine */
+SetHints.c:149: return XSetSizeHints (dpy, w, zhints, XA_WM_ZOOM_HINTS);
+SetHints.c:164: return XSetSizeHints (dpy, w, hints, XA_WM_NORMAL_HINTS);
+Xutil.h:611:extern int XSetSizeHints(
+
+#### XSetStandardColormap ####
+SetStCmap.c:64:void XSetStandardColormap(
+Xutil.h:715:extern void XSetStandardColormap(
+
+#### XSetStandardProperties ####
+SetHints.c:236: * XSetStandardProperties sets the following properties:
+SetHints.c:245:XSetStandardProperties (
+Xutil.h:618:extern int XSetStandardProperties(
+
+#### XSetState ####
+SetState.c:33:XSetState(
+Xlib.h:3321:extern int XSetState(
+
+#### XSetStipple ####
+SetStip.c:33:XSetStipple (
+Xlib.h:3330:extern int XSetStipple(
+
+#### XSetSubwindowMode ####
+GCMisc.c:97:XSetSubwindowMode (
+Xlib.h:3336:extern int XSetSubwindowMode(
+
+#### XSetTSOrigin ####
+SetTSOrig.c:33:XSetTSOrigin (
+Xlib.h:3342:extern int XSetTSOrigin(
+
+#### XSetTextProperty ####
+SetTxtProp.c:60:void XSetTextProperty (
+SetTxtProp.c:75: XSetTextProperty (dpy, w, tp, XA_WM_NAME);
+SetTxtProp.c:83: XSetTextProperty (dpy, w, tp, XA_WM_ICON_NAME);
+SetTxtProp.c:91: XSetTextProperty (dpy, w, tp, XA_WM_CLIENT_MACHINE);
+Xutil.h:629:extern void XSetTextProperty(
+
+#### XSetTile ####
+SetTile.c:33:XSetTile (
+Xlib.h:3349:extern int XSetTile(
+
+#### XSetTransientForHint ####
+SetHints.c:281:XSetTransientForHint(
+Xlib.h:1926:extern int XSetTransientForHint(
+
+#### XSetWMClientMachine ####
+SetTxtProp.c:86:void XSetWMClientMachine (
+WMProps.c:109: XSetWMClientMachine (dpy, w, &textprop);
+Xutil.h:636:extern void XSetWMClientMachine(
+
+#### XSetWMColormapWindows ####
+SetWMCMapW.c:60:Status XSetWMColormapWindows (
+Xlib.h:1917:extern Status XSetWMColormapWindows(
+
+#### XSetWMHints ####
+SetHints.c:102: * XSetWMHints sets the property
+SetHints.c:107:XSetWMHints (
+SetHints.c:275: if (phints.flags != 0) XSetWMHints(dpy, w, &phints);
+WMProps.c:113: if (wmHints) XSetWMHints (dpy, w, wmHints);
+Xutil.h:642:extern int XSetWMHints(
+
+#### XSetWMIconName ####
+SetTxtProp.c:78:void XSetWMIconName (
+WMProps.c:93: if (iconName) XSetWMIconName (dpy, w, iconName);
+Xutil.h:648:extern void XSetWMIconName(
+
+#### XSetWMName ####
+SetTxtProp.c:70:void XSetWMName (
+WMProps.c:92: if (windowName) XSetWMName (dpy, w, windowName);
+Xutil.h:654:extern void XSetWMName(
+
+#### XSetWMNormalHints ####
+SetNrmHint.c:120:void XSetWMNormalHints (
+WMProps.c:112: if (sizeHints) XSetWMNormalHints (dpy, w, sizeHints);
+Xutil.h:660:extern void XSetWMNormalHints(
+
+#### XSetWMProperties ####
+mbWMProps.c:61: XSetWMProperties(dpy, w, wprop, iprop, argv, argc,
+mbWMProps.c:68: /* Note: The WM_LOCALE_NAME property is set by XSetWMProperties. */
+utf8WMProps.c:83: XSetWMProperties(dpy, w, wprop, iprop, argv, argc,
+utf8WMProps.c:90: /* Note: The WM_LOCALE_NAME property is set by XSetWMProperties. */
+WMProps.c:64: * XSetWMProperties sets the following properties:
+WMProps.c:75:void XSetWMProperties (
+Xutil.h:666:extern void XSetWMProperties(
+
+#### XSetWMProtocols ####
+SetWMCMapW.c:56: * XSetWMProtocols sets the property
+SetWMProto.c:56: * XSetWMProtocols sets the property
+SetWMProto.c:60:Status XSetWMProtocols (
+Xlib.h:1889:extern Status XSetWMProtocols(
+
+#### XSetWMSizeHints ####
+SetNrmHint.c:62:void XSetWMSizeHints (
+SetNrmHint.c:125: XSetWMSizeHints (dpy, w, hints, XA_WM_NORMAL_HINTS);
+Xutil.h:702:extern void XSetWMSizeHints(
+
+#### XSetWindowBackground ####
+Backgnd.c:33:XSetWindowBackground(
+PmapBgnd.c:33:XSetWindowBackgroundPixmap(
+Xlib.h:3355:extern int XSetWindowBackground(
+Xlib.h:3361:extern int XSetWindowBackgroundPixmap(
+
+#### XSetWindowBackgroundPixmap ####
+PmapBgnd.c:33:XSetWindowBackgroundPixmap(
+Xlib.h:3361:extern int XSetWindowBackgroundPixmap(
+
+#### XSetWindowBorder ####
+BdrWidth.c:36:XSetWindowBorderWidth(
+Border.c:33:XSetWindowBorder(
+PmapBord.c:33:XSetWindowBorderPixmap(
+Xlib.h:3367:extern int XSetWindowBorder(
+Xlib.h:3373:extern int XSetWindowBorderPixmap(
+Xlib.h:3379:extern int XSetWindowBorderWidth(
+
+#### XSetWindowBorderPixmap ####
+PmapBord.c:33:XSetWindowBorderPixmap(
+Xlib.h:3373:extern int XSetWindowBorderPixmap(
+
+#### XSetWindowBorderWidth ####
+BdrWidth.c:36:XSetWindowBorderWidth(
+Xlib.h:3379:extern int XSetWindowBorderWidth(
+
+#### XSetWindowColormap ####
+ChCmap.c:33:XSetWindowColormap(
+Xlib.h:3385:extern int XSetWindowColormap(
+
+#### XSetZoomHints ####
+SetHints.c:139: * XSetZoomHints sets the property
+SetHints.c:144:XSetZoomHints (
+Xutil.h:722:extern int XSetZoomHints(
+
+#### XShrinkRegion ####
+Region.c:379:XShrinkRegion(
+Xutil.h:728:extern int XShrinkRegion(
+
+#### XStoreBuffer ####
+StBytes.c:89:XStoreBuffer (
+StBytes.c:106: return XStoreBuffer (dpy, bytes, nbytes, 0);
+Xlib.h:3391:extern int XStoreBuffer(
+
+#### XStoreBytes ####
+StBytes.c:101:XStoreBytes (
+Xlib.h:3398:extern int XStoreBytes(
+
+#### XStoreColor ####
+SetGetCols.c:106: if ( !((*xColorProc == XAllocColor) || (*xColorProc == XStoreColor)
+SetGetCols.c:140: } else if ((*xColorProc == XQueryColor) || (*xColorProc == XStoreColor)) {
+SetGetCols.c:141: /* Note: XQueryColor and XStoreColor do not return any Status */
+SetGetCols.c:147: if ((*xColorProc == XStoreColor)) {
+SetGetCols.c:229: if ( !((*xColorProc == XStoreColors) || (*xColorProc == XQueryColors)) ) {
+SetGetCols.c:267: if ((*xColorProc == XQueryColors) || (*xColorProc == XStoreColors)){
+SetGetCols.c:268: /* Note: XQueryColors and XStoreColors do not return any Status */
+SetGetCols.c:275: if (*xColorProc == XStoreColors) {
+StCol.c:64: * values then use it in a call to XStoreColor.
+StCol.c:72: * Since XStoreColor has no return value this routine
+StCol.c:80: return(_XcmsSetGetColor(XStoreColor, dpy, colormap,
+StColor.c:33:XStoreColor(
+StColors.c:33:XStoreColors(
+StCols.c:66: * values then use it in a call to XStoreColors.
+StCols.c:74: * Since XStoreColors has no return value, this routine
+StCols.c:98: retval = _XcmsSetGetColors (XStoreColors, dpy, colormap,
+StNColor.c:59: return XStoreColor(dpy, cmap, &scr_def);
+Xlib.h:3404:extern int XStoreColor(
+Xlib.h:3410:extern int XStoreColors(
+
+#### XStoreColors ####
+SetGetCols.c:229: if ( !((*xColorProc == XStoreColors) || (*xColorProc == XQueryColors)) ) {
+SetGetCols.c:267: if ((*xColorProc == XQueryColors) || (*xColorProc == XStoreColors)){
+SetGetCols.c:268: /* Note: XQueryColors and XStoreColors do not return any Status */
+SetGetCols.c:275: if (*xColorProc == XStoreColors) {
+StColors.c:33:XStoreColors(
+StCols.c:66: * values then use it in a call to XStoreColors.
+StCols.c:74: * Since XStoreColors has no return value, this routine
+StCols.c:98: retval = _XcmsSetGetColors (XStoreColors, dpy, colormap,
+Xlib.h:3410:extern int XStoreColors(
+
+#### XStoreName ####
+SetHints.c:258: if (name != NULL) XStoreName (dpy, w, name);
+StName.c:34:XStoreName (
+StNColor.c:36:XStoreNamedColor(
+Xcmsint.h:76: * XStoreNamedColor()
+Xlib.h:3417:extern int XStoreName(
+Xlib.h:3423:extern int XStoreNamedColor(
+
+#### XStoreNamedColor ####
+StNColor.c:36:XStoreNamedColor(
+Xcmsint.h:76: * XStoreNamedColor()
+Xlib.h:3423:extern int XStoreNamedColor(
+
+#### XStringListToTextProperty ####
+StrToText.c:35: * XStringListToTextProperty - fill in TextProperty structure with
+StrToText.c:41:Status XStringListToTextProperty (
+Xutil.h:734:extern Status XStringListToTextProperty(
+
+#### XStringToKeysym ####
+imLcPrs.c:560: keysym = XStringToKeysym(tokenbuf);
+imLcPrs.c:590: rhs_keysym = XStringToKeysym(tokenbuf);
+imLcPrs.c:600: rhs_keysym = XStringToKeysym(tokenbuf);
+StrKeysym.c:74:XStringToKeysym(_Xconst char *s)
+StrKeysym.c:175: ret = XStringToKeysym(tmp);
+Xlib.h:1711:extern KeySym XStringToKeysym(
+
+#### XSubImage ####
+ImUtil.c:46:static XImage *_XSubImage(XImage *, int, int, unsigned int, unsigned int);
+ImUtil.c:108: * _XSubImage Clones a new (sub)image from an existing one
+ImUtil.c:295: image->f.sub_image = _XSubImage;
+ImUtil.c:831:static XImage *_XSubImage (
+Macros.c:274:#undef XSubImage
+Macros.c:275:XImage *XSubImage(
+Xutil.h:205:extern XImage *XSubImage(
+Xutil.h:223:#define XSubImage(ximage, x, y, width, height) \
+
+#### XSubtractRegion ####
+Region.c:1426:XSubtractRegion(
+Region.c:1463: (void) XSubtractRegion(sra,srb,tra);
+Region.c:1464: (void) XSubtractRegion(srb,sra,trb);
+Xutil.h:740:extern int XSubtractRegion(
+
+#### XSupportsLocale ####
+lcWrap.c:96:XSupportsLocale(void)
+Xlib.h:3573:extern Bool XSupportsLocale (void);
+
+#### XSync ####
+ClDisplay.c:43: * XCloseDisplay - XSync the connection to the X Server, close the connection,
+ClDisplay.c:65: XSync(dpy, 1); /* throw away pending events, catch errors */
+ClDisplay.c:73: XSync(dpy, 1);
+OpenDis.c:735: (void) XSynchronize(dpy, _Xdebug);
+ReconfWM.c:59: * We need to inline XConfigureWindow and XSync so that everything is done
+ReconfWM.c:104: * XSync (dpy, 0)
+Sync.c:35:XSync (
+Synchro.c:33:static int _XSyncFunction(register Display *dpy)
+Synchro.c:35: XSync(dpy,0);
+Synchro.c:39:int (*XSynchronize(Display *dpy, int onoff))(Display *)
+Synchro.c:45: func = _XSyncFunction;
+Xlib.h:1523:extern int (*XSynchronize(
+Xlib.h:3431:extern int XSync(
+
+#### XSynchronize ####
+OpenDis.c:735: (void) XSynchronize(dpy, _Xdebug);
+Synchro.c:39:int (*XSynchronize(Display *dpy, int onoff))(Display *)
+Xlib.h:1523:extern int (*XSynchronize(
+
+#### XTextExtents16 ####
+omText.c:117: XTextExtents16(font, buf2b, 1,
+omTextExt.c:72: XTextExtents16(font, xchar2b_buf, buf_len, &direction,
+TextExt16.c:44: * XTextExtents16 - compute the extents of string given as a sequence of
+TextExt16.c:48:XTextExtents16 (
+TextExt16.c:120: * subset of XTextExtents16.
+TextExt.c:71: * what is done in XTextExtents16.
+Xlib.h:3446:extern int XTextExtents16(
+
+#### XTextExtents ####
+omDefault.c:149: XTextExtents(*oc->core.font_info.font_struct_list, text, length, &direction,
+omText.c:117: XTextExtents16(font, buf2b, 1,
+omText.c:137: XTextExtents(font, buf, 1,
+omTextExt.c:72: XTextExtents16(font, xchar2b_buf, buf_len, &direction,
+omTextExt.c:75: XTextExtents(font, (char *) xchar2b_buf, buf_len, &direction,
+TextExt16.c:44: * XTextExtents16 - compute the extents of string given as a sequence of
+TextExt16.c:48:XTextExtents16 (
+TextExt16.c:120: * subset of XTextExtents16.
+TextExt.c:68: * XTextExtents - compute the extents of string given as a sequences of eight
+TextExt.c:71: * what is done in XTextExtents16.
+TextExt.c:74:XTextExtents (
+TextExt.c:145: * subset of XTextExtents.
+XDefaultOMIF.c:637: XTextExtents(*oc->core.font_info.font_struct_list, text, length, &direction,
+Xlib.h:3436:extern int XTextExtents(
+Xlib.h:3446:extern int XTextExtents16(
+
+#### XTextPropertyToStringList ####
+GetHints.c:256: if (!XTextPropertyToStringList (&tp, &argv, &argc)) {
+TextToStr.c:37: * XTextPropertyToStringList - set list and count to contain data stored in
+TextToStr.c:41:Status XTextPropertyToStringList (
+Xutil.h:774:extern Status XTextPropertyToStringList(
+
+#### XTextWidth16 ####
+omText.c:213: x += XTextWidth16(font, (XChar2b *)ptr, char_len);
+omTextEsc.c:184: escapement += XTextWidth16(font, (XChar2b *)ptr, char_len);
+TextExt16.c:119: * XTextWidth16 - compute the width of sequence of XChar2bs. This is a
+TextExt16.c:123:XTextWidth16 (
+Xlib.h:3462:extern int XTextWidth16(
+
+#### XTextWidth ####
+omDefault.c:93: return XTextWidth(*oc->core.font_info.font_struct_list, text, length);
+omDefault.c:354: return XTextWidth(font, text, length);
+omText.c:213: x += XTextWidth16(font, (XChar2b *)ptr, char_len);
+omText.c:217: x += XTextWidth(font, (char *)ptr, char_len);
+omTextEsc.c:184: escapement += XTextWidth16(font, (XChar2b *)ptr, char_len);
+omTextEsc.c:187: escapement += XTextWidth(font, (char *)ptr, char_len);
+TextExt16.c:119: * XTextWidth16 - compute the width of sequence of XChar2bs. This is a
+TextExt16.c:123:XTextWidth16 (
+TextExt.c:144: * XTextWidth - compute the width of a string of eightbit bytes. This is a
+TextExt.c:148:XTextWidth (
+XDefaultOMIF.c:606: return XTextWidth(*oc->core.font_info.font_struct_list, text, length);
+XDefaultOMIF.c:784: return XTextWidth(font, text, length);
+Xlib.h:3456:extern int XTextWidth(
+Xlib.h:3462:extern int XTextWidth16(
+
+#### XTranslateCoordinates ####
+TrCoords.c:32:Bool XTranslateCoordinates(
+Xlib.h:3468:extern Bool XTranslateCoordinates(
+
+#### XUndefineCursor ####
+UndefCurs.c:33:XUndefineCursor (
+Xlib.h:3479:extern int XUndefineCursor(
+
+#### XUngrabButton ####
+UngrabBut.c:33:XUngrabButton(
+Xlib.h:3484:extern int XUngrabButton(
+
+#### XUngrabKey ####
+UngrabKbd.c:33:XUngrabKeyboard (
+UngrabKey.c:33:XUngrabKey(
+Xlib.h:3491:extern int XUngrabKey(
+Xlib.h:3498:extern int XUngrabKeyboard(
+
+#### XUngrabKeyboard ####
+UngrabKbd.c:33:XUngrabKeyboard (
+Xlib.h:3498:extern int XUngrabKeyboard(
+
+#### XUngrabPointer ####
+UngrabPtr.c:33:XUngrabPointer(
+Xlib.h:3503:extern int XUngrabPointer(
+
+#### XUngrabServer ####
+UngrabSvr.c:33:XUngrabServer (
+Xlib.h:3508:extern int XUngrabServer(
+
+#### XUninstallColormap ####
+UninsCmap.c:33:XUninstallColormap(
+Xlib.h:3512:extern int XUninstallColormap(
+
+#### XUnionRectWithRegion ####
+Region.c:170:XUnionRectWithRegion(
+Xutil.h:801:extern int XUnionRectWithRegion(
+
+#### XUnionRegion ####
+Region.c:186: return XUnionRegion(&region, source, dest);
+Region.c:345:#define ZOpRegion(a,b,c) if (grow) XUnionRegion(a,b,c); \
+Region.c:349:#define ZCopyRegion(a,b) XUnionRegion(a,a,b)
+Region.c:1143:XUnionRegion(
+Region.c:1465: (void) XUnionRegion(tra,trb,dr);
+Xutil.h:807:extern int XUnionRegion(
+
+#### XUnloadFont ####
+ClDisplay.c:63: XUnloadFont (dpy, dpy->cursor_font);
+UnldFont.c:33:XUnloadFont(
+Xlib.h:3517:extern int XUnloadFont(
+
+#### XUnlockDisplay ####
+LockDis.c:75:XUnlockDisplay(
+locking.c:205:static void _XUnlockDisplay(
+locking.c:552: dpy->lock_fns->unlock_display = _XUnlockDisplay;
+Xlib.h:1743:extern void XUnlockDisplay(
+
+#### XUnmapSubwindows ####
+UnmapSubs.c:33:XUnmapSubwindows(
+Xlib.h:3522:extern int XUnmapSubwindows(
+
+#### XUnmapWindow ####
+UnmapWin.c:33:XUnmapWindow (
+Withdraw.c:70: XUnmapWindow (dpy, w);
+Xlib.h:3527:extern int XUnmapWindow(
+
+#### XUnregisterIMInstantiateCallback ####
+IMWrap.c:186:XUnregisterIMInstantiateCallback(
+Xlib.h:3962:extern Bool XUnregisterIMInstantiateCallback(
+
+#### XUnsetICFocus ####
+ICWrap.c:356:XUnsetICFocus(XIC ic)
+Xlib.h:3887:extern void XUnsetICFocus(
+
+#### XVaCreateNestedList ####
+ICWrap.c:149:XVaCreateNestedList(int dummy, ...)
+Xlib.h:3947:extern XVaNestedList XVaCreateNestedList(
+
+#### XVendorRelease ####
+Macros.c:119:int XVendorRelease(Display *dpy) { return (VendorRelease(dpy)); }
+Xlib.h:3532:extern int XVendorRelease(
+
+#### XVisualIDFromVisual ####
+Misc.c:58:VisualID XVisualIDFromVisual(Visual *visual)
+Xlib.h:1729:extern VisualID XVisualIDFromVisual(
+
+#### XWMGeometry ####
+WMGeom.c:46:XWMGeometry (
+Xutil.h:813:extern int XWMGeometry(
+
+#### XWarpPointer ####
+WarpPtr.c:33:XWarpPointer(
+Xlib.h:3536:extern int XWarpPointer(
+
+#### XWhitePixel ####
+Macros.c:72:unsigned long XWhitePixel(Display *dpy, int scr)
+Macros.c:189:unsigned long XWhitePixelOfScreen(Screen *s)
+Xlib.h:1794:extern unsigned long XWhitePixel(
+Xlib.h:1804:extern unsigned long XWhitePixelOfScreen(
+
+#### XWhitePixelOfScreen ####
+Macros.c:189:unsigned long XWhitePixelOfScreen(Screen *s)
+Xlib.h:1804:extern unsigned long XWhitePixelOfScreen(
+
+#### XWidthMMOfScreen ####
+Macros.c:218:int XWidthMMOfScreen(Screen *s) { return (WidthMMOfScreen(s)); }
+Xlib.h:3548:extern int XWidthMMOfScreen(
+
+#### XWidthOfScreen ####
+Macros.c:214:int XWidthOfScreen(Screen *s) { return (WidthOfScreen(s)); }
+Xlib.h:3552:extern int XWidthOfScreen(
+
+#### XWindowEvent ####
+WinEvent.c:46:XWindowEvent (
+Xlib.h:3556:extern int XWindowEvent(
+
+#### XWithdrawWindow ####
+Withdraw.c:65:Status XWithdrawWindow (
+Xlib.h:1900:extern Status XWithdrawWindow(
+
+#### XWriteBitmapFile ####
+WrBitF.c:87:XWriteBitmapFile(
+Xlib.h:3563:extern int XWriteBitmapFile(
+Xutil.h:338: * return codes for XReadBitmapFile and XWriteBitmapFile
+
+#### XXorRegion ####
+Region.c:1453:XXorRegion(Region sra, Region srb, Region dr)
+Xutil.h:827:extern int XXorRegion(
+
+#### XauDisposeAuth ####
+AuDispose.c:35:XauDisposeAuth (auth)
+AuGetBest.c:159: XauDisposeAuth (best);
+AuGetBest.c:167: XauDisposeAuth (entry);
+ConnDis.c:1482: if (authptr) XauDisposeAuth (authptr);
+
+#### XauFileName ####
+AuFileName.c:36:XauFileName ()
+AuGetBest.c:82: auth_name = XauFileName ();
+
+#### XauGetBestAuthByAddr ####
+AuGetBest.c:52:XauGetBestAuthByAddr (
+ConnDis.c:1294: authptr = XauGetBestAuthByAddr ((unsigned short) family,
+
+#### XauReadAuth ####
+AuGetBest.c:114: entry = XauReadAuth (auth_file);
+AuRead.c:97:XauReadAuth (auth_file)
+
+#### XcmsAddColorSpace ####
+AddDIC.c:30: * Source for XcmsAddColorSpace
+AddDIC.c:53: * XcmsAddColorSpace - Add a Device-Independent Color Space
+AddDIC.c:58:XcmsAddColorSpace(XcmsColorSpace *pCS)
+HVCGcC.c:107: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCGcV.c:98: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCGcVC.c:109: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMnV.c:114: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxC.c:117: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxV.c:115: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxVC.c:217: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxVs.c:112: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCWpAj.c:95: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+Xcms.h:346:extern Status XcmsAddColorSpace (
+
+#### XcmsAddFunctionSet ####
+AddSF.c:30: * Source for XcmsAddFunctionSet
+AddSF.c:52: * XcmsAddFunctionSet - Add an Screen Color Characterization
+AddSF.c:58:XcmsAddFunctionSet(XcmsFunctionSet *pNewFS)
+Xcms.h:350:extern Status XcmsAddFunctionSet (
+
+#### XcmsAllocColor ####
+cmsAllCol.c:30: * Source for XcmsAllocColor
+cmsAllCol.c:45: * XcmsAllocColor - Allocate Color
+cmsAllCol.c:50:XcmsAllocColor(
+cmsAllCol.c:58: * specification, XcmsAllocColor will convert it to X RGB
+SetGetCols.c:74: * XcmsAllocColor
+Xcms.h:354:extern Status XcmsAllocColor (
+
+#### XcmsAllocNamedColor ####
+cmsAllNCol.c:30: * Source for XcmsAllocNamedColor
+cmsAllNCol.c:46: * XcmsAllocNamedColor -
+cmsAllNCol.c:51:XcmsAllocNamedColor (
+Xcms.h:361:extern Status XcmsAllocNamedColor (
+
+#### XcmsCCCOfColormap ####
+cmsAllNCol.c:92: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
+cmsCmap.c:405: * XcmsCCCOfColormap
+cmsCmap.c:410:XcmsCCCOfColormap(
+cmsLkCol.c:89: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
+GetColor.c:55: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
+LookupCol.c:53: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
+ParseCol.c:90: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
+SetGetCols.c:111: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
+SetGetCols.c:233: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
+StNColor.c:53: if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
+Xcms.h:370:extern XcmsCCC XcmsCCCOfColormap (
+
+#### XcmsCIELabClipL ####
+LabGcL.c:29: * Source for XcmsCIELabClipL() gamut compression routine.
+LabGcL.c:49: * XcmsCIELabClipL - Return the closest L*
+LabGcL.c:55:XcmsCIELabClipL (
+LabGcLC.c:29: * Source for XcmsCIELabClipLab() gamut
+LabGcLC.c:57: * XcmsCIELabClipLab - Return the closest L* and chroma
+LabGcLC.c:63:XcmsCIELabClipLab (
+Xcms.h:383:extern Status XcmsCIELabClipL(
+Xcms.h:391:extern Status XcmsCIELabClipLab(
+
+#### XcmsCIELabClipLab ####
+LabGcLC.c:29: * Source for XcmsCIELabClipLab() gamut
+LabGcLC.c:57: * XcmsCIELabClipLab - Return the closest L* and chroma
+LabGcLC.c:63:XcmsCIELabClipLab (
+Xcms.h:391:extern Status XcmsCIELabClipLab(
+
+#### XcmsCIELabClipab ####
+LabGcC.c:49: * XcmsCIELabClipab - Reduce the chroma for a hue and L*
+LabGcC.c:55:XcmsCIELabClipab (
+Xcms.h:375:extern Status XcmsCIELabClipab(
+
+#### XcmsCIELabColorSpace ####
+cmsGlobls.c:55: &XcmsCIELabColorSpace,
+Lab.c:97:XcmsColorSpace XcmsCIELabColorSpace =
+Cv.h:20:extern XcmsColorSpace XcmsCIELabColorSpace;
+
+#### XcmsCIELabQueryMaxC ####
+LabGcC.c:113: if (XcmsCIELabQueryMaxC(ccc,
+LabMxC.c:31: * Source for the XcmsCIELabQueryMaxC() gamut boundary
+LabMxC.c:61: * XcmsCIELabQueryMaxC - max chroma for a hue_angle and L_star
+LabMxC.c:66:XcmsCIELabQueryMaxC(
+Xcms.h:399:extern Status XcmsCIELabQueryMaxC (
+
+#### XcmsCIELabQueryMaxL ####
+LabGcL.c:119: if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max,
+LabGcL.c:162: if (XcmsCIELabQueryMaxL(&myCCC, degrees(hue), chroma, pColor)
+LabGcLC.c:141: if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max, &rgb_max)
+LabMnL.c:119: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxC.c:125: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxL.c:29: * Source for the XcmsCIELabQueryMaxL() gamut boundary
+LabMxL.c:58: * XcmsCIELabQueryMaxL - Compute max Lstar for a hue and chroma
+LabMxL.c:63:XcmsCIELabQueryMaxL(
+LabMxL.c:119: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxLC.c:31: * Source for the XcmsCIELabQueryMaxLC() gamut boundary
+LabMxLC.c:67: * _XcmsCIELabQueryMaxLCRGB - Compute maximum L* and chroma.
+LabMxLC.c:72:_XcmsCIELabQueryMaxLCRGB(
+LabMxLC.c:168: * XcmsCIELabQueryMaxLC - Compute maximum L* and chroma.
+LabMxLC.c:173:XcmsCIELabQueryMaxLC (
+LabMxLC.c:216: return(_XcmsCIELabQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
+Cv.h:67:_XcmsCIELabQueryMaxLCRGB(
+Xcms.h:406:extern Status XcmsCIELabQueryMaxL (
+Xcms.h:413:extern Status XcmsCIELabQueryMaxLC (
+
+#### XcmsCIELabQueryMaxLC ####
+LabGcL.c:119: if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max,
+LabGcLC.c:141: if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max, &rgb_max)
+LabMnL.c:119: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxC.c:125: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxL.c:119: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxLC.c:31: * Source for the XcmsCIELabQueryMaxLC() gamut boundary
+LabMxLC.c:67: * _XcmsCIELabQueryMaxLCRGB - Compute maximum L* and chroma.
+LabMxLC.c:72:_XcmsCIELabQueryMaxLCRGB(
+LabMxLC.c:168: * XcmsCIELabQueryMaxLC - Compute maximum L* and chroma.
+LabMxLC.c:173:XcmsCIELabQueryMaxLC (
+LabMxLC.c:216: return(_XcmsCIELabQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
+Cv.h:67:_XcmsCIELabQueryMaxLCRGB(
+Xcms.h:413:extern Status XcmsCIELabQueryMaxLC (
+
+#### XcmsCIELabQueryMinL ####
+LabGcL.c:147: if (XcmsCIELabQueryMinL(&myCCC, degrees(hue), chroma, pColor)
+LabMnL.c:29: * Source for the XcmsCIELabQueryMinL() gamut boundary
+LabMnL.c:58: * XcmsCIELabQueryMinL - Compute max Lstar for a hue and chroma
+LabMnL.c:63:XcmsCIELabQueryMinL(
+Xcms.h:419:extern Status XcmsCIELabQueryMinL (
+
+#### XcmsCIELabToCIEXYZ ####
+Lab.c:78: XcmsCIELabToCIEXYZ,
+Lab.c:228: * XcmsCIELabToCIEXYZ - convert CIELab to CIEXYZ
+Lab.c:233:XcmsCIELabToCIEXYZ(
+Xcms.h:426:extern Status XcmsCIELabToCIEXYZ (
+
+#### XcmsCIELabWhiteShiftColors ####
+LabWpAj.c:55: * XcmsCIELabWhiteShiftColors
+LabWpAj.c:60:XcmsCIELabWhiteShiftColors(
+Xcms.h:433:extern Status XcmsCIELabWhiteShiftColors(
+
+#### XcmsCIELuvClipL ####
+LuvGcL.c:29: * Source for XcmsCIELuvClipL() gamut compression routine.
+LuvGcL.c:49: * XcmsCIELuvClipL - Return the closest L*
+LuvGcL.c:55:XcmsCIELuvClipL (
+LuvGcLC.c:29: * Source for XcmsCIELuvClipLuv() gamut
+LuvGcLC.c:57: * XcmsCIELuvClipLuv - Return the closest L* and chroma
+LuvGcLC.c:63:XcmsCIELuvClipLuv (
+Xcms.h:443:extern Status XcmsCIELuvClipL(
+Xcms.h:451:extern Status XcmsCIELuvClipLuv(
+
+#### XcmsCIELuvClipLuv ####
+LuvGcLC.c:29: * Source for XcmsCIELuvClipLuv() gamut
+LuvGcLC.c:57: * XcmsCIELuvClipLuv - Return the closest L* and chroma
+LuvGcLC.c:63:XcmsCIELuvClipLuv (
+Xcms.h:451:extern Status XcmsCIELuvClipLuv(
+
+#### XcmsCIELuvClipuv ####
+LuvGcC.c:29: * Source for XcmsCIELuvClipuv() gamut compression routine.
+LuvGcC.c:49: * XcmsCIELuvClipuv - Reduce the chroma for a hue and L*
+LuvGcC.c:55:XcmsCIELuvClipuv (
+Xcms.h:459:extern Status XcmsCIELuvClipuv(
+
+#### XcmsCIELuvColorSpace ####
+cmsGlobls.c:56: &XcmsCIELuvColorSpace,
+Luv.c:100:XcmsColorSpace XcmsCIELuvColorSpace =
+Cv.h:21:extern XcmsColorSpace XcmsCIELuvColorSpace;
+
+#### XcmsCIELuvQueryMaxC ####
+LuvGcC.c:113: if (XcmsCIELuvQueryMaxC(ccc,
+LuvMxC.c:31: * Source for the XcmsCIELuvQueryMaxC() gamut boundary
+LuvMxC.c:61: * XcmsCIELuvQueryMaxC - max chroma for a hue_angle and L_star
+LuvMxC.c:66:XcmsCIELuvQueryMaxC(
+Xcms.h:467:extern Status XcmsCIELuvQueryMaxC (
+
+#### XcmsCIELuvQueryMaxL ####
+LuvGcL.c:119: if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max,
+LuvGcL.c:162: if (XcmsCIELuvQueryMaxL(&myCCC, degrees(hue), chroma, pColor)
+LuvGcLC.c:141: if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max, &rgb_max)
+LuvMnL.c:119: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxC.c:125: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxL.c:29: * Source for the XcmsCIELuvQueryMaxL() gamut boundary
+LuvMxL.c:58: * XcmsCIELuvQueryMaxL - Compute max Lstar for a hue and chroma
+LuvMxL.c:63:XcmsCIELuvQueryMaxL(
+LuvMxL.c:119: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxLC.c:31: * Source for the XcmsCIELuvQueryMaxLC() gamut boundary
+LuvMxLC.c:67: * _XcmsCIELuvQueryMaxLCRGB - Compute maximum L* and chroma.
+LuvMxLC.c:72:_XcmsCIELuvQueryMaxLCRGB(
+LuvMxLC.c:168: * XcmsCIELuvQueryMaxLC - Compute maximum L* and chroma.
+LuvMxLC.c:173:XcmsCIELuvQueryMaxLC (
+LuvMxLC.c:216: return(_XcmsCIELuvQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
+Cv.h:129:_XcmsCIELuvQueryMaxLCRGB(
+Xcms.h:474:extern Status XcmsCIELuvQueryMaxL (
+Xcms.h:481:extern Status XcmsCIELuvQueryMaxLC (
+
+#### XcmsCIELuvQueryMaxLC ####
+LuvGcL.c:119: if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max,
+LuvGcLC.c:141: if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max, &rgb_max)
+LuvMnL.c:119: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxC.c:125: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxL.c:119: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxLC.c:31: * Source for the XcmsCIELuvQueryMaxLC() gamut boundary
+LuvMxLC.c:67: * _XcmsCIELuvQueryMaxLCRGB - Compute maximum L* and chroma.
+LuvMxLC.c:72:_XcmsCIELuvQueryMaxLCRGB(
+LuvMxLC.c:168: * XcmsCIELuvQueryMaxLC - Compute maximum L* and chroma.
+LuvMxLC.c:173:XcmsCIELuvQueryMaxLC (
+LuvMxLC.c:216: return(_XcmsCIELuvQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
+Cv.h:129:_XcmsCIELuvQueryMaxLCRGB(
+Xcms.h:481:extern Status XcmsCIELuvQueryMaxLC (
+
+#### XcmsCIELuvQueryMinL ####
+LuvGcL.c:147: if (XcmsCIELuvQueryMinL(&myCCC, degrees(hue), chroma, pColor)
+LuvMnL.c:29: * Source for the XcmsCIELuvQueryMinL() gamut boundary
+LuvMnL.c:58: * XcmsCIELuvQueryMinL - Compute max Lstar for a hue and chroma
+LuvMnL.c:63:XcmsCIELuvQueryMinL(
+Xcms.h:487:extern Status XcmsCIELuvQueryMinL (
+
+#### XcmsCIELuvToCIEuvY ####
+Luv.c:79: XcmsCIELuvToCIEuvY,
+Luv.c:229: * XcmsCIELuvToCIEuvY - convert CIELuv to CIEuvY
+Luv.c:234:XcmsCIELuvToCIEuvY(
+Xcms.h:494:extern Status XcmsCIELuvToCIEuvY (
+
+#### XcmsCIELuvWhiteShiftColors ####
+LuvWpAj.c:52: * XcmsCIELuvWhiteShiftColors
+LuvWpAj.c:57:XcmsCIELuvWhiteShiftColors(
+Xcms.h:501:extern Status XcmsCIELuvWhiteShiftColors(
+
+#### XcmsCIEXYZColorSpace ####
+cmsGlobls.c:52: &XcmsCIEXYZColorSpace,
+XYZ.c:80:XcmsColorSpace XcmsCIEXYZColorSpace =
+Cv.h:17:extern XcmsColorSpace XcmsCIEXYZColorSpace;
+
+#### XcmsCIEXYZToCIELab ####
+Lab.c:86: XcmsCIEXYZToCIELab,
+Lab.c:331: * XcmsCIEXYZToCIELab - convert CIEXYZ to CIELab
+Lab.c:336:XcmsCIEXYZToCIELab(
+Xcms.h:511:extern Status XcmsCIEXYZToCIELab (
+
+#### XcmsCIEXYZToCIEuvY ####
+HVC.c:120: XcmsCIEXYZToCIEuvY,
+Luv.c:88: XcmsCIEXYZToCIEuvY,
+uvY.c:81: XcmsCIEXYZToCIEuvY,
+uvY.c:338: * XcmsCIEXYZToCIEuvY - convert CIEXYZ to CIEuvY
+uvY.c:343:XcmsCIEXYZToCIEuvY(
+Xcms.h:518:extern Status XcmsCIEXYZToCIEuvY (
+
+#### XcmsCIEXYZToCIExyY ####
+xyY.c:80: XcmsCIEXYZToCIExyY,
+xyY.c:337: * XcmsCIEXYZToCIExyY - convert CIEXYZ to CIExyY
+xyY.c:343:XcmsCIEXYZToCIExyY(
+Xcms.h:525:extern Status XcmsCIEXYZToCIExyY (
+
+#### XcmsCIEXYZToRGBi ####
+LRGB.c:138: (XcmsConversionProc)XcmsCIEXYZToRGBi,
+LRGB.c:159: (XcmsConversionProc)XcmsCIEXYZToRGBi,
+LRGB.c:1458: * XcmsCIEXYZToRGBi - convert CIE XYZ to RGB
+LRGB.c:1464:XcmsCIEXYZToRGBi(
+Xcms.h:532:extern Status XcmsCIEXYZToRGBi (
+
+#### XcmsCIEuvYColorSpace ####
+cmsGlobls.c:53: &XcmsCIEuvYColorSpace,
+uvY.c:93:XcmsColorSpace XcmsCIEuvYColorSpace =
+Cv.h:18:extern XcmsColorSpace XcmsCIEuvYColorSpace;
+
+#### XcmsCIEuvYToCIELuv ####
+Luv.c:89: XcmsCIEuvYToCIELuv,
+Luv.c:321: * XcmsCIEuvYToCIELuv - convert CIEuvY to CIELuv
+Luv.c:326:XcmsCIEuvYToCIELuv(
+Xcms.h:539:extern Status XcmsCIEuvYToCIELuv (
+
+#### XcmsCIEuvYToCIEXYZ ####
+HVC.c:112: XcmsCIEuvYToCIEXYZ,
+Luv.c:80: XcmsCIEuvYToCIEXYZ,
+uvY.c:73: XcmsCIEuvYToCIEXYZ,
+uvY.c:223: * XcmsCIEuvYToCIEXYZ - convert CIEuvY to CIEXYZ
+uvY.c:228:XcmsCIEuvYToCIEXYZ(
+Xcms.h:546:extern Status XcmsCIEuvYToCIEXYZ (
+
+#### XcmsCIEuvYToTekHVC ####
+HVC.c:121: XcmsCIEuvYToTekHVC,
+HVC.c:446: * XcmsCIEuvYToTekHVC - convert CIEuvY to TekHVC
+HVC.c:451:XcmsCIEuvYToTekHVC(
+Xcms.h:553:extern Status XcmsCIEuvYToTekHVC (
+
+#### XcmsCIExyYColorSpace ####
+cmsGlobls.c:54: &XcmsCIExyYColorSpace,
+xyY.c:92:XcmsColorSpace XcmsCIExyYColorSpace =
+Cv.h:19:extern XcmsColorSpace XcmsCIExyYColorSpace;
+
+#### XcmsCIExyYToCIEXYZ ####
+xyY.c:72: XcmsCIExyYToCIEXYZ,
+xyY.c:231: * XcmsCIExyYToCIEXYZ - convert CIExyY to CIEXYZ
+xyY.c:236:XcmsCIExyYToCIEXYZ(
+Xcms.h:560:extern Status XcmsCIExyYToCIEXYZ (
+
+#### XcmsClientWhitePointOfCCC ####
+OfCCC.c:144: * XcmsClientWhitePointOfCCC
+OfCCC.c:150:XcmsClientWhitePointOfCCC(
+Xcms.h:567:extern XcmsColor *XcmsClientWhitePointOfCCC (
+
+#### XcmsConvertColors ####
+cmsAllNCol.c:112: if ((retval2 = XcmsConvertColors(ccc, &tmpColor,
+cmsAllNCol.c:137: if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
+cmsAllNCol.c:187: if (XcmsConvertColors(ccc, pColor_exact_return, 1, result_format,
+cmsAllNCol.c:191: if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
+cmsColNm.c:887: return(XcmsConvertColors(ccc, pColor_exact_return, 1,
+cmsLkCol.c:117: } else if ((retval2 = XcmsConvertColors(ccc, pColor_scrn_return, 1,
+cmsLkCol.c:135: if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
+cmsLkCol.c:182: if (XcmsConvertColors(ccc, pColor_exact_return, 1, result_format,
+cmsLkCol.c:186: if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
+CvCols.c:710: * XcmsConvertColors - Convert XcmsColor structures
+CvCols.c:715:XcmsConvertColors(
+CvColW.c:53: * _XcmsConvertColorsWithWhitePt - Convert XcmsColor structures
+CvColW.c:58:_XcmsConvertColorsWithWhitePt(
+HVCGcVC.c:215: if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
+HVCMxC.c:178: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+HVCMxV.c:187: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+HVCMxVC.c:124: if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+HVCMxVC.c:157: if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+HVCMxVs.c:150: if (_XcmsConvertColorsWithWhitePt(&myCCC, pHVC,
+HVCWpAj.c:104: if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
+HVCWpAj.c:112: return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtTo,
+LabGcLC.c:181: if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
+LabMnL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LabMxC.c:166: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LabMxL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LabMxLC.c:116: if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp, ScreenWhitePointOfCCC(ccc),
+LabMxLC.c:149: if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+LabWpAj.c:87: if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
+LabWpAj.c:95: return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out,
+LuvGcLC.c:181: if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
+LuvMnL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LuvMxC.c:167: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LuvMxL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LuvMxLC.c:116: if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp, ScreenWhitePointOfCCC(ccc),
+LuvMxLC.c:149: if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+LuvWpAj.c:86: if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
+LuvWpAj.c:94: return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtTo,
+QBlack.c:79: if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
+QBlue.c:79: if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
+QGreen.c:79: if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
+QRed.c:79: if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
+QWhite.c:79: if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
+SetGetCols.c:122: if ((retval = XcmsConvertColors(ccc, pColors_in_out, 1, XcmsRGBFormat,
+SetGetCols.c:163: if (XcmsConvertColors(ccc, pColors_in_out, 1, result_format,
+SetGetCols.c:252: if ((retval = XcmsConvertColors(ccc, pColors_in_out, nColors, XcmsRGBFormat,
+SetGetCols.c:292: if (XcmsConvertColors(ccc, pColors_in_out, nColors, result_format,
+Cv.h:73:_XcmsConvertColorsWithWhitePt(
+Xcms.h:571:extern Status XcmsConvertColors (
+
+#### XcmsCreateCCC ####
+AddSF.c:76: * XcmsCreateCCC(). If not, XcmsCCC structures created
+CCC.c:82: * XcmsCreateCCC
+CCC.c:88:XcmsCreateCCC(
+CCC.c:259: * that was created with XcmsCreateCCC().
+cmsCmap.c:109: pRec->ccc = XcmsCreateCCC(
+cmsCmap.c:202: pRec->ccc = XcmsCreateCCC(
+cmsCmap.c:442: return(pRec->ccc = XcmsCreateCCC(
+cmsCmap.c:456: return(pRec->ccc = XcmsCreateCCC(
+cmsInt.c:321: * for the latter (see XcmsCreateCCC). The ones created
+Xcms.h:579:extern XcmsCCC XcmsCreateCCC (
+
+#### XcmsDefaultCCC ####
+CCC.c:108: XcmsCCC pDefaultCCC = XcmsDefaultCCC(dpy, screenNumber);
+CCC.c:168: * XcmsDefaultCCC
+CCC.c:173:XcmsDefaultCCC(
+cmsInt.c:205: * Note that the XcmsDefaultCCC routine calls _XcmsInitScrnInto
+Xcms.h:590:extern XcmsCCC XcmsDefaultCCC (
+
+#### XcmsDisplayOfCCC ####
+OfCCC.c:52: * XcmsDisplayOfCCC
+OfCCC.c:58:XcmsDisplayOfCCC(
+Xcms.h:595:extern Display *XcmsDisplayOfCCC (
+
+#### XcmsFormatOfPrefix ####
+AddDIC.c:66: * structures between clients! Use the routines XcmsFormatOfPrefix()
+AddSF.c:67: * across clients! Use the routines XcmsFormatOfPrefix()
+cmsColNm.c:802: * This routine is also used in XcmsFormatOfPrefix.
+IdOfPr.c:30: * Source for XcmsFormatOfPrefix()
+IdOfPr.c:45: * XcmsFormatOfPrefix
+IdOfPr.c:50:XcmsFormatOfPrefix(char *prefix)
+Xcms.h:599:extern XcmsColorFormat XcmsFormatOfPrefix (
+
+#### XcmsFreeCCC ####
+CCC.c:250: * XcmsFreeCCC
+CCC.c:255:XcmsFreeCCC(XcmsCCC ccc)
+cmsCmap.c:352: XcmsFreeCCC(pRec->ccc);
+cmsCmap.c:387: XcmsFreeCCC(pRecFree->ccc);
+cmsInt.c:241: * Do not use XcmsFreeCCC here because it will not free
+Xcms.h:603:extern void XcmsFreeCCC (
+
+#### XcmsLinearRGBFunctionSet ####
+cmsGlobls.c:87: &XcmsLinearRGBFunctionSet,
+HVCGcC.c:114: FunctionSetOfCCC(ccc) != (XPointer) &XcmsLinearRGBFunctionSet) {
+HVCGcV.c:119: FunctionSetOfCCC(ccc) != (XPointer) &XcmsLinearRGBFunctionSet) {
+HVCGcVC.c:130: FunctionSetOfCCC(ccc) != (XPointer) &XcmsLinearRGBFunctionSet) {
+LRGB.c:209:XcmsFunctionSet XcmsLinearRGBFunctionSet =
+LRGB.c:790: pPerScrnInfo->functionSet = (XPointer) &XcmsLinearRGBFunctionSet;
+LRGB.c:1838: pPerScrnInfo->functionSet = (XPointer)&XcmsLinearRGBFunctionSet;
+Cv.h:31:extern XcmsFunctionSet XcmsLinearRGBFunctionSet;
+
+#### XcmsLookupColor ####
+cmsColNm.c:29: * Source for _XcmsLookupColorName().
+cmsColNm.c:364: * _XcmsLookupColorName - Lookup DB entry for a color name
+cmsColNm.c:369:_XcmsLookupColorName(
+cmsColNm.c:843: * The XcmsLookupColor function finds the color specification
+cmsColNm.c:904: retval = _XcmsLookupColorName(ccc, color_string, pColor_exact_return);
+cmsColNm.c:973: if (_XcmsLookupColorName(ccc, &strptr, &dbWhitePt) != 1) {
+cmsLkCol.c:30: * Source for XcmsLookupColor
+cmsLkCol.c:46: * XcmsLookupColor -
+cmsLkCol.c:51:XcmsLookupColor (
+cmsLkCol.c:60: * The XcmsLookupColor function finds the color specification
+Xcms.h:607:extern Status XcmsLookupColor (
+
+#### XcmsPrefixOfFormat ####
+AddDIC.c:67: * and XcmsPrefixOfFormat() appropriately.
+AddSF.c:68: * and XcmsPrefixOfFormat() appropriately.
+PrOfId.c:30: * Source for XcmsPrefixOfFormat()
+PrOfId.c:50:XcmsPrefixOfFormat(
+Xcms.h:616:extern char *XcmsPrefixOfFormat (
+
+#### XcmsQueryBlack ####
+QBlack.c:52: * XcmsQueryBlack
+QBlack.c:58:XcmsQueryBlack(
+Xcms.h:620:extern Status XcmsQueryBlack (
+
+#### XcmsQueryBlue ####
+QBlue.c:52: * XcmsQueryBlue
+QBlue.c:58:XcmsQueryBlue(
+Xcms.h:626:extern Status XcmsQueryBlue (
+
+#### XcmsQueryColor ####
+QuCol.c:30: * Source for XcmsQueryColors
+QuCol.c:51: * XcmsQueryColor - Query Color
+QuCol.c:56:XcmsQueryColor(
+QuCols.c:30: * Source for XcmsQueryColors
+QuCols.c:50: * XcmsQueryColors - Query Colors
+QuCols.c:55:XcmsQueryColors(
+SetGetCols.c:75: * XcmsQueryColor
+SetGetCols.c:193: * XcmsQueryColors
+Xcms.h:632:extern Status XcmsQueryColor (
+Xcms.h:639:extern Status XcmsQueryColors (
+
+#### XcmsQueryColors ####
+QuCol.c:30: * Source for XcmsQueryColors
+QuCols.c:30: * Source for XcmsQueryColors
+QuCols.c:50: * XcmsQueryColors - Query Colors
+QuCols.c:55:XcmsQueryColors(
+SetGetCols.c:193: * XcmsQueryColors
+Xcms.h:639:extern Status XcmsQueryColors (
+
+#### XcmsQueryGreen ####
+QGreen.c:52: * XcmsQueryGreen
+QGreen.c:58:XcmsQueryGreen(
+Xcms.h:647:extern Status XcmsQueryGreen (
+
+#### XcmsQueryRed ####
+QRed.c:52: * XcmsQueryRed
+QRed.c:58:XcmsQueryRed(
+Xcms.h:653:extern Status XcmsQueryRed (
+
+#### XcmsQueryWhite ####
+QWhite.c:52: * XcmsQueryWhite
+QWhite.c:58:XcmsQueryWhite(
+Xcms.h:659:extern Status XcmsQueryWhite (
+
+#### XcmsRGBColorSpace ####
+cmsGlobls.c:72: &XcmsRGBColorSpace,
+LRGB.c:179:XcmsColorSpace XcmsRGBColorSpace =
+LRGB.c:194: &XcmsRGBColorSpace,
+Cv.h:22:extern XcmsColorSpace XcmsRGBColorSpace;
+
+#### XcmsRGBToRGBi ####
+LRGB.c:127: (XcmsConversionProc)XcmsRGBToRGBi,
+LRGB.c:1716: * XcmsRGBToRGBi
+LRGB.c:1722:XcmsRGBToRGBi(
+Xcms.h:679:extern Status XcmsRGBToRGBi (
+
+#### XcmsRGBiColorSpace ####
+cmsGlobls.c:73: &XcmsRGBiColorSpace,
+LRGB.c:166:XcmsColorSpace XcmsRGBiColorSpace =
+LRGB.c:195: &XcmsRGBiColorSpace,
+Cv.h:23:extern XcmsColorSpace XcmsRGBiColorSpace;
+
+#### XcmsRGBiToCIEXYZ ####
+LRGB.c:128: (XcmsConversionProc)XcmsRGBiToCIEXYZ,
+LRGB.c:149: (XcmsConversionProc)XcmsRGBiToCIEXYZ,
+LRGB.c:1586:XcmsRGBiToCIEXYZ(
+Xcms.h:665:extern Status XcmsRGBiToCIEXYZ (
+
+#### XcmsRGBiToRGB ####
+LRGB.c:139: (XcmsConversionProc)XcmsRGBiToRGB,
+LRGB.c:1633: * XcmsRGBiToRGB
+LRGB.c:1639:XcmsRGBiToRGB(
+Xcms.h:672:extern Status XcmsRGBiToRGB (
+
+#### XcmsScreenNumberOfCCC ####
+OfCCC.c:98: * XcmsScreenNumberOfCCC
+OfCCC.c:104:XcmsScreenNumberOfCCC(
+Xcms.h:686:extern int XcmsScreenNumberOfCCC (
+
+#### XcmsScreenWhitePointOfCCC ####
+OfCCC.c:121: * XcmsScreenWhitePointOfCCC
+OfCCC.c:127:XcmsScreenWhitePointOfCCC(
+Xcms.h:690:extern XcmsColor *XcmsScreenWhitePointOfCCC (
+
+#### XcmsSetCCCOfColormap ####
+cmsCmap.c:478:XcmsCCC XcmsSetCCCOfColormap(
+Xcms.h:694:extern XcmsCCC XcmsSetCCCOfColormap(
+
+#### XcmsSetCompressionProc ####
+SetCCC.c:85: * XcmsSetCompressionProc
+SetCCC.c:91:XcmsSetCompressionProc(
+Xcms.h:700:extern XcmsCompressionProc XcmsSetCompressionProc (
+
+#### XcmsSetWhiteAdjustProc ####
+SetCCC.c:114: * XcmsSetWhiteAdjustProc
+SetCCC.c:120:XcmsSetWhiteAdjustProc(
+Xcms.h:706:extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc (
+
+#### XcmsSetWhitePoint ####
+SetCCC.c:52: * XcmsSetWhitePoint
+SetCCC.c:58:XcmsSetWhitePoint(
+Xcms.h:712:extern Status XcmsSetWhitePoint (
+
+#### XcmsStoreColor ####
+SetGetCols.c:76: * XcmsStoreColor
+SetGetCols.c:194: * XcmsStoreColors
+StCol.c:30: * Source for XcmsStoreColor
+StCol.c:51: * XcmsStoreColor - Store Color
+StCol.c:56:XcmsStoreColor(
+StCols.c:30: * Source for XcmsStoreColors
+StCols.c:51: * XcmsStoreColors - Store Colors
+StCols.c:56:XcmsStoreColors(
+Xcms.h:717:extern Status XcmsStoreColor (
+Xcms.h:723:extern Status XcmsStoreColors (
+
+#### XcmsStoreColors ####
+SetGetCols.c:194: * XcmsStoreColors
+StCols.c:30: * Source for XcmsStoreColors
+StCols.c:51: * XcmsStoreColors - Store Colors
+StCols.c:56:XcmsStoreColors(
+Xcms.h:723:extern Status XcmsStoreColors (
+
+#### XcmsTekHVCClipC ####
+cmsInt.c:46:# define XCMSCOMPPROC XcmsTekHVCClipC
+HVCGcC.c:42: * Source for XcmsTekHVCClipC() gamut compression routine.
+HVCGcC.c:62: * XcmsTekHVCClipC - Reduce the chroma for a hue and value
+HVCGcC.c:68:XcmsTekHVCClipC (
+Xcms.h:731:extern Status XcmsTekHVCClipC(
+
+#### XcmsTekHVCClipV ####
+HVCGcV.c:42: * Source for XcmsTekHVCClipV() gamut compression routine.
+HVCGcV.c:62: * XcmsTekHVCClipV - Return the closest value
+HVCGcV.c:68:XcmsTekHVCClipV (
+HVCGcVC.c:42: * Source for XcmsTekHVCClipVC() gamut
+HVCGcVC.c:70: * XcmsTekHVCClipVC - Return the closest value and chroma
+HVCGcVC.c:76:XcmsTekHVCClipVC (
+Xcms.h:739:extern Status XcmsTekHVCClipV(
+Xcms.h:747:extern Status XcmsTekHVCClipVC(
+
+#### XcmsTekHVCClipVC ####
+HVCGcVC.c:42: * Source for XcmsTekHVCClipVC() gamut
+HVCGcVC.c:70: * XcmsTekHVCClipVC - Return the closest value and chroma
+HVCGcVC.c:76:XcmsTekHVCClipVC (
+Xcms.h:747:extern Status XcmsTekHVCClipVC(
+
+#### XcmsTekHVCColorSpace ####
+cmsGlobls.c:57: &XcmsTekHVCColorSpace,
+HVC.c:132:XcmsColorSpace XcmsTekHVCColorSpace =
+HVCGcC.c:107: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCGcV.c:98: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCGcVC.c:109: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMnV.c:114: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxC.c:117: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxV.c:115: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxVC.c:217: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCMxVs.c:112: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+HVCWpAj.c:95: if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
+Cv.h:16:extern XcmsColorSpace XcmsTekHVCColorSpace;
+
+#### XcmsTekHVCQueryMaxC ####
+HVCGcC.c:135: if (XcmsTekHVCQueryMaxC(ccc,
+HVCMxC.c:42: * Source for the XcmsTekHVCQueryMaxC() gamut boudary
+HVCMxC.c:70: * XcmsTekHVCQueryMaxC - Compute the maximum chroma for a hue and value
+HVCMxC.c:75:XcmsTekHVCQueryMaxC(
+Xcms.h:755:extern Status XcmsTekHVCQueryMaxC (
+
+#### XcmsTekHVCQueryMaxV ####
+HVCGcV.c:140: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
+HVCGcV.c:186: if (XcmsTekHVCQueryMaxV(&myCCC,
+HVCGcVC.c:158: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
+HVCMnV.c:138: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, max_vc.spec.TekHVC.H, &max_vc,
+HVCMxC.c:139: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, hue, &max_vc, &rgb_saved)
+HVCMxV.c:42: * Source for the XcmsTekHVCQueryMaxV() gamut boundary
+HVCMxV.c:70: * XcmsTekHVCQueryMaxV - Compute maximum value for a hue and chroma
+HVCMxV.c:75:XcmsTekHVCQueryMaxV(
+HVCMxV.c:138: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, max_vc.spec.TekHVC.H, &max_vc, &rgb_saved)
+HVCMxVC.c:42: * Source for the XcmsTekHVCQueryMaxVC() gamut boundary
+HVCMxVC.c:73: * _XcmsTekHVCQueryMaxVCRGB - Compute maximum value/chroma.
+HVCMxVC.c:78:_XcmsTekHVCQueryMaxVCRGB(
+HVCMxVC.c:178: * XcmsTekHVCQueryMaxVC - Compute maximum value and chroma.
+HVCMxVC.c:183:XcmsTekHVCQueryMaxVC (
+HVCMxVC.c:233: return(_XcmsTekHVCQueryMaxVCRGB (&myCCC, hue, pColor_return,
+HVCMxVs.c:42: * Source for the XcmsTekHVCQueryMaxVSamples() gamut boundary
+HVCMxVs.c:62: * XcmsTekHVCQueryMaxVSamples - Compute a set of value/chroma
+HVCMxVs.c:68:XcmsTekHVCQueryMaxVSamples(
+HVCMxVs.c:135: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, pColor_in_out->spec.TekHVC.H,
+Cv.h:61:_XcmsTekHVCQueryMaxVCRGB(
+Xcms.h:762:extern Status XcmsTekHVCQueryMaxV (
+Xcms.h:769:extern Status XcmsTekHVCQueryMaxVC (
+Xcms.h:775:extern Status XcmsTekHVCQueryMaxVSamples (
+
+#### XcmsTekHVCQueryMaxVC ####
+HVCGcV.c:140: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
+HVCGcVC.c:158: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
+HVCMnV.c:138: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, max_vc.spec.TekHVC.H, &max_vc,
+HVCMxC.c:139: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, hue, &max_vc, &rgb_saved)
+HVCMxV.c:138: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, max_vc.spec.TekHVC.H, &max_vc, &rgb_saved)
+HVCMxVC.c:42: * Source for the XcmsTekHVCQueryMaxVC() gamut boundary
+HVCMxVC.c:73: * _XcmsTekHVCQueryMaxVCRGB - Compute maximum value/chroma.
+HVCMxVC.c:78:_XcmsTekHVCQueryMaxVCRGB(
+HVCMxVC.c:178: * XcmsTekHVCQueryMaxVC - Compute maximum value and chroma.
+HVCMxVC.c:183:XcmsTekHVCQueryMaxVC (
+HVCMxVC.c:233: return(_XcmsTekHVCQueryMaxVCRGB (&myCCC, hue, pColor_return,
+HVCMxVs.c:135: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, pColor_in_out->spec.TekHVC.H,
+Cv.h:61:_XcmsTekHVCQueryMaxVCRGB(
+Xcms.h:769:extern Status XcmsTekHVCQueryMaxVC (
+
+#### XcmsTekHVCQueryMaxVSamples ####
+HVCMxVs.c:42: * Source for the XcmsTekHVCQueryMaxVSamples() gamut boundary
+HVCMxVs.c:62: * XcmsTekHVCQueryMaxVSamples - Compute a set of value/chroma
+HVCMxVs.c:68:XcmsTekHVCQueryMaxVSamples(
+Xcms.h:775:extern Status XcmsTekHVCQueryMaxVSamples (
+
+#### XcmsTekHVCQueryMinV ####
+HVCMnV.c:42: * Source for XcmsTekHVCQueryMinV gamut boundary querying routine.
+HVCMnV.c:67: * XcmsTekHVCQueryMinV - Compute minimum value for hue and chroma
+HVCMnV.c:72:XcmsTekHVCQueryMinV (
+Xcms.h:782:extern Status XcmsTekHVCQueryMinV (
+
+#### XcmsTekHVCToCIEuvY ####
+HVC.c:111: XcmsTekHVCToCIEuvY,
+HVC.c:325: * XcmsTekHVCToCIEuvY - convert TekHVC to CIEuvY
+HVC.c:330:XcmsTekHVCToCIEuvY(
+Xcms.h:789:extern Status XcmsTekHVCToCIEuvY (
+
+#### XcmsTekHVCWhiteShiftColors ####
+HVCWpAj.c:63: * XcmsTekHVCWhiteShiftColors
+HVCWpAj.c:68:XcmsTekHVCWhiteShiftColors(
+Xcms.h:796:extern Status XcmsTekHVCWhiteShiftColors(
+
+#### XcmsUNDEFINEDColorSpace ####
+cmsGlobls.c:58: &XcmsUNDEFINEDColorSpace,
+UNDEFINED.c:80:XcmsColorSpace XcmsUNDEFINEDColorSpace =
+Cv.h:15:extern XcmsColorSpace XcmsUNDEFINEDColorSpace;
+
+#### XcmsVisualOfCCC ####
+OfCCC.c:75: * XcmsVisualOfCCC
+OfCCC.c:81:XcmsVisualOfCCC(
+Xcms.h:806:extern Visual *XcmsVisualOfCCC (
+
+#### XkbAddDeviceLedInfo ####
+XKBAlloc.c:343:XkbAddDeviceLedInfo(XkbDeviceInfoPtr devi, unsigned ledClass, unsigned ledId)
+XKBExtDev.c:124: devli = XkbAddDeviceLedInfo(devi, wireli->ledClass, wireli->ledID);
+XKBlib.h:1024:extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
+
+#### XkbAddGeomColor ####
+XKBGAlloc.c:714:XkbAddGeomColor(XkbGeometryPtr geom, char *spec, unsigned int pixel)
+XKBGeom.c:322: else if (XkbAddGeomColor(geom, spec, geom->num_colors) == NULL)
+
+#### XkbAddGeomDoodad ####
+XKBGAlloc.c:861:XkbAddGeomDoodad(XkbGeometryPtr geom, XkbSectionPtr section, Atom name)
+XKBGeom.c:411: doodad = XkbAddGeomDoodad(geom, section, doodadWire->any.name);
+
+#### XkbAddGeomKey ####
+XKBGAlloc.c:686:XkbAddGeomKeyAlias(XkbGeometryPtr geom, char *aliasStr, char *realStr)
+XKBGAlloc.c:787:XkbAddGeomKey(XkbRowPtr row)
+XKBGeom.c:556: key = XkbAddGeomKey(row);
+
+#### XkbAddGeomKeyAlias ####
+XKBGAlloc.c:686:XkbAddGeomKeyAlias(XkbGeometryPtr geom, char *aliasStr, char *realStr)
+
+#### XkbAddGeomOutline ####
+XKBGAlloc.c:741:XkbAddGeomOutline(XkbShapePtr shape, int sz_points)
+XKBGeom.c:368: ol = XkbAddGeomOutline(shape, olWire->nPoints);
+
+#### XkbAddGeomOverlay ####
+XKBGAlloc.c:899:XkbAddGeomOverlayKey(XkbOverlayPtr overlay,
+XKBGAlloc.c:935:XkbAddGeomOverlayRow(XkbOverlayPtr overlay, int row_under, int sz_keys)
+XKBGAlloc.c:967:XkbAddGeomOverlay(XkbSectionPtr section, Atom name, int sz_rows)
+XKBGeom.c:464: ol = XkbAddGeomOverlay(section, olWire->name, olWire->nRows);
+XKBGeom.c:477: row = XkbAddGeomOverlayRow(ol, rowWire->rowUnder, rowWire->nKeys);
+
+#### XkbAddGeomOverlayKey ####
+XKBGAlloc.c:899:XkbAddGeomOverlayKey(XkbOverlayPtr overlay,
+
+#### XkbAddGeomOverlayRow ####
+XKBGAlloc.c:935:XkbAddGeomOverlayRow(XkbOverlayPtr overlay, int row_under, int sz_keys)
+XKBGeom.c:477: row = XkbAddGeomOverlayRow(ol, rowWire->rowUnder, rowWire->nKeys);
+
+#### XkbAddGeomProperty ####
+XKBGAlloc.c:653:XkbAddGeomProperty(XkbGeometryPtr geom, char *name, char *value)
+XKBGeom.c:271: ok = ok && (XkbAddGeomProperty(geom, name, value) != NULL);
+
+#### XkbAddGeomRow ####
+XKBGAlloc.c:801:XkbAddGeomRow(XkbSectionPtr section, int sz_keys)
+XKBGeom.c:539: row = XkbAddGeomRow(section, rowWire->nKeys);
+
+#### XkbAddGeomSection ####
+XKBGAlloc.c:819:XkbAddGeomSection(XkbGeometryPtr geom,
+XKBGeom.c:517: section = XkbAddGeomSection(geom, sectionWire->name, sectionWire->nRows,
+
+#### XkbAddGeomShape ####
+XKBGAlloc.c:760:XkbAddGeomShape(XkbGeometryPtr geom, Atom name, int sz_outlines)
+XKBGeom.c:355: shape = XkbAddGeomShape(geom, shapeWire->name, shapeWire->nOutlines);
+
+#### XkbAddKeyType ####
+XKBMAlloc.c:279:XkbAddKeyType(XkbDescPtr xkb,
+XKBlib.h:676:extern XkbKeyTypePtr XkbAddKeyType(
+
+#### XkbAllocClientMap ####
+XKBGetMap.c:45: else if (XkbAllocClientMap(xkb, XkbKeyTypesMask, n) != Success)
+XKBGetMap.c:414: (XkbAllocClientMap(xkb, XkbModifierMapMask, 0) != Success)) {
+XKBGetMap.c:510: if (mask && (XkbAllocClientMap(xkb, mask, rep->nTypes) != Success))
+XKBMAlloc.c:42:XkbAllocClientMap(XkbDescPtr xkb, unsigned which, unsigned nTotalTypes)
+XKBMAlloc.c:55: fprintf(stderr, "bad keycode (%d,%d) in XkbAllocClientMap\n",
+XKBMAlloc.c:305: if (XkbAllocClientMap(xkb, XkbKeyTypesMask, tmp) != Success)
+XKBMAlloc.c:331: (XkbAllocClientMap(xkb, XkbKeyTypesMask, map->num_types + 1) !=
+XKBMisc.c:98: rtrn = XkbAllocClientMap(xkb, XkbKeyTypesMask, XkbNumRequiredTypes);
+XKBlib.h:652:extern Status XkbAllocClientMap(
+
+#### XkbAllocCompatMap ####
+XKBAlloc.c:44:XkbAllocCompatMap(XkbDescPtr xkb, unsigned which, unsigned nSI)
+XKBCompat.c:53: (XkbAllocCompatMap(xkb, XkbAllCompatMask, i) != Success))
+XKBlib.h:802:extern Status XkbAllocCompatMap(
+
+#### XkbAllocControls ####
+XKBAlloc.c:252:XkbAllocControls(XkbDescPtr xkb, unsigned which)
+XKBlib.h:770:extern Status XkbAllocControls(
+
+#### XkbAllocDeviceInfo ####
+XKBAlloc.c:418:XkbAllocDeviceInfo(unsigned deviceSpec, unsigned nButtons, unsigned szLeds)
+XKBExtDev.c:262: devi = XkbAllocDeviceInfo(rep.deviceID, rep.totalBtns, rep.nDeviceLedFBs);
+XKBlib.h:1035:extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
+
+#### XkbAllocGeomColors ####
+XKBGAlloc.c:529:XkbAllocGeomColors(XkbGeometryPtr geom, int nColors)
+XKBGeom.c:315: if ((rtrn = XkbAllocGeomColors(geom, rep->nColors)) == Success) {
+
+#### XkbAllocGeomDoodads ####
+XKBGAlloc.c:571:XkbAllocGeomDoodads(XkbGeometryPtr geom, int nDoodads)
+XKBGeom.c:597: if ((rtrn = XkbAllocGeomDoodads(geom, rep->nDoodads)) != Success)
+
+#### XkbAllocGeomKeyAliases ####
+XKBGAlloc.c:535:XkbAllocGeomKeyAliases(XkbGeometryPtr geom, int nKeyAliases)
+XKBGeom.c:293: if ((rtrn = XkbAllocGeomKeyAliases(geom, rep->nKeyAliases)) == Success) {
+
+#### XkbAllocGeomKeys ####
+XKBGAlloc.c:601:XkbAllocGeomKeys(XkbRowPtr row, int nKeys)
+
+#### XkbAllocGeomOutlines ####
+XKBGAlloc.c:583:XkbAllocGeomOutlines(XkbShapePtr shape, int nOL)
+
+#### XkbAllocGeomOverlayKeys ####
+XKBGAlloc.c:565:XkbAllocGeomOverlayKeys(XkbOverlayRowPtr row, int nKeys)
+
+#### XkbAllocGeomOverlayRows ####
+XKBGAlloc.c:559:XkbAllocGeomOverlayRows(XkbOverlayPtr overlay, int nRows)
+
+#### XkbAllocGeomOverlays ####
+XKBGAlloc.c:553:XkbAllocGeomOverlays(XkbSectionPtr section, int nOverlays)
+
+#### XkbAllocGeomPoints ####
+XKBGAlloc.c:595:XkbAllocGeomPoints(XkbOutlinePtr ol, int nPts)
+
+#### XkbAllocGeomProps ####
+XKBGAlloc.c:523:XkbAllocGeomProps(XkbGeometryPtr geom, int nProps)
+XKBGeom.c:262: if ((rtrn = XkbAllocGeomProps(geom, rep->nProperties)) == Success) {
+
+#### XkbAllocGeomRows ####
+XKBGAlloc.c:589:XkbAllocGeomRows(XkbSectionPtr section, int nRows)
+
+#### XkbAllocGeomSectionDoodads ####
+XKBGAlloc.c:577:XkbAllocGeomSectionDoodads(XkbSectionPtr section, int nDoodads)
+
+#### XkbAllocGeomSections ####
+XKBGAlloc.c:547:XkbAllocGeomSections(XkbGeometryPtr geom, int nSections)
+XKBGeom.c:510: if ((rtrn = XkbAllocGeomSections(geom, rep->nSections)) != Success)
+
+#### XkbAllocGeomShapes ####
+XKBGAlloc.c:541:XkbAllocGeomShapes(XkbGeometryPtr geom, int nShapes)
+XKBGeom.c:344: if ((rtrn = XkbAllocGeomShapes(geom, rep->nShapes)) != Success)
+
+#### XkbAllocGeometry ####
+XKBGAlloc.c:607:XkbAllocGeometry(XkbDescPtr xkb, XkbGeometrySizesPtr sizes)
+
+#### XkbAllocIndicatorMaps ####
+XKBAlloc.c:279:XkbAllocIndicatorMaps(XkbDescPtr xkb)
+XKBleds.c:69: if ((!xkb->indicators) && (XkbAllocIndicatorMaps(xkb) != Success))
+XKBlib.h:684:extern Status XkbAllocIndicatorMaps(
+
+#### XkbAllocKeyboard ####
+XKBAlloc.c:304:XkbAllocKeyboard(void)
+XKBlib.h:642:extern XkbDescPtr XkbAllocKeyboard(
+
+#### XkbAllocNames ####
+XKBAlloc.c:118:XkbAllocNames(XkbDescPtr xkb, unsigned which, int nTotalRG, int nTotalAliases)
+XKBNames.c:68: (XkbAllocNames(xkb, rep->which,
+XKBNames.c:197: if (XkbAllocNames(xkb, XkbKeyAliasesMask, 0, rep->nKeyAliases) !=
+XKBlib.h:834:extern Status XkbAllocNames(
+
+#### XkbAllocServerMap ####
+XKBGetMap.c:447: (XkbAllocServerMap(xkb, XkbVirtualModMapMask, 0) != Success)) {
+XKBGetMap.c:515: if (mask && (XkbAllocServerMap(xkb, mask, rep->totalActs) != Success))
+XKBMAlloc.c:129:XkbAllocServerMap(XkbDescPtr xkb, unsigned which, unsigned nNewActions)
+XKBMisc.c:441: (XkbAllocServerMap(xkb, XkbAllServerInfoMask, 0) != Success)) {
+XKBlib.h:658:extern Status XkbAllocServerMap(
+
+#### XkbApplyCompatMapToKey ####
+XKBMisc.c:427:XkbApplyCompatMapToKey(XkbDescPtr xkb, KeyCode key, XkbChangesPtr changes)
+XKBMisc.c:638: XkbApplyCompatMapToKey(xkb, key, changes);
+XKBlib.h:1007:extern Bool XkbApplyCompatMapToKey( /* False only on error */
+
+#### XkbApplyVirtualModChanges ####
+XKBMisc.c:668: XkbApplyVirtualModChanges(xkb, changes->map.vmods, changes);
+XKBMisc.c:907:XkbApplyVirtualModChanges(XkbDescPtr xkb,
+XKBlib.h:1129:extern Bool XkbApplyVirtualModChanges(
+
+#### XkbBell ####
+XKBBell.c:146:XkbBell(Display *dpy, Window window, int percent, Atom name)
+XKBBell.c:170:XkbBellEvent(Display *dpy, Window window, int percent, Atom name)
+XKB.c:200: case XkbBellNotify:
+XKBUse.c:379: case XkbBellNotify:
+XKBUse.c:381: if (xkbi->selected_events & XkbBellNotifyMask) {
+XKBUse.c:383: XkbBellNotifyEvent *bev = (XkbBellNotifyEvent *) re;
+XKBUse.c:386: bev->xkb_type = XkbBellNotify;
+XKBlib.h:186:typedef struct _XkbBellNotify {
+XKBlib.h:192: int xkb_type; /* XkbBellNotify */
+XKBlib.h:202:} XkbBellNotifyEvent;
+XKBlib.h:265: XkbBellNotifyEvent bell;
+XKBlib.h:456:extern Bool XkbBell(
+XKBlib.h:468:extern Bool XkbBellEvent(
+
+#### XkbBellEvent ####
+XKBBell.c:170:XkbBellEvent(Display *dpy, Window window, int percent, Atom name)
+XKBlib.h:468:extern Bool XkbBellEvent(
+
+#### XkbChangeDeviceInfo ####
+XKBExtDev.c:731:XkbChangeDeviceInfo(Display *dpy,
+XKBlib.h:1089:extern Bool XkbChangeDeviceInfo(
+
+#### XkbChangeEnabledControls ####
+XKBCtrls.c:154:XkbChangeEnabledControls(Display *dpy,
+XKBlib.h:421:extern Bool XkbChangeEnabledControls(
+
+#### XkbChangeKeycodeRange ####
+XKBMAlloc.c:645:XkbChangeKeycodeRange(XkbDescPtr xkb,
+XKBlib.h:961:extern Status XkbChangeKeycodeRange(
+
+#### XkbChangeMap ####
+XKBSetMap.c:541:XkbChangeMap(Display *dpy, XkbDescPtr xkb, XkbMapChangesPtr changes)
+XKBlib.h:880:extern Bool XkbChangeMap(
+
+#### XkbChangeNames ####
+XKBNames.c:532:XkbChangeNames(Display *dpy, XkbDescPtr xkb, XkbNameChangesPtr changes)
+XKBlib.h:855:extern Bool XkbChangeNames(
+
+#### XkbChangeTypesOfKey ####
+XKBMisc.c:635: XkbChangeTypesOfKey(xkb, key, nG, XkbAllGroupsMask, types, mc);
+XKBMisc.c:673:XkbChangeTypesOfKey(XkbDescPtr xkb,
+XKBlib.h:952:extern Status XkbChangeTypesOfKey(
+
+#### XkbComputeEffectiveMap ####
+XKB.c:435:XkbComputeEffectiveMap(XkbDescPtr xkb,
+XKBlib.h:630:extern Bool XkbComputeEffectiveMap(
+
+#### XkbComputeRowBounds ####
+XKBGeom.c:114:XkbComputeRowBounds(XkbGeometryPtr geom, XkbSectionPtr section, XkbRowPtr row)
+XKBGeom.c:163: if (!XkbComputeRowBounds(geom, section, row))
+
+#### XkbComputeSectionBounds ####
+XKBGeom.c:150:XkbComputeSectionBounds(XkbGeometryPtr geom, XkbSectionPtr section)
+
+#### XkbComputeShapeBounds ####
+XKBGeom.c:64:XkbComputeShapeBounds(XkbShapePtr shape)
+XKBGeom.c:394: XkbComputeShapeBounds(shape);
+
+#### XkbComputeShapeTop ####
+XKBGeom.c:87:XkbComputeShapeTop(XkbShapePtr shape, XkbBoundsPtr bounds)
+
+#### XkbCopyKeyType ####
+XKBMAlloc.c:225:XkbCopyKeyType(XkbKeyTypePtr from, XkbKeyTypePtr into)
+XKBMAlloc.c:265:XkbCopyKeyTypes(XkbKeyTypePtr from, XkbKeyTypePtr into, int num_types)
+XKBMAlloc.c:272: if ((rtrn = XkbCopyKeyType(from++, into++)) != Success)
+XKBMisc.c:108: rtrn = XkbCopyKeyType(&from[XkbOneLevelIndex], &to[XkbOneLevelIndex]);
+XKBMisc.c:110: rtrn = XkbCopyKeyType(&from[XkbTwoLevelIndex], &to[XkbTwoLevelIndex]);
+XKBMisc.c:113: XkbCopyKeyType(&from[XkbAlphabeticIndex], &to[XkbAlphabeticIndex]);
+XKBMisc.c:117: rtrn = XkbCopyKeyType(&from[XkbKeypadIndex], &to[XkbKeypadIndex]);
+XKBlib.h:921:extern Status XkbCopyKeyType(
+XKBlib.h:926:extern Status XkbCopyKeyTypes(
+
+#### XkbCopyKeyTypes ####
+XKBMAlloc.c:265:XkbCopyKeyTypes(XkbKeyTypePtr from, XkbKeyTypePtr into, int num_types)
+XKBlib.h:926:extern Status XkbCopyKeyTypes(
+
+#### XkbDeviceBell ####
+XKBBell.c:37:XkbDeviceBell(Display *dpy,
+XKBBell.c:109:XkbDeviceBellEvent(Display *dpy,
+XKBBell.c:153: return XkbDeviceBell(dpy, window, XkbUseCoreKbd,
+XKBBell.c:177: return XkbDeviceBellEvent(dpy, window, XkbUseCoreKbd,
+XKBlib.h:428:extern Bool XkbDeviceBell(
+XKBlib.h:446:extern Bool XkbDeviceBellEvent(
+
+#### XkbDeviceBellEvent ####
+XKBBell.c:109:XkbDeviceBellEvent(Display *dpy,
+XKBBell.c:177: return XkbDeviceBellEvent(dpy, window, XkbUseCoreKbd,
+XKBlib.h:446:extern Bool XkbDeviceBellEvent(
+
+#### XkbFindOverlayForKey ####
+XKBGeom.c:211:XkbFindOverlayForKey(XkbGeometryPtr geom, XkbSectionPtr wanted, char *under)
+
+#### XkbForceBell ####
+XKBBell.c:158:XkbForceBell(Display *dpy, int percent)
+XKBlib.h:463:extern Bool XkbForceBell(
+
+#### XkbForceDeviceBell ####
+XKBBell.c:74:XkbForceDeviceBell(Display *dpy,
+XKBBell.c:165: return XkbForceDeviceBell(dpy, XkbUseCoreKbd, XkbDfltXIClass, XkbDfltXIId,
+XKBlib.h:438:extern Bool XkbForceDeviceBell(
+
+#### XkbFreeClientMap ####
+XKBAlloc.c:322: XkbFreeClientMap(xkb, XkbAllClientInfoMask, True);
+XKBMAlloc.c:928:XkbFreeClientMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
+XKBlib.h:664:extern void XkbFreeClientMap(
+
+#### XkbFreeCompatMap ####
+XKBAlloc.c:91:XkbFreeCompatMap(XkbDescPtr xkb, unsigned which, Bool freeMap)
+XKBAlloc.c:326: XkbFreeCompatMap(xkb, XkbAllCompatMask, True);
+XKBlib.h:808:extern void XkbFreeCompatMap(
+
+#### XkbFreeComponentList ####
+XKBList.c:223: XkbFreeComponentList(list);
+XKBList.c:237:XkbFreeComponentList(XkbComponentListPtr list)
+XKBlib.h:977:extern void XkbFreeComponentList(
+
+#### XkbFreeControls ####
+XKBAlloc.c:267:XkbFreeControls(XkbDescPtr xkb, unsigned which, Bool freeMap)
+XKBAlloc.c:334: XkbFreeControls(xkb, XkbAllControlsMask, True);
+XKBlib.h:775:extern void XkbFreeControls(
+
+#### XkbFreeDeviceInfo ####
+XKBAlloc.c:456:XkbFreeDeviceInfo(XkbDeviceInfoPtr devi, unsigned which, Bool freeDevI)
+XKBExtDev.c:272: XkbFreeDeviceInfo(devi, XkbXI_AllDeviceFeaturesMask, True);
+XKBlib.h:1041:extern void XkbFreeDeviceInfo(
+
+#### XkbFreeGeomColors ####
+XKBGAlloc.c:185:XkbFreeGeomColors(XkbGeometryPtr geom, int first, int count, Bool freeAll)
+XKBGAlloc.c:425: XkbFreeGeomColors(geom, 0, geom->num_colors, True);
+
+#### XkbFreeGeomDoodads ####
+XKBGAlloc.c:351: XkbFreeGeomDoodads(section->doodads, section->num_doodads, True);
+XKBGAlloc.c:400:XkbFreeGeomDoodads(XkbDoodadPtr doodads, int nDoodads, Bool freeAll)
+XKBGAlloc.c:431: XkbFreeGeomDoodads(geom->doodads, geom->num_doodads, True);
+
+#### XkbFreeGeomKeyAliases ####
+XKBGAlloc.c:164:XkbFreeGeomKeyAliases(XkbGeometryPtr geom, int first, int count, Bool freeAll)
+XKBGAlloc.c:436: XkbFreeGeomKeyAliases(geom, 0, geom->num_key_aliases, True);
+
+#### XkbFreeGeomKeys ####
+XKBGAlloc.c:311:XkbFreeGeomKeys(XkbRowPtr row, int first, int count, Bool freeAll)
+XKBGAlloc.c:328: XkbFreeGeomKeys(row, 0, row->num_keys, True);
+
+#### XkbFreeGeomOutlines ####
+XKBGAlloc.c:219:XkbFreeGeomOutlines(XkbShapePtr shape, int first, int count, Bool freeAll)
+XKBGAlloc.c:237: XkbFreeGeomOutlines(shape, 0, shape->num_outlines, True);
+
+#### XkbFreeGeomOverlayKeys ####
+XKBGAlloc.c:254:XkbFreeGeomOverlayKeys(XkbOverlayRowPtr row, int first, int count, Bool freeAll)
+XKBGAlloc.c:271: XkbFreeGeomOverlayKeys(row, 0, row->num_keys, True);
+
+#### XkbFreeGeomOverlayRows ####
+XKBGAlloc.c:276:XkbFreeGeomOverlayRows(XkbOverlayPtr overlay, int first, int count,
+XKBGAlloc.c:294: XkbFreeGeomOverlayRows(overlay, 0, overlay->num_rows, True);
+
+#### XkbFreeGeomOverlays ####
+XKBGAlloc.c:299:XkbFreeGeomOverlays(XkbSectionPtr section, int first, int count, Bool freeAll)
+
+#### XkbFreeGeomPoints ####
+XKBGAlloc.c:197:XkbFreeGeomPoints(XkbOutlinePtr outline, int first, int count, Bool freeAll)
+XKBGAlloc.c:214: XkbFreeGeomPoints(outline, 0, outline->num_points, True);
+
+#### XkbFreeGeomProperties ####
+XKBGAlloc.c:152:XkbFreeGeomProperties(XkbGeometryPtr geom, int first, int count, Bool freeAll)
+XKBGAlloc.c:423: XkbFreeGeomProperties(geom, 0, geom->num_properties, True);
+
+#### XkbFreeGeomRows ####
+XKBGAlloc.c:333:XkbFreeGeomRows(XkbSectionPtr section, int first, int count, Bool freeAll)
+XKBGAlloc.c:349: XkbFreeGeomRows(section, 0, section->num_rows, True);
+
+#### XkbFreeGeomSections ####
+XKBGAlloc.c:358:XkbFreeGeomSections(XkbGeometryPtr geom, int first, int count, Bool freeAll)
+XKBGAlloc.c:429: XkbFreeGeomSections(geom, 0, geom->num_sections, True);
+
+#### XkbFreeGeomShapes ####
+XKBGAlloc.c:242:XkbFreeGeomShapes(XkbGeometryPtr geom, int first, int count, Bool freeAll)
+XKBGAlloc.c:427: XkbFreeGeomShapes(geom, 0, geom->num_shapes, True);
+
+#### XkbFreeGeometry ####
+XKBAlloc.c:332: XkbFreeGeometry(xkb->geom, XkbGeomAllMask, True);
+XKBGAlloc.c:416:XkbFreeGeometry(XkbGeometryPtr geom, unsigned which, Bool freeMap)
+XKBGAlloc.c:645: XkbFreeGeometry(geom, XkbGeomAllMask, True);
+XKBGeom.c:618: XkbFreeGeometry(xkb->geom, XkbGeomAllMask, True);
+XKBGeom.c:654: XkbFreeGeometry(geom, XkbGeomAllMask, True);
+XKBGeom.c:662: XkbFreeGeometry(geom, XkbGeomAllMask, True);
+
+#### XkbFreeIndicatorMaps ####
+XKBAlloc.c:292:XkbFreeIndicatorMaps(XkbDescPtr xkb)
+XKBAlloc.c:328: XkbFreeIndicatorMaps(xkb);
+XKBlib.h:688:extern void XkbFreeIndicatorMaps(
+
+#### XkbFreeKeyboard ####
+XKBAlloc.c:315:XkbFreeKeyboard(XkbDescPtr xkb, unsigned which, Bool freeAll)
+XKBBind.c:558: XkbFreeKeyboard(xkbi->desc, XkbAllComponentsMask, True);
+XKBGetByName.c:214: XkbFreeKeyboard(xkb, XkbAllComponentsMask, xTrue);
+XKBUse.c:613: XkbFreeKeyboard(xkbi->desc, XkbAllComponentsMask, True);
+XKBlib.h:646:extern void XkbFreeKeyboard(
+
+#### XkbFreeNames ####
+XKBAlloc.c:201:XkbFreeNames(XkbDescPtr xkb, unsigned which, Bool freeMap)
+XKBAlloc.c:330: XkbFreeNames(xkb, XkbAllNamesMask, True);
+XKBlib.h:861:extern void XkbFreeNames(
+
+#### XkbFreeServerMap ####
+XKBAlloc.c:324: XkbFreeServerMap(xkb, XkbAllServerInfoMask, True);
+XKBMAlloc.c:981:XkbFreeServerMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
+XKBlib.h:670:extern void XkbFreeServerMap(
+
+#### XkbGetAutoRepeatRate ####
+XKBCtrls.c:72:XkbGetAutoRepeatRate(Display *dpy,
+XKBlib.h:414:extern Bool XkbGetAutoRepeatRate(
+
+#### XkbGetAutoResetControls ####
+XKB.c:622:XkbGetAutoResetControls(Display *dpy,
+XKBlib.h:904:extern Bool XkbGetAutoResetControls(
+
+#### XkbGetCompatMap ####
+XKBCompat.c:110:XkbGetCompatMap(Display *dpy, unsigned which, XkbDescPtr xkb)
+XKBlib.h:814:extern Status XkbGetCompatMap(
+
+#### XkbGetControls ####
+XKBCtrls.c:175:XkbGetControls(Display *dpy, unsigned long which, XkbDescPtr xkb)
+XKBlib.h:781:extern Status XkbGetControls(
+XKBlib.h:799:#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
+
+#### XkbGetDetectableAutoRepeat ####
+XKB.c:555:XkbGetDetectableAutoRepeat(Display *dpy, Bool *supported)
+XKBlib.h:892:extern Bool XkbGetDetectableAutoRepeat(
+
+#### XkbGetDeviceButtonActions ####
+XKBExtDev.c:344:XkbGetDeviceButtonActions(Display *dpy,
+XKBlib.h:1067:extern Status XkbGetDeviceButtonActions(
+
+#### XkbGetDeviceInfo ####
+XKBExtDev.c:233:XkbGetDeviceInfo(Display *dpy,
+XKBExtDev.c:282:XkbGetDeviceInfoChanges(Display *dpy,
+XKBlib.h:1053:extern XkbDeviceInfoPtr XkbGetDeviceInfo(
+XKBlib.h:1061:extern Status XkbGetDeviceInfoChanges(
+
+#### XkbGetDeviceInfoChanges ####
+XKBExtDev.c:282:XkbGetDeviceInfoChanges(Display *dpy,
+XKBlib.h:1061:extern Status XkbGetDeviceInfoChanges(
+
+#### XkbGetDeviceLedInfo ####
+XKBExtDev.c:385:XkbGetDeviceLedInfo(Display *dpy,
+XKBlib.h:1075:extern Status XkbGetDeviceLedInfo(
+
+#### XkbGetGeometry ####
+XKBGeom.c:671:XkbGetGeometry(Display *dpy, XkbDescPtr xkb)
+
+#### XkbGetIndicatorMap ####
+XKBleds.c:115:XkbGetIndicatorMap(Display *dpy, unsigned long which, XkbDescPtr xkb)
+XKBlib.h:516:extern Status XkbGetIndicatorMap(
+XKBlib.h:532:#define XkbGetIndicatorMapChanges(d,x,c) \
+XKBlib.h:533: (XkbGetIndicatorMap((d),(c)->map_changes,x))
+
+#### XkbGetIndicatorState ####
+XKBleds.c:36:XkbGetIndicatorState(Display *dpy, unsigned deviceSpec, unsigned *pStateRtrn)
+XKBlib.h:502:extern Status XkbGetIndicatorState(
+
+#### XkbGetKeyActions ####
+XKBGetMap.c:641:XkbGetKeyActions(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
+XKBlib.h:729:extern Status XkbGetKeyActions(
+
+#### XkbGetKeyBehaviors ####
+XKBGetMap.c:692:XkbGetKeyBehaviors(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
+XKBlib.h:736:extern Status XkbGetKeyBehaviors(
+
+#### XkbGetKeyExplicitComponents ####
+XKBGetMap.c:738:XkbGetKeyExplicitComponents(Display *dpy,
+XKBlib.h:749:extern Status XkbGetKeyExplicitComponents(
+
+#### XkbGetKeyModifierMap ####
+XKBGetMap.c:775:XkbGetKeyModifierMap(Display *dpy,
+XKBlib.h:756:extern Status XkbGetKeyModifierMap(
+
+#### XkbGetKeySyms ####
+XKBGetMap.c:666:XkbGetKeySyms(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
+XKBlib.h:722:extern Status XkbGetKeySyms(
+
+#### XkbGetKeyTypes ####
+XKBGetMap.c:617:XkbGetKeyTypes(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
+XKBlib.h:715:extern Status XkbGetKeyTypes(
+
+#### XkbGetKeyVirtualModMap ####
+XKBGetMap.c:811:XkbGetKeyVirtualModMap(Display *dpy, unsigned first, unsigned num,
+XKBlib.h:763:extern Status XkbGetKeyVirtualModMap(
+
+#### XkbGetKeyboard ####
+XKBGetByName.c:38:XkbGetKeyboardByName(Display *dpy,
+XKBGetByName.c:223:XkbGetKeyboard(Display *dpy, unsigned which, unsigned deviceSpec)
+XKBGetByName.c:225: return XkbGetKeyboardByName(dpy, deviceSpec, NULL, which, which, False);
+XKBlib.h:981:extern XkbDescPtr XkbGetKeyboard(
+XKBlib.h:987:extern XkbDescPtr XkbGetKeyboardByName(
+
+#### XkbGetKeyboardByName ####
+XKBGetByName.c:38:XkbGetKeyboardByName(Display *dpy,
+XKBGetByName.c:225: return XkbGetKeyboardByName(dpy, deviceSpec, NULL, which, which, False);
+XKBlib.h:987:extern XkbDescPtr XkbGetKeyboardByName(
+
+#### XkbGetMap ####
+XKBBind.c:374: if ((rtrn = XkbGetMapChanges(dpy, xkbi->desc, &changes)) != Success) {
+XKBBind.c:376: fprintf(stderr, "Internal Error! XkbGetMapChanges failed:\n");
+XKBBind.c:432: if (XkbGetMapChanges(dpy, xkbi->desc, &changes) != Success) {
+XKBBind.c:434: fprintf(stderr, "Internal Error! XkbGetMapChanges failed:\n");
+XKBBind.c:518: desc = XkbGetMap(dpy, query, XkbUseCoreKbd);
+XKBBind.c:521: fprintf(stderr, "Warning! XkbGetMap failed!\n");
+XKBBind.c:566: desc = XkbGetMap(dpy, XkbAllClientInfoMask, XkbUseCoreKbd);
+XKBGetMap.c:594:XkbGetMap(Display *dpy, unsigned which, unsigned deviceSpec)
+XKBGetMap.c:846:XkbGetMapChanges(Display *dpy, XkbDescPtr xkb, XkbMapChangesPtr changes)
+XKBlib.h:692:extern XkbDescPtr XkbGetMap(
+XKBlib.h:704:extern Status XkbGetMapChanges(
+XKBlibint.h:91: if (XkbGetMapChanges((d),(xi)->desc, &(xi)->changes)==Success) { \
+
+#### XkbGetMapChanges ####
+XKBBind.c:374: if ((rtrn = XkbGetMapChanges(dpy, xkbi->desc, &changes)) != Success) {
+XKBBind.c:376: fprintf(stderr, "Internal Error! XkbGetMapChanges failed:\n");
+XKBBind.c:432: if (XkbGetMapChanges(dpy, xkbi->desc, &changes) != Success) {
+XKBBind.c:434: fprintf(stderr, "Internal Error! XkbGetMapChanges failed:\n");
+XKBGetMap.c:846:XkbGetMapChanges(Display *dpy, XkbDescPtr xkb, XkbMapChangesPtr changes)
+XKBlib.h:704:extern Status XkbGetMapChanges(
+XKBlibint.h:91: if (XkbGetMapChanges((d),(xi)->desc, &(xi)->changes)==Success) { \
+
+#### XkbGetNamedDeviceIndicator ####
+XKBleds.c:200:XkbGetNamedDeviceIndicator(Display *dpy,
+XKBleds.c:262: return XkbGetNamedDeviceIndicator(dpy, XkbUseCoreKbd,
+XKBlib.h:546:extern Bool XkbGetNamedDeviceIndicator(
+
+#### XkbGetNamedGeometry ####
+XKBGeom.c:699:XkbGetNamedGeometry(Display *dpy, XkbDescPtr xkb, Atom name)
+
+#### XkbGetNamedIndicator ####
+XKBleds.c:255:XkbGetNamedIndicator(Display *dpy,
+XKBlib.h:537:extern Bool XkbGetNamedIndicator(
+
+#### XkbGetNames ####
+XKBNames.c:239:XkbGetNames(Display *dpy, unsigned which, XkbDescPtr xkb)
+XKBlib.h:841:extern Status XkbGetNames(
+
+#### XkbGetPerClientControls ####
+XKB.c:691:XkbGetPerClientControls(Display *dpy, unsigned *ctrls)
+XKBlib.h:916:extern Bool XkbGetPerClientControls(
+
+#### XkbGetState ####
+XKB.c:481:XkbGetState(Display *dpy, unsigned deviceSpec, XkbStatePtr rtrn)
+XKBlib.h:868:extern Status XkbGetState(
+
+#### XkbGetUpdatedMap ####
+XKBBind.c:183: if (XkbGetUpdatedMap(dpy, XkbModifierMapMask, xkb) == Success)
+XKBGetMap.c:571:XkbGetUpdatedMap(Display *dpy, unsigned which, XkbDescPtr xkb)
+XKBGetMap.c:603: ((which) && (XkbGetUpdatedMap(dpy, which, xkb) != Success))) {
+XKBlib.h:698:extern Status XkbGetUpdatedMap(
+
+#### XkbGetVirtualMods ####
+XKBGetMap.c:717:XkbGetVirtualMods(Display *dpy, unsigned which, XkbDescPtr xkb)
+XKBlib.h:743:extern Status XkbGetVirtualMods(
+
+#### XkbGetXlibControls ####
+imConv.c:145: unsigned ctrls = XkbGetXlibControls (event->display);
+XKB.c:364:XkbGetXlibControls(Display *dpy)
+XKBlib.h:335:extern unsigned int XkbGetXlibControls(
+
+#### XkbIgnoreExtension ####
+XKBUse.c:36:static Bool _XkbIgnoreExtension = False;
+XKBUse.c:587:XkbIgnoreExtension(Bool ignore)
+XKBUse.c:602: _XkbIgnoreExtension = ignore;
+XKBUse.c:730: if (forceIgnore || _XkbIgnoreExtension || getenv("XKB_DISABLE")) {
+XKBlib.h:296:extern Bool XkbIgnoreExtension(
+
+#### XkbInitCanonicalKeyTypes ####
+XKBMAlloc.c:318: if (XkbInitCanonicalKeyTypes(xkb, tmp, XkbNoModifier) == Success) {
+XKBMisc.c:90:XkbInitCanonicalKeyTypes(XkbDescPtr xkb, unsigned which, int keypadVMod)
+XKBlib.h:636:extern Status XkbInitCanonicalKeyTypes(
+
+#### XkbKeyTypesForCoreSymbols ####
+XKBMisc.c:143:XkbKeyTypesForCoreSymbols(XkbDescPtr xkb,
+XKBMisc.c:629: nG = XkbKeyTypesForCoreSymbols(xkb, map_width, syms, explicit, types,
+XKBlib.h:998:extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */
+
+#### XkbKeycodeToKeysym ####
+XKBBind.c:60:XkbKeycodeToKeysym(Display *dpy,
+XKBBind.c:123: return XkbKeycodeToKeysym(dpy, kc, XkbGroup1Index,
+XKBBind.c:130: return XkbKeycodeToKeysym(dpy, kc, XkbGroup2Index,
+XKBBind.c:137: return XkbKeycodeToKeysym(dpy, kc, XkbGroup3Index,
+XKBBind.c:144: return XkbKeycodeToKeysym(dpy, kc, XkbGroup4Index,
+XKBBind.c:149: return XkbKeycodeToKeysym(dpy, kc, (col >> 1), (col & 1));
+XKBlib.h:357:extern KeySym XkbKeycodeToKeysym(
+
+#### XkbKeysymToModifiers ####
+KeyBind.c:64:#define XkbKeysymToModifiers _XKeysymToModifiers
+KeyBind.c:1002: p->state|= XkbKeysymToModifiers(dpy,p->modifiers[i]);
+XKBBind.c:189:XkbKeysymToModifiers(Display *dpy, KeySym ks)
+XKBBind.c:492: p->state |= XkbKeysymToModifiers(dpy, p->modifiers[i]);
+XKBlib.h:368:extern unsigned int XkbKeysymToModifiers(
+
+#### XkbLatchGroup ####
+XKB.c:321:XkbLatchGroup(Display *dpy, unsigned int deviceSpec, unsigned int group)
+XKBlib.h:599:extern Bool XkbLatchGroup(
+
+#### XkbLatchModifiers ####
+XKB.c:260:XkbLatchModifiers(Display *dpy,
+XKBlib.h:586:extern Bool XkbLatchModifiers(
+
+#### XkbLibraryVersion ####
+XKB.c:62:XkbLibraryVersion(int *libMajorRtrn, int *libMinorRtrn)
+XKB.c:735: if (!XkbLibraryVersion(major_rtrn, minor_rtrn)) {
+XKBlib.h:324:extern Bool XkbLibraryVersion(
+
+#### XkbListComponents ####
+XKBList.c:97:XkbListComponents(Display *dpy,
+XKBlib.h:970:extern XkbComponentListPtr XkbListComponents(
+
+#### XkbLockGroup ####
+XKB.c:293:XkbLockGroup(Display *dpy, unsigned int deviceSpec, unsigned int group)
+XKBlib.h:593:extern Bool XkbLockGroup(
+
+#### XkbLockModifiers ####
+XKB.c:229:XkbLockModifiers(Display *dpy,
+XKBlib.h:579:extern Bool XkbLockModifiers(
+
+#### XkbLookupKeyBinding ####
+XKBBind.c:618: n = XkbLookupKeyBinding(dpy, *sym_rtrn, mods, buffer, nbytes, extra_rtrn);
+XKBBind.c:730: rtrnLen = XkbLookupKeyBinding(dpy, *keysym, new_mods, buffer, nbytes, NULL);
+XKBBind.c:739:XkbLookupKeyBinding(Display *dpy,
+XKBlib.h:381:extern int XkbLookupKeyBinding(
+
+#### XkbLookupKeySym ####
+XKBBind.c:247: return XkbLookupKeySym(dpy, key, mods, mods_rtrn, keysym_rtrn);
+XKBBind.c:251:XkbLookupKeySym(register Display *dpy,
+XKBBind.c:685: if (!XkbLookupKeySym(dpy, event->keycode, event->state, &new_mods, keysym))
+XKBBind.c:698: if (XkbLookupKeySym(dpy, tmp_ev.keycode, tmp_ev.state,
+XKBBind.c:712: if (XkbLookupKeySym(dpy, tmp_ev.keycode, tmp_ev.state,
+XKBlib.h:373:extern Bool XkbLookupKeySym(
+
+#### XkbNoteControlsChanges ####
+XKBCtrls.c:342:XkbNoteControlsChanges(XkbControlsChangesPtr old,
+XKBlib.h:793:extern void XkbNoteControlsChanges(
+
+#### XkbNoteDeviceChanges ####
+XKBExtDev.c:40:XkbNoteDeviceChanges(XkbDeviceChangesPtr old,
+XKBlib.h:1047:extern void XkbNoteDeviceChanges(
+
+#### XkbNoteMapChanges ####
+XKBBind.c:373: XkbNoteMapChanges(&changes, event, XKB_XLIB_MAP_MASK);
+XKBUse.c:39:XkbNoteMapChanges(XkbMapChangesPtr old,
+XKBUse.c:293: XkbNoteMapChanges(&xkbi->changes, mev, XKB_XLIB_MAP_MASK);
+XKBlib.h:490:extern void XkbNoteMapChanges(
+
+#### XkbNoteNameChanges ####
+XKBNames.c:775:XkbNoteNameChanges(XkbNameChangesPtr old,
+XKBlib.h:496:extern void XkbNoteNameChanges(
+
+#### XkbOpenDisplay ####
+XKB.c:724:XkbOpenDisplay(char *name,
+XKBlib.h:274: /* XkbOpenDisplay error codes */
+XKBlib.h:300:extern Display *XkbOpenDisplay(
+
+#### XkbQueryExtension ####
+XKB.c:39:XkbQueryExtension(Display *dpy,
+XKB.c:753: if (!XkbQueryExtension(dpy, NULL, ev_rtrn, err_rtrn,
+XKBlib.h:309:extern Bool XkbQueryExtension(
+
+#### XkbRefreshKeyboardMapping ####
+XKBBind.c:348:XkbRefreshKeyboardMapping(register XkbMapNotifyEvent * event)
+XKBBind.c:406: return XkbRefreshKeyboardMapping(&xkbevent->map);
+XKBlib.h:711:extern Status XkbRefreshKeyboardMapping(
+
+#### XkbResizeDeviceButtonActions ####
+XKBAlloc.c:383:XkbResizeDeviceButtonActions(XkbDeviceInfoPtr devi, unsigned newTotal)
+XKBExtDev.c:186: tmp = XkbResizeDeviceButtonActions(devi, rep->totalBtns);
+XKBlib.h:1030:extern Status XkbResizeDeviceButtonActions(
+
+#### XkbResizeKeyActions ####
+XKBGetMap.c:289: newActs = XkbResizeKeyActions(info, i + rep->firstKeyAct,
+XKBMAlloc.c:876:XkbResizeKeyActions(XkbDescPtr xkb, int key, int needed)
+XKBMisc.c:486: pActs = XkbResizeKeyActions(xkb, key, nSyms);
+XKBMisc.c:758: pActs = XkbResizeKeyActions(xkb, key, width * nGroups);
+XKBlib.h:946:extern XkbAction *XkbResizeKeyActions(
+
+#### XkbResizeKeySyms ####
+XKBGetMap.c:231: newSyms = XkbResizeKeySyms(xkb, i + rep->firstKeySym, tmp);
+XKBMAlloc.c:563:XkbResizeKeySyms(XkbDescPtr xkb, int key, int needed)
+XKBMisc.c:696: XkbResizeKeySyms(xkb, key, 0);
+XKBMisc.c:724: pSyms = XkbResizeKeySyms(xkb, key, width * nGroups);
+XKBMisc.c:739: pSyms = XkbResizeKeySyms(xkb, key, width * nGroups);
+XKBlib.h:940:extern KeySym *XkbResizeKeySyms(
+
+#### XkbResizeKeyType ####
+XKBMAlloc.c:297: XkbResizeKeyType(xkb, i, map_count, want_preserve,
+XKBMAlloc.c:324: status = XkbResizeKeyType(xkb, i, map_count, want_preserve,
+XKBMAlloc.c:360:XkbResizeKeyType(XkbDescPtr xkb,
+XKBlib.h:932:extern Status XkbResizeKeyType(
+
+#### XkbSelectEventDetails ####
+XKBBind.c:531: XkbSelectEventDetails(dpy, xkbi->desc->device_spec,
+XKBBind.c:536: XkbSelectEventDetails(dpy, xkbi->desc->device_spec, XkbMapNotify,
+XKBBind.c:579: XkbSelectEventDetails(dpy, xkbi->desc->device_spec, XkbMapNotify,
+XKB.c:137:XkbSelectEventDetails(Display *dpy,
+XKBlib.h:482:extern Bool XkbSelectEventDetails(
+
+#### XkbSelectEvents ####
+XKB.c:84:XkbSelectEvents(Display *dpy,
+XKBlib.h:475:extern Bool XkbSelectEvents(
+
+#### XkbSetAtomFuncs ####
+XKB.c:770:XkbSetAtomFuncs(XkbInternAtomFunc getAtom, XkbGetAtomNameFunc getName)
+XKBlib.h:352:extern void XkbSetAtomFuncs(
+
+#### XkbSetAutoRepeatRate ####
+XKBCtrls.c:51:XkbSetAutoRepeatRate(Display *dpy,
+XKBlib.h:407:extern Bool XkbSetAutoRepeatRate(
+
+#### XkbSetAutoResetControls ####
+XKB.c:586:XkbSetAutoResetControls(Display *dpy,
+XKBlib.h:897:extern Bool XkbSetAutoResetControls(
+
+#### XkbSetCompatMap ####
+XKBCompat.c:214:XkbSetCompatMap(Display *dpy, unsigned which, XkbDescPtr xkb,
+XKBlib.h:820:extern Bool XkbSetCompatMap(
+
+#### XkbSetControls ####
+XKBCtrls.c:270:XkbSetControls(Display *dpy, unsigned long which, XkbDescPtr xkb)
+XKBlib.h:787:extern Bool XkbSetControls(
+XKBlib.h:800:#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
+
+#### XkbSetDebuggingFlags ####
+XKB.c:384:XkbSetDebuggingFlags(Display *dpy,
+XKBlib.h:1118:extern Bool XkbSetDebuggingFlags(
+
+#### XkbSetDetectableAutoRepeat ####
+XKB.c:521:XkbSetDetectableAutoRepeat(Display *dpy, Bool detectable, Bool *supported)
+XKBlib.h:886:extern Bool XkbSetDetectableAutoRepeat(
+
+#### XkbSetDeviceButtonActions ####
+XKBExtDev.c:791:XkbSetDeviceButtonActions(Display *dpy,
+XKBlib.h:1103:extern Bool XkbSetDeviceButtonActions(
+
+#### XkbSetDeviceInfo ####
+XKBExtDev.c:554:_XkbSetDeviceInfoSize(XkbDeviceInfoPtr devi,
+XKBExtDev.c:676:XkbSetDeviceInfo(Display *dpy, unsigned which, XkbDeviceInfoPtr devi)
+XKBExtDev.c:702: if (_XkbSetDeviceInfoSize(devi, &changes, &lstuff, &size, &nLeds) !=
+XKBExtDev.c:753: if (_XkbSetDeviceInfoSize(devi, changes, &lstuff, &size, &nLeds) != Success)
+XKBExtDev.c:820: if (_XkbSetDeviceInfoSize(devi, &changes, NULL, &size, &nLeds) != Success)
+XKBlib.h:1083:extern Bool XkbSetDeviceInfo(
+
+#### XkbSetDeviceLedInfo ####
+XKBExtDev.c:781:XkbSetDeviceLedInfo(Display *dpy,
+XKBlib.h:1095:extern Bool XkbSetDeviceLedInfo(
+
+#### XkbSetGeometry ####
+XKBSetGeom.c:448:XkbSetGeometry(Display *dpy, unsigned deviceSpec, XkbGeometryPtr geom)
+
+#### XkbSetIgnoreLockMods ####
+XKBCtrls.c:129:XkbSetIgnoreLockMods(Display *dpy,
+XKBlib.h:614:extern Bool XkbSetIgnoreLockMods(
+
+#### XkbSetIndicatorMap ####
+XKBleds.c:155:XkbSetIndicatorMap(Display *dpy, unsigned long which, XkbDescPtr xkb)
+XKBlib.h:522:extern Bool XkbSetIndicatorMap(
+XKBlib.h:535: (XkbSetIndicatorMap((d),(c)->map_changes,x))
+
+#### XkbSetMap ####
+XKBSetMap.c:469:XkbSetMap(Display *dpy, unsigned which, XkbDescPtr xkb)
+XKBSetMap.c:500: req->flags = XkbSetMapAllFlags;
+XKBSetMap.c:576: req->flags = XkbSetMapRecomputeActions;
+XKBlib.h:874:extern Bool XkbSetMap(
+
+#### XkbSetNamedDeviceIndicator ####
+XKBleds.c:269:XkbSetNamedDeviceIndicator(Display *dpy,
+XKBleds.c:334: return XkbSetNamedDeviceIndicator(dpy, XkbUseCoreKbd,
+XKBlib.h:567:extern Bool XkbSetNamedDeviceIndicator(
+
+#### XkbSetNamedIndicator ####
+XKBleds.c:327:XkbSetNamedIndicator(Display *dpy,
+XKBlib.h:558:extern Bool XkbSetNamedIndicator(
+
+#### XkbSetNames ####
+XKBNames.c:321:XkbSetNames(Display *dpy,
+XKBlib.h:847:extern Bool XkbSetNames(
+
+#### XkbSetPerClientControls ####
+XKB.c:657:XkbSetPerClientControls(Display *dpy, unsigned change, unsigned *values)
+XKBlib.h:910:extern Bool XkbSetPerClientControls(
+
+#### XkbSetServerInternalMods ####
+XKBCtrls.c:104:XkbSetServerInternalMods(Display *dpy,
+XKBlib.h:605:extern Bool XkbSetServerInternalMods(
+
+#### XkbSetXlibControls ####
+imConv.c:146: XkbSetXlibControls (event->display,
+imConv.c:149: XkbSetXlibControls (event->display,
+XKB.c:351:XkbSetXlibControls(Display *dpy, unsigned affect, unsigned values)
+XKBlib.h:329:extern unsigned int XkbSetXlibControls(
+
+#### XkbToControl ####
+XKBBind.c:659: buffer[0] = XkbToControl(buffer[0]);
+XKBBind.c:769:XkbToControl(char ch)
+XKBlib.h:1112:extern char XkbToControl(
+
+#### XkbTranslateKey ####
+XKBBind.c:229: * Not a public entry point -- XkbTranslateKey is an obsolete name
+XKBBind.c:234:XkbTranslateKey(register Display *dpy,
+XKBBind.c:241:XkbTranslateKey(register Display *dpy,
+XKBBind.c:260: return XkbTranslateKeyCode(dpy->xkb_info->desc, key, mods, mods_rtrn,
+XKBBind.c:265:XkbTranslateKeyCode(register XkbDescPtr xkb,
+XKBBind.c:333: * is XkbTranslateKeyCode that is causing the problem. The
+XKBBind.c:590:XkbTranslateKeySym(register Display *dpy,
+XKBBind.c:734: return XkbTranslateKeySym(dpy, keysym, new_mods, buffer, nbytes, NULL);
+XKBlib.h:390:extern Bool XkbTranslateKeyCode(
+XKBlib.h:398:extern int XkbTranslateKeySym(
+
+#### XkbTranslateKeyCode ####
+XKBBind.c:260: return XkbTranslateKeyCode(dpy->xkb_info->desc, key, mods, mods_rtrn,
+XKBBind.c:265:XkbTranslateKeyCode(register XkbDescPtr xkb,
+XKBBind.c:333: * is XkbTranslateKeyCode that is causing the problem. The
+XKBlib.h:390:extern Bool XkbTranslateKeyCode(
+
+#### XkbTranslateKeySym ####
+XKBBind.c:590:XkbTranslateKeySym(register Display *dpy,
+XKBBind.c:734: return XkbTranslateKeySym(dpy, keysym, new_mods, buffer, nbytes, NULL);
+XKBlib.h:398:extern int XkbTranslateKeySym(
+
+#### XkbUpdateActionVirtualMods ####
+XKBMisc.c:826:XkbUpdateActionVirtualMods(XkbDescPtr xkb, XkbAction *act, unsigned changed)
+XKBMisc.c:996: XkbUpdateActionVirtualMods(xkb, pAct, changed)) {
+XKBlib.h:1135:extern Bool XkbUpdateActionVirtualMods(
+
+#### XkbUpdateKeyTypeVirtualMods ####
+XKBMisc.c:854:XkbUpdateKeyTypeVirtualMods(XkbDescPtr xkb,
+XKBMisc.c:918: XkbUpdateKeyTypeVirtualMods(xkb, &xkb->map->types[i], changed,
+XKBlib.h:1141:extern void XkbUpdateKeyTypeVirtualMods(
+
+#### XkbUpdateMapFromCore ####
+XKBMisc.c:589:XkbUpdateMapFromCore(XkbDescPtr xkb,
+XKBlib.h:1013:extern Bool XkbUpdateMapFromCore( /* False only on error */
+
+#### XkbUseExtension ####
+OpenDis.c:802: XkbUseExtension(dpy,NULL,NULL);
+XKBBell.c:49: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBBell.c:84: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBBell.c:121: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBBell.c:149: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL))) {
+XKBBell.c:161: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL))) {
+XKBBell.c:173: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL))) {
+XKBBind.c:513: if (!XkbUseExtension(dpy, NULL, NULL))
+XKB.c:46: if (!XkbUseExtension(dpy, majorReturn, minorReturn))
+XKB.c:93: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:154: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:238: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:269: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:299: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:327: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:354: XkbUseExtension(dpy, NULL, NULL);
+XKB.c:367: XkbUseExtension(dpy, NULL, NULL);
+XKB.c:398: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:488: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:528: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:562: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:596: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:631: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKB.c:665: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
+XKB.c:698: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
+XKBCompat.c:119: (!dpy->xkb_info && (!XkbUseExtension(dpy, NULL, NULL))))
+XKBCompat.c:222: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBCtrls.c:59: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBCtrls.c:82: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBCtrls.c:114: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBCtrls.c:139: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBCtrls.c:162: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBCtrls.c:183: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBCtrls.c:276: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBExtDev.c:245: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBExtDev.c:291: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBExtDev.c:355: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBExtDev.c:396: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBExtDev.c:686: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBExtDev.c:742: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBExtDev.c:804: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGeom.c:678: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGeom.c:706: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetByName.c:55: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:574: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:623: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:647: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:672: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:698: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:723: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:747: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:784: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:818: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBGetMap.c:851: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBleds.c:44: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBleds.c:123: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBleds.c:164: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBleds.c:215: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBleds.c:283: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBList.c:112: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
+XKBNames.c:247: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBNames.c:337: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBNames.c:545: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBSetGeom.c:454: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBSetMap.c:477: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) || (!xkb))
+XKBSetMap.c:549: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
+XKBUse.c:216: (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
+XKBUse.c:619:XkbUseExtension(Display *dpy, int *major_rtrn, int *minor_rtrn)
+XKBUse.c:795: "Internal Error! XkbUseExtension succeeded with forceIgnore set\n");
+XKBlib.h:318:extern Bool XkbUseExtension(
+
+#### XkbVirtualModsToReal ####
+XKB.c:447: if (!XkbVirtualModsToReal(xkb, type->mods.vmods, &tmp))
+XKB.c:455: if (!XkbVirtualModsToReal(xkb, entry->mods.vmods, &tmp))
+XKBMisc.c:408: XkbVirtualModsToReal(xkb, tmp, &tmp);
+XKBMisc.c:416: XkbVirtualModsToReal(xkb, tmp, &tmp);
+XKBMisc.c:802:XkbVirtualModsToReal(XkbDescPtr xkb, unsigned virtual_mask, unsigned *mask_rtrn)
+XKBMisc.c:835: XkbVirtualModsToReal(xkb, tmp, &tmp);
+XKBMisc.c:843: XkbVirtualModsToReal(xkb, tmp, &tmp);
+XKBMisc.c:862: XkbVirtualModsToReal(xkb, type->mods.vmods, &mask);
+XKBMisc.c:869: XkbVirtualModsToReal(xkb, entry->mods.vmods, &mask);
+XKBMisc.c:924: XkbVirtualModsToReal(xkb, xkb->ctrls->internal.vmods, &newMask);
+XKBMisc.c:937: XkbVirtualModsToReal(xkb, xkb->ctrls->ignore_lock.vmods, &newMask);
+XKBMisc.c:955: XkbVirtualModsToReal(xkb, map->mods.vmods, &newMask);
+XKBMisc.c:974: XkbVirtualModsToReal(xkb, compat->groups[i].vmods, &newMask);
+XKBlib.h:624:extern Bool XkbVirtualModsToReal(
+
+#### XkbXlibControlsImplemented ####
+XKB.c:374:XkbXlibControlsImplemented(void)
+XKBlib.h:339:extern unsigned int XkbXlibControlsImplemented(void);
+
+#### XmbDrawImageString ####
+mbWrap.c:109:XmbDrawImageString(
+Xlcint.h:482:typedef void (*XmbDrawImageStringProc)(
+Xlcint.h:552: XmbDrawImageStringProc mb_draw_image_string;
+Xlcint.h:568: XmbDrawImageStringProc utf8_draw_image_string;
+Xlib.h:3815:extern void XmbDrawImageString(
+
+#### XmbDrawString ####
+mbWrap.c:93:XmbDrawString(
+Xlcint.h:471:typedef int (*XmbDrawStringProc)(
+Xlcint.h:551: XmbDrawStringProc mb_draw_string;
+Xlcint.h:567: XmbDrawStringProc utf8_draw_string;
+Xlib.h:3782:extern void XmbDrawString(
+
+#### XmbDrawText ####
+mbWrap.c:60:XmbDrawText(
+Xlib.h:3752:extern void XmbDrawText(
+
+#### XmbLookupString ####
+ICWrap.c:400:XmbLookupString(XIC ic, XKeyEvent *ev, char *buffer, int nbytes,
+Xlib.h:3920:extern int XmbLookupString(
+
+#### XmbResetIC ####
+ICWrap.c:372:XmbResetIC(XIC ic)
+Xlib.h:3895:extern char *XmbResetIC(
+
+#### XmbSetWMProperties ####
+mbWMProps.c:38:XmbSetWMProperties (
+Xutil.h:678:extern void XmbSetWMProperties(
+
+#### XmbTextEscapement ####
+mbWrap.c:124:XmbTextEscapement(
+Xlcint.h:445:typedef int (*XmbTextEscapementProc)(
+Xlcint.h:548: XmbTextEscapementProc mb_escapement;
+Xlcint.h:564: XmbTextEscapementProc utf8_escapement;
+Xlib.h:3674:extern int XmbTextEscapement(
+
+#### XmbTextExtents ####
+mbWrap.c:133:XmbTextExtents(
+Xlcint.h:451:typedef int (*XmbTextExtentsProc)(
+Xlcint.h:549: XmbTextExtentsProc mb_extents;
+Xlcint.h:565: XmbTextExtentsProc utf8_extents;
+Xlib.h:3692:extern int XmbTextExtents(
+
+#### XmbTextListToTextProperty ####
+lcPublic.c:55: _XmbTextListToTextProperty,
+lcTxtPr.c:218:_XmbTextListToTextProperty(
+lcWrap.c:425:XmbTextListToTextProperty(
+mbWMProps.c:54: XmbTextListToTextProperty(dpy, (char**)&windowName, 1,
+mbWMProps.c:58: XmbTextListToTextProperty(dpy, (char**)&iconName, 1,
+Xlcint.h:286:typedef int (*XmbTextListToTextPropertyProc)(
+Xlcint.h:322: XmbTextListToTextPropertyProc mb_text_list_to_prop;
+Xlcint.h:324: XmbTextListToTextPropertyProc utf8_text_list_to_prop;
+XlcPubI.h:165:extern int _XmbTextListToTextProperty(
+Xutil.h:746:extern int XmbTextListToTextProperty(
+
+#### XmbTextPerCharExtents ####
+mbWrap.c:146:XmbTextPerCharExtents(
+Xlcint.h:459:typedef Status (*XmbTextPerCharExtentsProc)(
+Xlcint.h:550: XmbTextPerCharExtentsProc mb_extents_per_char;
+Xlcint.h:566: XmbTextPerCharExtentsProc utf8_extents_per_char;
+Xlib.h:3716:extern Status XmbTextPerCharExtents(
+
+#### XmbTextPropertyToTextList ####
+lcPrTxt.c:245:_XmbTextPropertyToTextList(
+lcPublic.c:52: _XmbTextPropertyToTextList,
+lcWrap.c:377:XmbTextPropertyToTextList(
+Xlcint.h:270:typedef int (*XmbTextPropertyToTextListProc)(
+Xlcint.h:319: XmbTextPropertyToTextListProc mb_text_prop_to_list;
+Xlcint.h:321: XmbTextPropertyToTextListProc utf8_text_prop_to_list;
+XlcPubI.h:141:extern int _XmbTextPropertyToTextList(
+Xutil.h:780:extern int XmbTextPropertyToTextList(
+
+#### Xpermalloc ####
+Quarks.c:138:static char *_Xpermalloc(unsigned int length);
+Quarks.c:140:char *Xpermalloc(unsigned int length)
+Quarks.c:145: p = _Xpermalloc(length);
+Quarks.c:149:#define Xpermalloc _Xpermalloc
+Quarks.c:153:char *Xpermalloc(unsigned int length)
+Quarks.c:200: stringTable[0] = (XrmString *)Xpermalloc(QUANTSIZE);
+Quarks.c:304: new = Xpermalloc(QUANTSIZE);
+Xresource.h:75:extern char *Xpermalloc(
+
+#### XrmCombineDatabase ####
+Xrm.c:759:void XrmCombineDatabase(
+Xrm.c:812: XrmCombineDatabase(from, into, True);
+Xrm.c:1708: XrmCombineDatabase(db, target, False);
+Xresource.h:291:extern void XrmCombineDatabase(
+
+#### XrmCombineFileDatabase ####
+Xrm.c:1687:XrmCombineFileDatabase(
+Xresource.h:271:extern Status XrmCombineFileDatabase(
+
+#### XrmDestroyDatabase ####
+ErrDes.c:183: XrmDestroyDatabase(temp_db);
+OpenDis.c:891: XrmDestroyDatabase(dpy->db);
+Xrm.c:354: XrmDestroyDatabase(display->db);
+Xrm.c:2647:void XrmDestroyDatabase(
+Xresource.h:179:extern void XrmDestroyDatabase(
+
+#### XrmEnumerateDatabase ####
+KeysymStr.c:116: (void)XrmEnumerateDatabase(keysymdb, &empty, &empty, XrmEnumAllLevels,
+Xrm.c:1959:Bool XrmEnumerateDatabase(
+Xrm.c:2096: if (XrmEnumerateDatabase(db, &empty, &empty, XrmEnumAllLevels,
+Xresource.h:300:extern Bool XrmEnumerateDatabase(
+
+#### XrmGetDatabase ####
+Xrm.c:337:XrmDatabase XrmGetDatabase(
+Xresource.h:261:extern XrmDatabase XrmGetDatabase(
+
+#### XrmGetFileDatabase ####
+ErrDes.c:172: temp_db = XrmGetFileDatabase(dbname);
+GetDflt.c:146: xdb = XrmGetFileDatabase (fname);
+GetDflt.c:161: userdb = XrmGetFileDatabase (xenv);
+GetDflt.c:166: if (fname[0] != '\0') userdb = XrmGetFileDatabase(fname);
+StrKeysym.c:65: keysymdb = XrmGetFileDatabase(dbname);
+Xrm.c:1669:XrmGetFileDatabase(
+Xresource.h:267:extern XrmDatabase XrmGetFileDatabase(
+
+#### XrmGetResource ####
+ErrDes.c:195: XrmGetResource(db, tptr, "ErrorType.ErrorNumber",
+imRm.c:124: if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
+imRm.c:139: if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
+imRm.c:154: if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
+imRm.c:174: if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
+imRm.c:197: if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
+Xrm.c:2581:XrmGetResource(XrmDatabase db, _Xconst char *name_str, _Xconst char *class_str,
+Xresource.h:224:extern Bool XrmGetResource(
+
+#### XrmGetStringDatabase ####
+GetDflt.c:148: xdb = XrmGetStringDatabase(dpy->xdefaults);
+GetDflt.c:167: xdb = XrmGetStringDatabase(dpy->xdefaults);
+Xrm.c:1554:XrmGetStringDatabase(
+Xresource.h:277:extern XrmDatabase XrmGetStringDatabase(
+
+#### XrmInitialize ####
+ErrDes.c:164: XrmInitialize();
+GetDflt.c:131: XrmInitialize();
+StrKeysym.c:59: XrmInitialize();
+Xrm.c:331:void XrmInitialize(void)
+Xlib.h:1488:extern void XrmInitialize(
+
+#### XrmLocaleOfDatabase ####
+Xrm.c:2637:XrmLocaleOfDatabase(
+Xresource.h:316:extern const char *XrmLocaleOfDatabase(
+
+#### XrmMergeDatabases ####
+GetDflt.c:162: XrmMergeDatabases (userdb, &xdb);
+GetDflt.c:168: XrmMergeDatabases(userdb, &xdb);
+Xrm.c:809:void XrmMergeDatabases(
+Xresource.h:286:extern void XrmMergeDatabases(
+
+#### XrmParseCommand ####
+ParseCmd.c:49:/* XrmParseCommand()
+ParseCmd.c:74:XrmParseCommand(
+Xresource.h:347:extern void XrmParseCommand(
+
+#### XrmPermStringToQuark ####
+KeysymStr.c:114: data.type = XrmPermStringToQuark("String");
+lcWrap.c:583: resources->xrm_name = XrmPermStringToQuark(resources->name);
+lcWrap.c:602: xrm_name = XrmPermStringToQuark(args->name);
+lcWrap.c:634: xrm_name = XrmPermStringToQuark(args->name);
+Quarks.c:362:XrmPermStringToQuark(
+Xrm.c:333: XrmQString = XrmPermStringToQuark("String");
+Xrm.c:334: XrmQANY = XrmPermStringToQuark("?");
+Xresource.h:96:extern XrmQuark XrmPermStringToQuark(
+
+#### XrmPutFileDatabase ####
+Xrm.c:2087:XrmPutFileDatabase(
+Xresource.h:281:extern void XrmPutFileDatabase(
+
+#### XrmPutLineResource ####
+ParseCmd.c:182: XrmPutLineResource(pdb, *argv);
+Xrm.c:1543:XrmPutLineResource(
+Xresource.h:211:extern void XrmPutLineResource(
+
+#### XrmPutResource ####
+Xrm.c:1023:XrmPutResource(
+Xresource.h:191:extern void XrmPutResource(
+
+#### XrmPutStringResource ####
+Xrm.c:1523:XrmPutStringResource(
+Xresource.h:205:extern void XrmPutStringResource(
+
+#### XrmQGetResource ####
+GetDflt.c:231: (void)XrmQGetResource(dpy->db, names, classes, &fromType, &result);
+StrKeysym.c:123: (void)XrmQGetResource(keysymdb, names, Qkeysym, &from_type, &result);
+Xrm.c:2538:Bool XrmQGetResource(
+Xrm.c:2591: result = XrmQGetResource(db, names, classes, &fromType, pValue);
+Xresource.h:216:extern Bool XrmQGetResource(
+
+#### XrmQGetSearchList ####
+Xrm.c:2255:Bool XrmQGetSearchList(
+Xresource.h:232:extern Bool XrmQGetSearchList(
+
+#### XrmQGetSearchResource ####
+Xrm.c:2300:Bool XrmQGetSearchResource(
+Xresource.h:240:extern Bool XrmQGetSearchResource(
+
+#### XrmQPutResource ####
+Xrm.c:1009:void XrmQPutResource(
+Xresource.h:183:extern void XrmQPutResource(
+
+#### XrmQPutStringResource ####
+ParseCmd.c:98: XrmQPutStringResource(pdb, bindings, quarks, value_str); \
+Xrm.c:1040:XrmQPutStringResource(
+Xresource.h:198:extern void XrmQPutStringResource(
+
+#### XrmQuarkToString ####
+KeysymStr.c:65: gd->name = XrmQuarkToString(*quarks); /* XXX */
+Quarks.c:390:XrmString XrmQuarkToString(register XrmQuark quark)
+Xrm.c:450: (void) fputs(XrmQuarkToString(*quarks), stream);
+Xrm.c:2009: (void) fputs(XrmQuarkToString(*quarks), stream);
+Xrm.c:2592: (*pType_str) = XrmQuarkToString(fromType);
+Xresource.h:101:extern XrmString XrmQuarkToString(
+Xresource.h:139:#define XrmNameToString(name) XrmQuarkToString(name)
+Xresource.h:145:#define XrmClassToString(c_class) XrmQuarkToString(c_class)
+Xresource.h:159:#define XrmRepresentationToString(type) XrmQuarkToString(type)
+
+#### XrmSetDatabase ####
+Xrm.c:347:void XrmSetDatabase(
+Xresource.h:256:extern void XrmSetDatabase(
+
+#### XrmStringToBindingQuarkList ####
+ParseCmd.c:96: XrmStringToBindingQuarkList( \
+Xrm.c:395:XrmStringToBindingQuarkList(
+Xrm.c:1034: XrmStringToBindingQuarkList(specifier, bindings, quarks);
+Xrm.c:1533: XrmStringToBindingQuarkList(specifier, bindings, quarks);
+Xresource.h:125:extern void XrmStringToBindingQuarkList(
+
+#### XrmStringToQuark ####
+imDefIc.c:463: quark = XrmStringToQuark(p->name);
+imDefIc.c:522: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imDefIc.c:523: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imDefIc.c:524: separator = XrmStringToQuark(XNSeparatorofNestedList);
+imDefIc.c:529: quark = XrmStringToQuark(p->name);
+imDefIc.c:550: *q_list = XrmStringToQuark(pp->name);
+imDefIc.c:599: *quark_list = XrmStringToQuark(p->name);
+imDefIc.c:605: *quark_list = XrmStringToQuark(pp->name);
+imDefIm.c:1172: quark = XrmStringToQuark(p->name);
+imDefIm.c:1200: *quark_list = XrmStringToQuark(p->name);
+imRmAttr.c:149: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imRmAttr.c:150: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imRmAttr.c:516: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imRmAttr.c:517: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imRmAttr.c:931: if (res->xrm_name == XrmStringToQuark(XNClientWindow)) {
+imRmAttr.c:937: } else if (res->xrm_name == XrmStringToQuark(XNFocusWindow)) {
+imRmAttr.c:954: if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
+imRmAttr.c:964: } else if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
+imRmAttr.c:1005: if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
+imRmAttr.c:1015: } else if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
+imRmAttr.c:1098: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imRmAttr.c:1099: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imRmAttr.c:1198: if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
+imRmAttr.c:1240: if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
+imRmAttr.c:1299: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imRmAttr.c:1300: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imRmAttr.c:1301: separator = XrmStringToQuark(XNSeparatorofNestedList);
+imRm.c:2250: XrmQuark quark = XrmStringToQuark(name);
+imRm.c:2670: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imRm.c:2671: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imRm.c:2784: if (res->xrm_name == XrmStringToQuark(XNClientWindow)) {
+imRm.c:2793: } else if (res->xrm_name == XrmStringToQuark(XNFocusWindow)) {
+imRm.c:2819: if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
+imRm.c:2841: if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
+imRm.c:2872: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imRm.c:2873: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imRm.c:2945: XrmQuark quark = XrmStringToQuark(XNInputStyle);
+imRm.c:2950: if(quark == XrmStringToQuark(p->name)) {
+imRm.c:3033: pre_quark = XrmStringToQuark(XNPreeditAttributes);
+imRm.c:3034: sts_quark = XrmStringToQuark(XNStatusAttributes);
+imRm.c:3151: im_attr_info[i].quark = XrmStringToQuark(GET_NAME(im_attr_info[i]));
+imRm.c:3163: ic_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_attr_info[i]));
+imRm.c:3168: ic_pre_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_pre_attr_info[i]));
+imRm.c:3173: ic_sts_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_sts_attr_info[i]));
+imRm.c:3184: im_mode_quark[i] = XrmStringToQuark(GET_NAME(im_mode[i]));
+imRm.c:3195: ic_mode_quark[i] = XrmStringToQuark(GET_NAME(ic_mode[i]));
+IMWrap.c:72: res->xrm_name = XrmStringToQuark(res->resource_name);
+lcCharSet.c:52: xrm_name = XrmStringToQuark(name);
+lcCharSet.c:73: xrm_encoding_name = XrmStringToQuark(encoding_name);
+lcCharSet.c:194: charset->xrm_name = XrmStringToQuark(charset->name);
+lcCharSet.c:208: charset->xrm_encoding_name = XrmStringToQuark(charset->encoding_name);
+lcConv.c:92: from_type = XrmStringToQuark(from);
+lcConv.c:93: to_type = XrmStringToQuark(to);
+lcConv.c:241: QCTCharSet = XrmStringToQuark(XlcNCTCharSet);
+lcConv.c:242: QCharSet = XrmStringToQuark(XlcNCharSet);
+lcConv.c:243: QChar = XrmStringToQuark(XlcNChar);
+lcConv.c:246: from_type = XrmStringToQuark(from);
+lcConv.c:247: to_type = XrmStringToQuark(to);
+lcConv.c:303: from_type = XrmStringToQuark(from);
+lcConv.c:304: to_type = XrmStringToQuark(to);
+lcDB.c:1218: category_q = XrmStringToQuark(category);
+lcDB.c:1219: name_q = XrmStringToQuark(name);
+lcDB.c:1290: name_q = XrmStringToQuark(name);
+lcDB.c:1292: name_q = XrmStringToQuark((char*)__XOS2RedirRoot(name));
+lcDB.c:1312: lc_db[i].category_q = XrmStringToQuark(p->category);
+lcDB.c:1313: lc_db[i].name_q = XrmStringToQuark(p->name);
+lcGeneric.c:523: charsetd->xrm_encoding_name = XrmStringToQuark(tmp);
+lcUTF8.c:374: convptr->xrm_name = XrmStringToQuark(convptr->name);
+lcUTF8.c:941: xrm_name = XrmStringToQuark(name);
+Quarks.c:346:XrmStringToQuark(
+StrKeysym.c:67: Qkeysym[0] = XrmStringToQuark("Keysym");
+Xrm.c:362:XrmStringToQuarkList(
+Xrm.c:1035: PutEntry(*pdb, bindings, quarks, XrmStringToQuark(type), value);
+Xresource.h:92:extern XrmQuark XrmStringToQuark(
+Xresource.h:120:extern void XrmStringToQuarkList(
+Xresource.h:140:#define XrmStringToName(string) XrmStringToQuark(string)
+Xresource.h:141:#define XrmStringToNameList(str, name) XrmStringToQuarkList(str, name)
+Xresource.h:146:#define XrmStringToClass(c_class) XrmStringToQuark(c_class)
+Xresource.h:147:#define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class)
+Xresource.h:158:#define XrmStringToRepresentation(string) XrmStringToQuark(string)
+Xutil.h:361:#define XStringToContext(string) ((XContext) XrmStringToQuark(string))
+
+#### XrmStringToQuarkList ####
+Xrm.c:362:XrmStringToQuarkList(
+Xresource.h:120:extern void XrmStringToQuarkList(
+Xresource.h:141:#define XrmStringToNameList(str, name) XrmStringToQuarkList(str, name)
+Xresource.h:147:#define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class)
+
+#### XrmUniqueQuark ####
+Quarks.c:76:static XrmQuark nextUniq = -1; /* next quark from XrmUniqueQuark */
+Quarks.c:377:XrmQuark XrmUniqueQuark(void)
+Xresource.h:105:extern XrmQuark XrmUniqueQuark(
+Xutil.h:360:#define XUniqueContext() ((XContext) XrmUniqueQuark())
+
+#### Xutf8DrawImageString ####
+utf8Wrap.c:131:Xutf8DrawImageString(
+Xlib.h:3837:extern void Xutf8DrawImageString(
+
+#### Xutf8DrawString ####
+utf8Wrap.c:115:Xutf8DrawString(
+Xlib.h:3804:extern void Xutf8DrawString(
+
+#### Xutf8DrawText ####
+utf8Wrap.c:82:Xutf8DrawText(
+Xlib.h:3772:extern void Xutf8DrawText(
+
+#### Xutf8LookupString ####
+ICWrap.c:420:Xutf8LookupString(XIC ic, XKeyEvent *ev, char *buffer, int nbytes,
+Xlib.h:3938:extern int Xutf8LookupString(
+
+#### Xutf8ResetIC ####
+ICWrap.c:388:Xutf8ResetIC(XIC ic)
+Xlib.h:3899:extern char *Xutf8ResetIC(
+
+#### Xutf8SetWMProperties ####
+utf8WMProps.c:60:Xutf8SetWMProperties (
+Xutil.h:690:extern void Xutf8SetWMProperties(
+
+#### Xutf8TextEscapement ####
+utf8Wrap.c:146:Xutf8TextEscapement(
+Xlib.h:3686:extern int Xutf8TextEscapement(
+
+#### Xutf8TextExtents ####
+utf8Wrap.c:155:Xutf8TextExtents(
+Xlib.h:3708:extern int Xutf8TextExtents(
+
+#### Xutf8TextListToTextProperty ####
+lcPublic.c:57: _Xutf8TextListToTextProperty,
+lcTxtPr.c:244:_Xutf8TextListToTextProperty(
+lcWrap.c:459:Xutf8TextListToTextProperty(
+utf8WMProps.c:76: Xutf8TextListToTextProperty(dpy, (char**)&windowName, 1,
+utf8WMProps.c:80: Xutf8TextListToTextProperty(dpy, (char**)&iconName, 1,
+XlcPubI.h:183:extern int _Xutf8TextListToTextProperty(
+Xutil.h:762:extern int Xutf8TextListToTextProperty(
+
+#### Xutf8TextPerCharExtents ####
+utf8Wrap.c:168:Xutf8TextPerCharExtents(
+Xlib.h:3740:extern Status Xutf8TextPerCharExtents(
+
+#### Xutf8TextPropertyToTextList ####
+lcPrTxt.c:269:_Xutf8TextPropertyToTextList(
+lcPublic.c:54: _Xutf8TextPropertyToTextList,
+lcWrap.c:409:Xutf8TextPropertyToTextList(
+XlcPubI.h:157:extern int _Xutf8TextPropertyToTextList(
+Xutil.h:794:extern int Xutf8TextPropertyToTextList(
+
+#### XwcDrawImageString ####
+wcWrap.c:109:XwcDrawImageString(
+Xlcint.h:530:typedef void (*XwcDrawImageStringProc)(
+Xlcint.h:560: XwcDrawImageStringProc wc_draw_image_string;
+Xlib.h:3826:extern void XwcDrawImageString(
+
+#### XwcDrawString ####
+wcWrap.c:94:XwcDrawString(
+Xlcint.h:519:typedef int (*XwcDrawStringProc)(
+Xlcint.h:559: XwcDrawStringProc wc_draw_string;
+Xlib.h:3793:extern void XwcDrawString(
+
+#### XwcDrawText ####
+wcWrap.c:61:XwcDrawText(
+Xlib.h:3762:extern void XwcDrawText(
+
+#### XwcFreeStringList ####
+lcPrTxt.c:281:_XwcFreeStringList(
+lcPublic.c:58: _XwcFreeStringList,
+lcWrap.c:476:XwcFreeStringList(
+Xlcint.h:304:typedef void (*XwcFreeStringListProc)(
+Xlcint.h:325: XwcFreeStringListProc wc_free_string_list;
+XlcPubI.h:192:extern void _XwcFreeStringList(
+Xutil.h:770:extern void XwcFreeStringList(
+
+#### XwcLookupString ####
+ICWrap.c:410:XwcLookupString(XIC ic, XKeyEvent *ev, wchar_t *buffer, int nchars,
+imThaiFlt.c:1312: XwcLookupString((XIC)ic, &ev->xkey, wbuf, sizeof(wbuf) / sizeof(wbuf[0]),
+Xlib.h:3929:extern int XwcLookupString(
+
+#### XwcResetIC ####
+ICWrap.c:380:XwcResetIC(XIC ic)
+Xlib.h:3891:extern wchar_t *XwcResetIC(
+
+#### XwcTextEscapement ####
+wcWrap.c:124:XwcTextEscapement(
+Xlcint.h:493:typedef int (*XwcTextEscapementProc)(
+Xlcint.h:556: XwcTextEscapementProc wc_escapement;
+Xlib.h:3680:extern int XwcTextEscapement(
+
+#### XwcTextExtents ####
+wcWrap.c:133:XwcTextExtents(
+Xlcint.h:499:typedef int (*XwcTextExtentsProc)(
+Xlcint.h:557: XwcTextExtentsProc wc_extents;
+Xlib.h:3700:extern int XwcTextExtents(
+
+#### XwcTextListToTextProperty ####
+lcPublic.c:56: _XwcTextListToTextProperty,
+lcTxtPr.c:231:_XwcTextListToTextProperty(
+lcWrap.c:442:XwcTextListToTextProperty(
+Xlcint.h:295:typedef int (*XwcTextListToTextPropertyProc)(
+Xlcint.h:323: XwcTextListToTextPropertyProc wc_text_list_to_prop;
+XlcPubI.h:174:extern int _XwcTextListToTextProperty(
+Xutil.h:754:extern int XwcTextListToTextProperty(
+
+#### XwcTextPerCharExtents ####
+wcWrap.c:146:XwcTextPerCharExtents(
+Xlcint.h:507:typedef Status (*XwcTextPerCharExtentsProc)(
+Xlcint.h:558: XwcTextPerCharExtentsProc wc_extents_per_char;
+Xlib.h:3728:extern Status XwcTextPerCharExtents(
+
+#### XwcTextPropertyToTextList ####
+lcPrTxt.c:257:_XwcTextPropertyToTextList(
+lcPublic.c:53: _XwcTextPropertyToTextList,
+lcWrap.c:393:XwcTextPropertyToTextList(
+Xlcint.h:278:typedef int (*XwcTextPropertyToTextListProc)(
+Xlcint.h:320: XwcTextPropertyToTextListProc wc_text_prop_to_list;
+XlcPubI.h:149:extern int _XwcTextPropertyToTextList(
+Xutil.h:787:extern int XwcTextPropertyToTextList(
+
+#### _Utf8GetConvByName ####
+imConv.c:87: XPointer cvt = _Utf8GetConvByName(encoding_name);
+imConv.c:92: return _Utf8GetConvByName(SubstTable[i].charset_name);
+lcUTF8.c:930:_Utf8GetConvByName(
+XlcPubI.h:293:_Utf8GetConvByName(
+
+#### _X11TransBytesReadable ####
+XlibInt.c:484: _X11TransBytesReadable(dpy->trans_conn, &pend);
+XlibInt.c:533: if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
+XlibInt.c:1175: if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
+XlibInt.c:1218: if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
+XlibInt.c:1393: if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
+
+#### _X11TransClose ####
+ConnDis.c:577: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransClose(trans_conn).\n");
+ConnDis.c:579: _X11TransClose(trans_conn);
+ConnDis.c:604: _X11TransClose(trans_conn);
+ConnDis.c:685: if (trans_conn) (void)_X11TransClose(trans_conn);
+ConnDis.c:774: _X11TransClose(trans_conn);
+
+#### _X11TransCloseForCloning ####
+
+#### _X11TransConnect ####
+ConnDis.c:174:_X11TransConnectDisplay (
+ConnDis.c:215: fprintf(stderr, "_X11TransConnectDisplay: Called with display_name [%s].\n", display_name);
+ConnDis.c:238: fprintf(stderr, "_X11TransConnectDisplay: Forced protocol to [%s].\n", pprotocol);
+ConnDis.c:274: fprintf(stderr, "_X11TransConnectDisplay: Checking hostname [%s].\n", p);
+ConnDis.c:307: fprintf(stderr, "_X11TransConnectDisplay: Forced hostname [%s].\n", phostname);
+ConnDis.c:403: fprintf(stderr, "_X11TransConnectDisplay: Searching port in port [%s].\n", phostname);
+ConnDis.c:498: fprintf(stderr, "_X11TransConnectDisplay: Converted protocol to [%s].\n", pprotocol);
+ConnDis.c:560: fprintf(stderr, "_X11TransConnectDisplay: Entering connection loop.\n");
+ConnDis.c:565: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransOpenCOTSClient(address) with address [%s].\n", address);
+ConnDis.c:572: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConnect(trans_conn,address).\n");
+ConnDis.c:574: if ((connect_stat = _X11TransConnect(trans_conn,address)) < 0 )
+ConnDis.c:577: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransClose(trans_conn).\n");
+ConnDis.c:589: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr).\n");
+ConnDis.c:600: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConvertAddress(&family, &saddrlen, &saddr).\n");
+ConnDis.c:618: fprintf(stderr, "_X11TransConnectDisplay: Out of connection loop.\n");
+ConnDis.c:746: trans_conn = _X11TransConnectDisplay (
+OpenDis.c:215: if ((dpy->trans_conn = _X11TransConnectDisplay (
+Xintconn.h:26:extern XtransConnInfo _X11TransConnectDisplay(char *display_name,
+
+#### _X11TransConnectDisplay ####
+ConnDis.c:174:_X11TransConnectDisplay (
+ConnDis.c:215: fprintf(stderr, "_X11TransConnectDisplay: Called with display_name [%s].\n", display_name);
+ConnDis.c:238: fprintf(stderr, "_X11TransConnectDisplay: Forced protocol to [%s].\n", pprotocol);
+ConnDis.c:274: fprintf(stderr, "_X11TransConnectDisplay: Checking hostname [%s].\n", p);
+ConnDis.c:307: fprintf(stderr, "_X11TransConnectDisplay: Forced hostname [%s].\n", phostname);
+ConnDis.c:403: fprintf(stderr, "_X11TransConnectDisplay: Searching port in port [%s].\n", phostname);
+ConnDis.c:498: fprintf(stderr, "_X11TransConnectDisplay: Converted protocol to [%s].\n", pprotocol);
+ConnDis.c:560: fprintf(stderr, "_X11TransConnectDisplay: Entering connection loop.\n");
+ConnDis.c:565: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransOpenCOTSClient(address) with address [%s].\n", address);
+ConnDis.c:572: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConnect(trans_conn,address).\n");
+ConnDis.c:577: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransClose(trans_conn).\n");
+ConnDis.c:589: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr).\n");
+ConnDis.c:600: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConvertAddress(&family, &saddrlen, &saddr).\n");
+ConnDis.c:618: fprintf(stderr, "_X11TransConnectDisplay: Out of connection loop.\n");
+ConnDis.c:746: trans_conn = _X11TransConnectDisplay (
+OpenDis.c:215: if ((dpy->trans_conn = _X11TransConnectDisplay (
+Xintconn.h:26:extern XtransConnInfo _X11TransConnectDisplay(char *display_name,
+
+#### _X11TransConvertAddress ####
+ConnDis.c:600: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConvertAddress(&family, &saddrlen, &saddr).\n");
+ConnDis.c:602: if( _X11TransConvertAddress(&family, &saddrlen, &saddr) < 0 )
+
+#### _X11TransDisconnect ####
+ConnDis.c:773: _X11TransDisconnect(trans_conn);
+
+#### _X11TransFreeConnInfo ####
+ConnDis.c:753: _X11TransFreeConnInfo (trans_conn);
+
+#### _X11TransGetConnectionNumber ####
+ConnDis.c:752: int fd = _X11TransGetConnectionNumber (trans_conn);
+OpenDis.c:224: dpy->fd = _X11TransGetConnectionNumber (dpy->trans_conn);
+
+#### _X11TransGetHostname ####
+
+#### _X11TransGetMyAddr ####
+ConnDis.c:1328: _X11TransGetMyAddr(trans_conn, &family, &addrlen, &addr);
+
+#### _X11TransGetPeerAddr ####
+ConnDis.c:589: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr).\n");
+ConnDis.c:591: _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr);
+
+#### _X11TransIsLocal ####
+
+#### _X11TransOpenCOTSClient ####
+ConnDis.c:536: * host, and port back together to pass to _X11TransOpenCOTSClient().
+ConnDis.c:565: fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransOpenCOTSClient(address) with address [%s].\n", address);
+ConnDis.c:567: if ( (trans_conn = _X11TransOpenCOTSClient(address)) == NULL )
+
+#### _X11TransRead ####
+XlibInt.c:1553: bytes_read = _X11TransRead(dpy->trans_conn, data, (int)size);
+XlibInt.c:1562: while ((bytes_read = _X11TransRead(dpy->trans_conn, data, (int)size))
+XlibInt.c:1688: bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2);
+XlibInt.c:1697: while ((bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2)) != size) {
+
+#### _X11TransReadv ####
+XlibInt.c:1688: bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2);
+XlibInt.c:1697: while ((bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2)) != size) {
+
+#### _X11TransSetOption ####
+ConnDis.c:630: _X11TransSetOption(trans_conn,TRANS_CLOSEONEXEC,1);
+ConnDis.c:822: _X11TransSetOption(dpy->trans_conn, TRANS_NONBLOCKING, 1);
+
+#### _X11TransSocketINET6Funcs ####
+
+#### _X11TransSocketINETFuncs ####
+
+#### _X11TransSocketLocalFuncs ####
+
+#### _X11TransSocketProxyConnInfo ####
+OpenDis.c:72:extern void *_X11TransSocketProxyConnInfo(XtransConnInfo);
+OpenDis.c:407: if (_X11TransSocketProxyConnInfo(dpy->trans_conn) == NULL) {
+
+#### _X11TransSocketTCPFuncs ####
+
+#### _X11TransSocketUNIXFuncs ####
+
+#### _X11TransWrite ####
+ConnDis.c:816: len -= _X11TransWritev (dpy->trans_conn, iovarray, niov);
+XlibInt.c:1029: write_stat = _X11TransWrite(dpy->trans_conn,
+XlibInt.c:1873: if ((len = _X11TransWritev(dpy->trans_conn, iov, i)) >= 0) {
+
+#### _X11TransWritev ####
+ConnDis.c:816: len -= _X11TransWritev (dpy->trans_conn, iovarray, niov);
+XlibInt.c:1873: if ((len = _X11TransWritev(dpy->trans_conn, iov, i)) >= 0) {
+
+#### _XAllocID ####
+OpenDis.c:293: dpy->resource_alloc = _XAllocID;
+OpenDis.c:294: dpy->idlist_alloc = _XAllocIDs;
+XlibInt.c:1998: * _XAllocID - resource ID allocation routine.
+XlibInt.c:2000:XID _XAllocID(
+XlibInt.c:2024: * _XAllocIDs - multiple resource ID allocation routine.
+XlibInt.c:2026:void _XAllocIDs(
+Xlibint.h:1007:extern XID _XAllocID(Display *dpy);
+Xlibint.h:1008:extern void _XAllocIDs(Display *dpy, XID *ids, int count);
+
+#### _XAllocIDs ####
+OpenDis.c:294: dpy->idlist_alloc = _XAllocIDs;
+XlibInt.c:2024: * _XAllocIDs - multiple resource ID allocation routine.
+XlibInt.c:2026:void _XAllocIDs(
+Xlibint.h:1008:extern void _XAllocIDs(Display *dpy, XID *ids, int count);
+
+#### _XAllocScratch ####
+PutImage.c:677: if ((buf = _XAllocScratch(dpy, length)) == NULL) {
+PutImage.c:700: if (! (temp = _XAllocScratch(dpy, temp_length))) {
+PutImage.c:804: _XAllocScratch(dpy, length)) == NULL) {
+QuTextE16.c:54: if ((buf = _XAllocScratch (dpy, (unsigned long) nbytes))) {
+QuTextExt.c:54: if ((buf = _XAllocScratch (dpy, (unsigned long) nbytes))) {
+XlibInt.c:3762:char *_XAllocScratch(
+XlibInt.c:3786: buf = _XAllocScratch(dpy, nbytes);
+Xlibint.h:883:extern char *_XAllocScratch(
+
+#### _XAllocTemp ####
+Region.c:266: if ((xr = (XRectangle *) _XAllocTemp(dpy, total))) {
+XKBSetGeom.c:420: tbuf = _XAllocTemp(dpy, sz);
+XlibInt.c:3780:char *_XAllocTemp(
+Xlibint.h:887:extern char *_XAllocTemp(
+
+#### _XAsyncErrorHandler ####
+cmsCmap.c:164: async.handler = _XAsyncErrorHandler;
+Font.c:203: async.handler = _XAsyncErrorHandler;
+Font.c:424: async1.handler = _XAsyncErrorHandler;
+Font.c:446: async2.handler = _XAsyncErrorHandler;
+ReconfWM.c:83: async.handler = _XAsyncErrorHandler;
+XlibAsync.c:62:_XAsyncErrorHandler(
+Xlibint.h:912:extern Bool _XAsyncErrorHandler(
+
+#### _XCloseLC ####
+imInsClbk.c:260: _XCloseLC( icb->lcd );
+IMWrap.c:138: _XCloseLC (lcd);
+lcRM.c:87: _XCloseLC(((UbState) state)->lcd);
+lcRM.c:179: _XCloseLC(((MbState) state)->lcd);
+lcWrap.c:322:_XCloseLC(
+lcWrap.c:357: _XCloseLC(last_lcd);
+OMWrap.c:62: _XCloseLC(lcd);
+Xlcint.h:763:extern void _XCloseLC(
+
+#### _XColor_to_XcmsRGB ####
+cmsAllNCol.c:132: _XColor_to_XcmsRGB(ccc, &XColor_in_out, pColor_scrn_return, 1);
+cmsAllNCol.c:183: _XColor_to_XcmsRGB(ccc, &exact_def, pColor_exact_return, 1);
+cmsAllNCol.c:184: _XColor_to_XcmsRGB(ccc, &hard_def, pColor_scrn_return, 1);
+cmsLkCol.c:171: _XColor_to_XcmsRGB(ccc, &def, pColor_exact_return, 1);
+cmsLkCol.c:172: _XColor_to_XcmsRGB(ccc, &scr, pColor_scrn_return, 1);
+SetGetCols.c:154: _XColor_to_XcmsRGB(ccc, &XColors_in_out, pColors_in_out, 1);
+SetGetCols.c:283: _XColor_to_XcmsRGB(ccc, pXColors_in_out, pColors_in_out, nColors);
+XRGB.c:107: * _XColor_to_XcmsRGB
+XRGB.c:112:_XColor_to_XcmsRGB(
+Cv.h:99:_XColor_to_XcmsRGB(
+
+#### _XConnectDisplay ####
+ConnDis.c:734:int _XConnectDisplay (
+Xintconn.h:13:int _XConnectDisplay (
+
+#### _XCopyEventCookie ####
+PeekEvent.c:54: if (_XCopyEventCookie(dpy, &event->xcookie, &copy.xcookie)) {
+PeekIfEv.c:62: if (_XCopyEventCookie(dpy, &event->xcookie, &copy.xcookie)) {
+PutBEvent.c:59: _XCopyEventCookie(dpy, &event->xcookie, &copy.xcookie);
+XlibInt.c:2902:_XCopyEventCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out)
+Xlibint.h:1352:extern Bool _XCopyEventCookie(
+
+#### _XCopyToArg ####
+imRmAttr.c:231: _XCopyToArg((XPointer)data, (XPointer *)&value, data_len);
+IMWrap.c:77:_XCopyToArg(XPointer src, XPointer *dst, unsigned int size)
+lcWrap.c:529: On Big Endian machines, this behaves differently than _XCopyToArg. */
+Xlcint.h:785:extern void _XCopyToArg(
+
+#### _XCreateMutex_fn ####
+locking.c:605: _XCreateMutex_fn = _XCreateMutex;
+XlibInt.c:83:void (*_XCreateMutex_fn)(LockInfoPtr) = NULL;
+XlibInt.c:4193:void (**_XCreateMutex_fn_p)(LockInfoPtr) = &_XCreateMutex_fn;
+Xlibint.h:303:#define _XCreateMutex_fn (*_XCreateMutex_fn_p)
+Xlibint.h:311:extern void (*_XCreateMutex_fn)(
+Xlibint.h:346:#define _XCreateMutex(lock) if (_XCreateMutex_fn) (*_XCreateMutex_fn)(lock);
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XData32 ####
+
+#### _XDefaultError ####
+ErrHndlr.c:47: oldhandler = _XDefaultError;
+ErrHndlr.c:53: _XErrorFunction = _XDefaultError;
+XlibInt.c:3615:int _XDefaultError(
+XlibInt.c:3677: return _XDefaultError(dpy, (XErrorEvent *)&event);
+Xlibint.h:1313:extern int _XDefaultError(
+
+#### _XDefaultIOError ####
+ErrHndlr.c:75: oldhandler = _XDefaultIOError;
+ErrHndlr.c:81: _XIOErrorFunction = _XDefaultIOError;
+XlibInt.c:3452: * _XDefaultIOError - Default fatal system error reporting routine. Called
+XlibInt.c:3455:int _XDefaultIOError(
+XlibInt.c:3481: fprintf(stderr, "_XDefaultIOError: Going to return from the error handler.\n");
+XlibInt.c:3488: fprintf(stderr, "_XDefaultIOError: Going to exit from the program.\n");
+XlibInt.c:3706: _XDefaultIOError(dpy);
+Xlibint.h:1317:extern int _XDefaultIOError(
+
+#### _XDefaultWireError ####
+InitExt.c:328: if (proc == NULL) proc = (WireToErrorType)_XDefaultWireError;
+InitExt.c:334: dpy->error_vec[i] = _XDefaultWireError;
+XlibInt.c:3625:Bool _XDefaultWireError(Display *display, XErrorEvent *he, xError *we)
+Xlibint.h:1003:extern Bool _XDefaultWireError(Display *display, XErrorEvent *he, xError *we);
+
+#### _XDeq ####
+ChkIfEv.c:61: _XDeq(dpy, prev, qelt);
+ChkIfEv.c:117: _XDeq(dpy, prev, qelt);
+ChkMaskEv.c:69: _XDeq(dpy, prev, qelt);
+ChkTypEv.c:59: _XDeq(dpy, prev, qelt);
+ChkTypWEv.c:61: _XDeq(dpy, prev, qelt);
+ChkWinEv.c:70: _XDeq(dpy, prev, qelt);
+IfEvent.c:60: _XDeq(dpy, prev, qelt);
+MaskEvent.c:68: _XDeq(dpy, prev, qelt);
+NextEvent.c:59: _XDeq(dpy, NULL, qelt);
+WinEvent.c:72: _XDeq(dpy, prev, qelt);
+XlibAsync.c:90:void _XDeqAsyncHandler(
+XlibInt.c:2801: data pointer) and adds it to the cookiejar. _XDeq just removes
+XlibInt.c:2988: * _XDeq - Remove event packet from the display's queue.
+XlibInt.c:2990:void _XDeq(
+Xlibint.h:717:extern void _XDeqAsyncHandler(Display *dpy, _XAsyncHandler *handler);
+Xlibint.h:722: _XDeqAsyncHandler(dpy, handler); \
+Xlibint.h:972:extern void _XDeq(
+
+#### _XDeqAsyncHandler ####
+XlibAsync.c:90:void _XDeqAsyncHandler(
+Xlibint.h:717:extern void _XDeqAsyncHandler(Display *dpy, _XAsyncHandler *handler);
+Xlibint.h:722: _XDeqAsyncHandler(dpy, handler); \
+
+#### _XDisconnectDisplay ####
+ClDisplay.c:78: _XDisconnectDisplay(dpy->trans_conn);
+ConnDis.c:771:int _XDisconnectDisplay (XtransConnInfo trans_conn)
+OpenDis.c:379: _XDisconnectDisplay (dpy->trans_conn);
+OpenDis.c:399: _XDisconnectDisplay (dpy->trans_conn);
+OpenDis.c:416: _XDisconnectDisplay (dpy->trans_conn);
+OpenDis.c:435: _XDisconnectDisplay (dpy->trans_conn);
+OpenDis.c:984: _XDisconnectDisplay (dpy->trans_conn);
+Xintconn.h:22:extern int _XDisconnectDisplay(XtransConnInfo trans_conn);
+
+#### _XEatData ####
+AllCells.c:57: _XEatDataWords(dpy, rep.length);
+Font.c:219: _XEatDataWords(dpy, reply_left);
+Font.c:253: _XEatDataWords(dpy, reply_left);
+Font.c:276: _XEatDataWords(dpy, reply_left);
+Font.c:463: _XEatDataWords(dpy, reply_left);
+Font.c:497: _XEatDataWords(dpy, reply_left);
+Font.c:512: _XEatDataWords(dpy, reply_left);
+Font.c:529: _XEatDataWords(dpy, reply_left);
+Font.c:536: _XEatDataWords(dpy, reply_left);
+FontInfo.c:79: _XEatDataWords(dpy, reply_left);
+FontInfo.c:187: _XEatDataWords(dpy, reply_left);
+FontNames.c:78: _XEatDataWords(dpy, rep.length);
+GetAtomNm.c:81: _XEatDataWords(dpy, rep.length);
+GetAtomNm.c:179: _XEatDataWords(dpy, rep.length);
+GetFPath.c:62: _XEatDataWords(dpy, rep.length);
+GetImage.c:89: _XEatDataWords(dpy, rep.length);
+GetMoEv.c:60: _XEatDataWords (dpy, rep.length);
+GetPntMap.c:60: _XEatDataWords(dpy, rep.length);
+GetPntMap.c:79: _XEatData(dpy, remainder);
+GetPntMap.c:119: _XEatDataWords(dpy, rep.length);
+GetProp.c:131: _XEatDataWords(dpy, reply.length);
+LiHosts.c:108: _XEatDataWords(dpy, reply.length);
+LiICmaps.c:56: _XEatDataWords(dpy, rep.length);
+LiProps.c:55: _XEatDataWords(dpy, rep.length);
+ListExt.c:67: _XEatDataWords(dpy, rep.length);
+ModMap.c:56: _XEatDataWords(dpy, rep.length);
+OpenDis.c:780: _XEatDataWords(dpy, reply.length);
+QuColors.c:70: _XEatDataWords(dpy, rep.length);
+QuTree.c:57: _XEatDataWords(dpy, rep.length);
+XKBGetByName.c:216: _XEatData(dpy, extraLen);
+XlibAsync.c:117: _XEatData (dpy, (rep->generic.length << 2) - len);
+XlibAsync.c:132: _XEatData (dpy, (rep->generic.length << 2) - len);
+XlibAsync.c:142: _XEatData (dpy, (rep->generic.length << 2) - len);
+XlibAsync.c:170: _XEatData(dpy, datalen - len);
+XlibAsync.c:180: _XEatData(dpy, discardtotal - len);
+XlibInt.c:2243: _XEatData(dpy, (rep->generic.length - extra) << 2);
+XlibInt.c:2396: _XEatData(dpy, len - *lenp);
+XlibInt.c:2754:void _XEatData(
+XlibInt.c:2762: fprintf(stderr, "_XEatData: Going to eat [%ld] bytes of data from descriptor [%d].\n",
+XlibInt.c:2788:void _XEatDataWords(Display *dpy, unsigned long n)
+XlibInt.c:2794: _XEatData (dpy, n << 2);
+Xlibint.h:872:extern void _XEatData(
+Xlibint.h:876:extern void _XEatDataWords(
+Xlibint.h:881:# pragma rarely_called(_XEatData, _XEatDataWords)
+
+#### _XEatDataWords ####
+AllCells.c:57: _XEatDataWords(dpy, rep.length);
+Font.c:219: _XEatDataWords(dpy, reply_left);
+Font.c:253: _XEatDataWords(dpy, reply_left);
+Font.c:276: _XEatDataWords(dpy, reply_left);
+Font.c:463: _XEatDataWords(dpy, reply_left);
+Font.c:497: _XEatDataWords(dpy, reply_left);
+Font.c:512: _XEatDataWords(dpy, reply_left);
+Font.c:529: _XEatDataWords(dpy, reply_left);
+Font.c:536: _XEatDataWords(dpy, reply_left);
+FontInfo.c:79: _XEatDataWords(dpy, reply_left);
+FontInfo.c:187: _XEatDataWords(dpy, reply_left);
+FontNames.c:78: _XEatDataWords(dpy, rep.length);
+GetAtomNm.c:81: _XEatDataWords(dpy, rep.length);
+GetAtomNm.c:179: _XEatDataWords(dpy, rep.length);
+GetFPath.c:62: _XEatDataWords(dpy, rep.length);
+GetImage.c:89: _XEatDataWords(dpy, rep.length);
+GetMoEv.c:60: _XEatDataWords (dpy, rep.length);
+GetPntMap.c:60: _XEatDataWords(dpy, rep.length);
+GetPntMap.c:119: _XEatDataWords(dpy, rep.length);
+GetProp.c:131: _XEatDataWords(dpy, reply.length);
+LiHosts.c:108: _XEatDataWords(dpy, reply.length);
+LiICmaps.c:56: _XEatDataWords(dpy, rep.length);
+LiProps.c:55: _XEatDataWords(dpy, rep.length);
+ListExt.c:67: _XEatDataWords(dpy, rep.length);
+ModMap.c:56: _XEatDataWords(dpy, rep.length);
+OpenDis.c:780: _XEatDataWords(dpy, reply.length);
+QuColors.c:70: _XEatDataWords(dpy, rep.length);
+QuTree.c:57: _XEatDataWords(dpy, rep.length);
+XlibInt.c:2788:void _XEatDataWords(Display *dpy, unsigned long n)
+Xlibint.h:876:extern void _XEatDataWords(
+Xlibint.h:881:# pragma rarely_called(_XEatData, _XEatDataWords)
+
+#### _XEnq ####
+XlibInt.c:574: _XEnq (dpy, (xEvent *)rep);
+XlibInt.c:1328: _XEnq (dpy, (xEvent *)rep);
+XlibInt.c:1514: _XEnq (dpy, (xEvent *)rep);
+XlibInt.c:2333: _XEnq(dpy, (xEvent *) rep);
+XlibInt.c:2799: dpy->cookiejar is a linked list. _XEnq receives the events but leaves
+XlibInt.c:2922: * _XEnq - Place event packets on the display's queue.
+XlibInt.c:2926:void _XEnq(
+Xlibint.h:968:extern void _XEnq(
+
+#### _XError ####
+ErrDes.c:71:static const char _XErrorList[] =
+ErrDes.c:92:/* offsets into _XErrorList */
+ErrDes.c:93:static const unsigned char _XErrorOffsets[] = {
+ErrDes.c:114: _XErrorList + _XErrorOffsets[code],
+ErrHndlr.c:34: * (_XErrorFunction) to be the specified routine. If NULL is passed in
+ErrHndlr.c:44: oldhandler = _XErrorFunction;
+ErrHndlr.c:50: _XErrorFunction = handler;
+ErrHndlr.c:53: _XErrorFunction = _XDefaultError;
+GetProp.c:125: _XError(dpy, &error);
+globals.c:72:ZEROINIT (XErrorHandler, _XErrorFunction, NULL);
+OpenDis.c:173: if (_XErrorFunction == NULL) (void) XSetErrorHandler (NULL);
+XlibInt.c:231: * _XError(Display *, xError *) will be called whenever an X_Error event is
+XlibInt.c:572: _XError (dpy, (xError *)rep);
+XlibInt.c:1326: _XError (dpy, (xError *)rep);
+XlibInt.c:1503: _XError (dpy, (xError *) rep);
+XlibInt.c:2322: _XError(dpy, err);
+XlibInt.c:3631: * _XError - upcall internal or user protocol error handler
+XlibInt.c:3633:int _XError (
+XlibInt.c:3662: if (_XErrorFunction != NULL) {
+XlibInt.c:3669: rtn_val = (*_XErrorFunction)(dpy, (XErrorEvent *)&event); /* upcall */
+Xlibint.h:853:extern int _XError(
+Xlibint.h:868:extern int (*_XErrorFunction)(
+
+#### _XErrorFunction ####
+ErrHndlr.c:34: * (_XErrorFunction) to be the specified routine. If NULL is passed in
+ErrHndlr.c:44: oldhandler = _XErrorFunction;
+ErrHndlr.c:50: _XErrorFunction = handler;
+ErrHndlr.c:53: _XErrorFunction = _XDefaultError;
+globals.c:72:ZEROINIT (XErrorHandler, _XErrorFunction, NULL);
+OpenDis.c:173: if (_XErrorFunction == NULL) (void) XSetErrorHandler (NULL);
+XlibInt.c:3662: if (_XErrorFunction != NULL) {
+XlibInt.c:3669: rtn_val = (*_XErrorFunction)(dpy, (XErrorEvent *)&event); /* upcall */
+Xlibint.h:868:extern int (*_XErrorFunction)(
+
+#### _XEventToWire ####
+EvToWire.c:46:_XEventToWire(
+SendEvent.c:33: * In order to avoid all images requiring _XEventToWire, we install the
+SendEvent.c:62: if (*fp == NULL) *fp = _XEventToWire;
+Xlibint.h:1298:extern Status _XEventToWire(Display *dpy, XEvent *re, xEvent *event);
+
+#### _XEventsQueued ####
+ChkIfEv.c:71: _XEventsQueued(dpy, QueuedAfterReading);
+ChkIfEv.c:127: _XEventsQueued(dpy, QueuedAfterReading);
+ChkMaskEv.c:78: _XEventsQueued(dpy, QueuedAfterReading);
+ChkTypEv.c:69: _XEventsQueued(dpy, QueuedAfterReading);
+ChkTypWEv.c:71: _XEventsQueued(dpy, QueuedAfterReading);
+ChkWinEv.c:79: _XEventsQueued(dpy, QueuedAfterReading);
+Pending.c:51: ret_val = _XEventsQueued (dpy, mode);
+Pending.c:66: ret_val = _XEventsQueued (dpy, QueuedAfterFlush);
+XlibInt.c:1101:_XEventsQueued(
+XlibInt.c:1116: printf("_XEventsQueued called in thread %x\n", XThread_Self());
+XlibInt.c:1128: fprintf(stderr, "_XEventsQueued: Returning [%d] after display failure.\n",
+XlibInt.c:1173: fprintf(stderr, "_XEventsQueued: Checking bytes readable.\n");
+XlibInt.c:1202: fprintf(stderr, "_XEventsQueued: Calling poll().\n");
+XlibInt.c:1209: fprintf(stderr, "_XEventsQueued: Calling select().\n");
+XlibInt.c:1257: fprintf(stderr, "_XEventsQueued: Returning [%d].\n", dpy->qlen);
+Xlibint.h:106: int conn_checker; /* ugly thing used by _XEventsQueued */
+Xlibint.h:940:extern int _XEventsQueued(
+
+#### _XF86BigfontFreeFontMetrics ####
+Font.c:84:void _XF86BigfontFreeFontMetrics(
+Font.c:167: _XF86BigfontFreeFontMetrics(fs);
+Font.c:630:_XF86BigfontFreeFontMetrics (XFontStruct *fs)
+Font.c:694: _XF86BigfontFreeFontMetrics(fs);
+FontInfo.c:37:extern void _XF86BigfontFreeFontMetrics(
+FontInfo.c:217: _XF86BigfontFreeFontMetrics(&info[i]);
+
+#### _XF86LoadQueryLocaleFont ####
+Font.c:104: if (_XF86LoadQueryLocaleFont(dpy, name, &font_result, (Font *)0))
+Font.c:649:int _XF86LoadQueryLocaleFont(
+LoadFont.c:41: if (_XF86LoadQueryLocaleFont(dpy, name, (XFontStruct **)0, &fid))
+Xlibint.h:1300:extern int _XF86LoadQueryLocaleFont(
+
+#### _XFetchEventCookie ####
+GetEventData.c:36: rc = _XFetchEventCookie(dpy, event);
+PutBEvent.c:56: _XFetchEventCookie(dpy, &event->xcookie);
+XlibInt.c:2805: _XFetchEventCookie (called from XGetEventData) removes a cookie from the
+XlibInt.c:2877:_XFetchEventCookie(Display *dpy, XGenericEventCookie* ev)
+Xlibint.h:1348:extern Bool _XFetchEventCookie(
+
+#### _XFlush ####
+ChGC.c:47: _XFlushGCCache(dpy, gc);
+ChkIfEv.c:74: _XFlush(dpy);
+ChkMaskEv.c:81: _XFlush(dpy);
+ChkTypEv.c:72: _XFlush(dpy);
+ChkTypWEv.c:74: _XFlush(dpy);
+ChkWinEv.c:82: _XFlush(dpy);
+CopyGC.c:50: _XFlushGCCache(dpy, srcGC);
+CrGC.c:315:void _XFlushGCCache(
+Flush.c:39: _XFlush (dpy);
+PolyTxt16.c:90: _XFlush (dpy);
+PolyTxt16.c:237: _XFlush (dpy);
+PolyTxt.c:90: _XFlush (dpy);
+PolyTxt.c:230: _XFlush (dpy);
+SetClMask.c:43: _XFlushGCCache(dpy, gc);
+SetFont.c:42: _XFlushGCCache(dpy, gc);
+SetStip.c:42: _XFlushGCCache(dpy, gc);
+SetTile.c:42: _XFlushGCCache(dpy, gc);
+Text16.c:71: _XFlush (dpy);
+Text16.c:124: _XFlush (dpy);
+Text.c:71: _XFlush (dpy);
+Text.c:135: _XFlush (dpy);
+XlibInt.c:940:static void _XFlushInt(
+XlibInt.c:946: * _XFlush - Flush the X request buffer. If the buffer is empty, no
+XlibInt.c:950:void _XFlush(
+XlibInt.c:957: _XFlushInt(dpy, NULL);
+XlibInt.c:960:/* _XFlushInt - Internal version of _XFlush used to do multi-threaded
+XlibInt.c:964:static void _XFlushInt(
+XlibInt.c:978: fprintf(stderr, "_XFlushInt: Entering flush with [%d] bytes to write.\n",
+XlibInt.c:984: * callers of _XFlush() are not verifying this before they call it.
+XlibInt.c:989: fprintf(stderr, "_XFlushInt: Returning with I/O error detected.\n");
+XlibInt.c:1122: _XFlush(dpy);
+XlibInt.c:1249: /* _XFlush can enqueue events */
+XlibInt.c:1412: _XFlush (dpy);
+XlibInt.c:2180: _XFlushInt(dpy, cvl ? cvl->cv : NULL);
+XlibInt.c:2192: _XFlush(dpy);
+XlibInt.c:3882: _XFlush(dpy);
+XlibInt.c:3984: _XFlush(dpy);
+Xlibint.h:88:#define _XFlush _XFlushIt
+Xlibint.h:429:#define XlibDisplayWriting (1L << 6) /* in _XFlushInt, _XSend */
+Xlibint.h:551:extern void _XFlushGCCache(Display *dpy, GC gc);
+Xlibint.h:553: if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
+Xlibint.h:589: _XFlush (dpy); \
+Xlibint.h:937:extern void _XFlush(
+
+#### _XFlushGCCache ####
+ChGC.c:47: _XFlushGCCache(dpy, gc);
+CopyGC.c:50: _XFlushGCCache(dpy, srcGC);
+CrGC.c:315:void _XFlushGCCache(
+SetClMask.c:43: _XFlushGCCache(dpy, gc);
+SetFont.c:42: _XFlushGCCache(dpy, gc);
+SetStip.c:42: _XFlushGCCache(dpy, gc);
+SetTile.c:42: _XFlushGCCache(dpy, gc);
+Xlibint.h:551:extern void _XFlushGCCache(Display *dpy, GC gc);
+Xlibint.h:553: if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
+
+#### _XFreeAtomTable ####
+IntAtom.c:40:_XFreeAtomTable(Display *dpy)
+IntAtom.c:76: dpy->free_funcs->atoms = _XFreeAtomTable;
+IntAtom.c:131: dpy->free_funcs->atoms = _XFreeAtomTable;
+Xintatom.h:29:extern void _XFreeAtomTable(Display *dpy);
+Xlibint.h:737: FreeFuncType atoms; /* _XFreeAtomTable */
+
+#### _XFreeDisplayLock_fn ####
+locking.c:608: _XFreeDisplayLock_fn = _XFreeDisplayLock;
+OpenDis.c:87:void (*_XFreeDisplayLock_fn)(Display *dpy) = NULL;
+OpenDis.c:90:#define FreeDisplayLock(d) if (_XFreeDisplayLock_fn) (*_XFreeDisplayLock_fn)(d)
+locking.h:154:extern void (*_XFreeDisplayLock_fn)(Display *dpy);
+
+#### _XFreeDisplayStructure ####
+ClDisplay.c:80: _XFreeDisplayStructure (dpy);
+OpenDis.c:851:void _XFreeDisplayStructure(Display *dpy)
+OpenDis.c:986: _XFreeDisplayStructure (dpy);
+XlibInt.c:2809: _XFreeDisplayStructure calls _XFreeEventCookies for each cookie in the
+XlibInt.c:3011: * _XFreeDisplayStructure */
+Xintconn.h:34:extern void _XFreeDisplayStructure(Display *dpy);
+
+#### _XFreeEventCookies ####
+ChkMaskEv.c:56: _XFreeEventCookies(dpy);
+ChkTypEv.c:50: _XFreeEventCookies(dpy);
+ChkTypWEv.c:51: _XFreeEventCookies(dpy);
+ChkWinEv.c:56: _XFreeEventCookies(dpy);
+MaskEvent.c:55: _XFreeEventCookies(dpy);
+NextEvent.c:47: _XFreeEventCookies(dpy);
+OpenDis.c:863: _XFreeEventCookies(dpy);
+WinEvent.c:58: _XFreeEventCookies(dpy);
+XlibInt.c:2806: jar. _XFreeEventCookies removes all unclaimed cookies from the jar
+XlibInt.c:2809: _XFreeDisplayStructure calls _XFreeEventCookies for each cookie in the
+XlibInt.c:2831:_XFreeEventCookies(Display *dpy)
+Xlibint.h:1341:extern void _XFreeEventCookies(
+
+#### _XFreeExtData ####
+Font.c:172: _XFreeExtData(fs->ext_data);
+Font.c:699: _XFreeExtData(fs->ext_data);
+FreeEData.c:33:_XFreeExtData (XExtData *extension)
+FreeGC.c:46: _XFreeExtData(gc->ext_data);
+OpenDis.c:909: _XFreeExtData (dp->visuals[k].ext_data);
+OpenDis.c:917: _XFreeExtData (sp->ext_data);
+OpenDis.c:927: _XFreeExtData (dpy->pixmap_format[i].ext_data);
+OpenDis.c:939: _XFreeExtData (dpy->ext_data);
+Xlibint.h:1010:extern int _XFreeExtData(
+
+#### _XFreeMutex_fn ####
+locking.c:606: _XFreeMutex_fn = _XFreeMutex;
+XlibInt.c:85:void (*_XFreeMutex_fn)(LockInfoPtr) = NULL;
+XlibInt.c:4194:void (**_XFreeMutex_fn_p)(LockInfoPtr) = &_XFreeMutex_fn;
+Xlibint.h:304:#define _XFreeMutex_fn (*_XFreeMutex_fn_p)
+Xlibint.h:314:extern void (*_XFreeMutex_fn)(
+Xlibint.h:347:#define _XFreeMutex(lock) if (_XFreeMutex_fn) (*_XFreeMutex_fn)(lock);
+
+#### _XFreeTemp ####
+Region.c:277: _XFreeTemp(dpy, (char *)xr, total);
+XKBSetGeom.c:440: _XFreeTemp(dpy, tbuf, sz);
+XlibInt.c:3778: * MT safe, but you must hand the buffer back with _XFreeTemp.
+XlibInt.c:3792:void _XFreeTemp(
+Xlibint.h:891:extern void _XFreeTemp(
+
+#### _XGetAsyncData ####
+GetAtomNm.c:128: _XGetAsyncData(dpy, state->names[state->idx], buf, len,
+XlibAsync.c:156:_XGetAsyncData(
+XlibAsync.c:162: _XGetAsyncReply or _XGetAsyncData calls */
+Xlibint.h:693: * _XGetAsyncReply or _XGetAsyncData.
+Xlibint.h:928:extern void _XGetAsyncData(
+
+#### _XGetAsyncReply ####
+GetAtomNm.c:124: _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
+GetWAttrs.c:65: _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
+IntAtom.c:230: _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
+OpenDis.c:832: _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
+XlibAsync.c:106:_XGetAsyncReply(
+XlibAsync.c:162: _XGetAsyncReply or _XGetAsyncData calls */
+Xlibint.h:691: * to be invoked. It must also be passed to _XGetAsyncReply.
+Xlibint.h:693: * _XGetAsyncReply or _XGetAsyncData.
+Xlibint.h:919:extern char *_XGetAsyncReply(
+
+#### _XGetBitsPerPixel ####
+ImUtil.c:72:_XGetBitsPerPixel(
+ImUtil.c:354: bits_per_pixel = _XGetBitsPerPixel(dpy, (int) depth);
+ImUtil.h:12:_XGetBitsPerPixel(
+
+#### _XGetHostname ####
+ConnDis.c:356: if ((_XGetHostname (localhostname, sizeof localhostname) > 0)
+GetDflt.c:158: (void) _XGetHostname (fname+len, PATH_MAX-len);
+WMProps.c:88: int len = _XGetHostname (hostName, sizeof hostName);
+XlibInt.c:3917: * _XGetHostname - similar to gethostname but allows special processing.
+XlibInt.c:3919:int _XGetHostname (
+Xlibint.h:904:extern int _XGetHostname(
+
+#### _XGetLCValues ####
+imDefIm.c:311: _XGetLCValues(lcd, XlcNLanguage, &language, XlcNTerritory, &territory,
+imDefIm.c:1550: _XGetLCValues(im->core.lcd, XlcNCodeset, &encoding, NULL);
+imInsClbk.c:64: _XGetLCValues( lcd, XlcNLanguage, &language, XlcNTerritory, &territory,
+imThaiIm.c:66: _XGetLCValues(im->core.lcd, XlcNLanguage, &language, NULL);
+lcPubWrap.c:33:_XGetLCValues(XLCd lcd, ...)
+XlcPublic.h:238:extern char *_XGetLCValues(
+
+#### _XGetRequest ####
+XlibInt.c:3979:void *_XGetRequest(Display *dpy, CARD8 type, size_t len)
+Xlibint.h:450:extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len);
+Xlibint.h:456: req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz)
+Xlibint.h:483: req = (xResourceReq *) _XGetRequest(dpy, X_##name, SIZEOF(xResourceReq)); \
+Xlibint.h:491: req = (xReq *) _XGetRequest(dpy, X_##name, SIZEOF(xReq))
+
+#### _XGetScanlinePad ####
+GetImage.c:104: _XGetScanlinePad(dpy, (int) rep.depth), 0);
+ImUtil.c:57:_XGetScanlinePad(
+ImUtil.h:7:_XGetScanlinePad(
+
+#### _XGetWindowAttributes ####
+GetWAttrs.c:88:_XGetWindowAttributes(
+GetWAttrs.c:149: ret = _XGetWindowAttributes(dpy, w, attr);
+Xlibint.h:1328:Status _XGetWindowAttributes(
+
+#### _XHeadOfDisplayList ####
+globals.c:81:ZEROINIT (Display *, _XHeadOfDisplayList, NULL);
+OpenDis.c:797: extern Display *_XHeadOfDisplayList;
+OpenDis.c:798: _XHeadOfDisplayList = dpy;
+
+#### _XIMCompileResourceList ####
+imRmAttr.c:1458: _XIMCompileResourceList(res, n);
+imRmAttr.c:1503: _XIMCompileResourceList(res, n);
+imRm.c:2159: _XIMCompileResourceList(res, num_resource);
+IMWrap.c:67:_XIMCompileResourceList(XIMResourceList res, unsigned int num_res)
+Xlcint.h:780:extern void _XIMCompileResourceList(
+
+#### _XIOError ####
+ErrHndlr.c:62: * (_XIOErrorFunction) to be the specified routine. If NULL is passed in
+ErrHndlr.c:72: oldhandler = _XIOErrorFunction;
+ErrHndlr.c:78: _XIOErrorFunction = handler;
+ErrHndlr.c:81: _XIOErrorFunction = _XDefaultIOError;
+globals.c:73:ZEROINIT (XIOErrorHandler, _XIOErrorFunction, NULL);
+OpenDis.c:174: if (_XIOErrorFunction == NULL) (void) XSetIOErrorHandler (NULL);
+XlibAsync.c:151: _XIOError (dpy);
+XlibInt.c:228: * _XIOError(Display *) will be called if any sort of system call error occurs.
+XlibInt.c:509: _XIOError(dpy);
+XlibInt.c:515: _XIOError(dpy);
+XlibInt.c:536: _XIOError(dpy);
+XlibInt.c:541: _XIOError(dpy);
+XlibInt.c:789: _XIOError(dpy);
+XlibInt.c:795: if (result == -1 && !(ECHECK(EINTR) || ETEST())) _XIOError(dpy);
+XlibInt.c:1076: _XIOError(dpy);
+XlibInt.c:1083: _XIOError(dpy);
+XlibInt.c:1178: _XIOError(dpy);
+XlibInt.c:1183: _XIOError(dpy);
+XlibInt.c:1221: _XIOError(dpy);
+XlibInt.c:1226: _XIOError(dpy);
+XlibInt.c:1237: _XIOError(dpy);
+XlibInt.c:1244: _XIOError(dpy);
+XlibInt.c:1395: _XIOError(dpy);
+XlibInt.c:1585: _XIOError(dpy);
+XlibInt.c:1589: _XIOError(dpy);
+XlibInt.c:1599: _XIOError(dpy);
+XlibInt.c:1604: _XIOError(dpy);
+XlibInt.c:1727: _XIOError(dpy);
+XlibInt.c:1731: _XIOError(dpy);
+XlibInt.c:1741: _XIOError(dpy);
+XlibInt.c:1746: _XIOError(dpy);
+XlibInt.c:1918: _XIOError(dpy);
+XlibInt.c:1923: _XIOError(dpy);
+XlibInt.c:2277: _XIOError (dpy);
+XlibInt.c:2373: _XIOError (dpy);
+XlibInt.c:2408: _XIOError (dpy);
+XlibInt.c:2792: _XIOError(dpy);
+XlibInt.c:2866: _XIOError(dpy);
+XlibInt.c:2941: _XIOError(dpy);
+XlibInt.c:2945: _XIOError(dpy);
+XlibInt.c:3682: * _XIOError - call user connection error handler and exit
+XlibInt.c:3685:_XIOError (
+XlibInt.c:3703: if (_XIOErrorFunction != NULL)
+XlibInt.c:3704: (*_XIOErrorFunction)(dpy);
+XlibInt.c:3731: fprintf(stderr, "_XIOError: Resetting the display buffer.\n");
+XlibInt.c:3738: fprintf(stderr, "_XIOError: Resetting the display flags.\n");
+Xlibint.h:857:extern int _XIOError(
+Xlibint.h:865:extern int (*_XIOErrorFunction)(
+
+#### _XIOErrorFunction ####
+ErrHndlr.c:62: * (_XIOErrorFunction) to be the specified routine. If NULL is passed in
+ErrHndlr.c:72: oldhandler = _XIOErrorFunction;
+ErrHndlr.c:78: _XIOErrorFunction = handler;
+ErrHndlr.c:81: _XIOErrorFunction = _XDefaultIOError;
+globals.c:73:ZEROINIT (XIOErrorHandler, _XIOErrorFunction, NULL);
+OpenDis.c:174: if (_XIOErrorFunction == NULL) (void) XSetIOErrorHandler (NULL);
+XlibInt.c:3703: if (_XIOErrorFunction != NULL)
+XlibInt.c:3704: (*_XIOErrorFunction)(dpy);
+Xlibint.h:865:extern int (*_XIOErrorFunction)(
+
+#### _XInitDisplayLock_fn ####
+locking.c:607: _XInitDisplayLock_fn = _XInitDisplayLock;
+OpenDis.c:86:int (*_XInitDisplayLock_fn)(Display *dpy) = NULL;
+OpenDis.c:89:#define InitDisplayLock(d) (_XInitDisplayLock_fn ? (*_XInitDisplayLock_fn)(d) : Success)
+locking.h:153:extern int (*_XInitDisplayLock_fn)(Display *dpy);
+
+#### _XInitIM ####
+imInt.c:252:_XInitIM(XLCd lcd)
+lcPublic.c:163: _XInitIM(lcd);
+XlcPublic.h:226:extern Bool _XInitIM(
+
+#### _XInitImageFuncPtrs ####
+ImUtil.c:271:void _XInitImageFuncPtrs (
+ImUtil.c:383: _XInitImageFuncPtrs (image);
+ImUtil.c:422: _XInitImageFuncPtrs (image);
+ImUtil.c:560: _XInitImageFuncPtrs(ximage);
+ImUtil.c:584: _XInitImageFuncPtrs(ximage);
+ImUtil.c:603: _XInitImageFuncPtrs(ximage);
+ImUtil.c:627: _XInitImageFuncPtrs(ximage);
+ImUtil.c:747: _XInitImageFuncPtrs(ximage);
+ImUtil.c:772: _XInitImageFuncPtrs(ximage);
+ImUtil.c:787: _XInitImageFuncPtrs(ximage);
+ImUtil.c:816: _XInitImageFuncPtrs(ximage);
+ImUtil.c:868: _XInitImageFuncPtrs (subimage);
+PutImage.c:997: _XInitImageFuncPtrs(&img);
+ImUtil.h:28:_XInitImageFuncPtrs(
+
+#### _XInitKeysymDB ####
+KeysymStr.c:103: if ((keysymdb = _XInitKeysymDB()))
+StrKeysym.c:53:_XInitKeysymDB(void)
+StrKeysym.c:113: (void)_XInitKeysymDB();
+Key.h:17:_XInitKeysymDB(
+
+#### _XInitOM ####
+lcPublic.c:156: _XInitOM(lcd);
+omGeneric.c:2094:_XInitOM(
+XlcPublic.h:222:extern Bool _XInitOM(
+
+#### _XIsEventCookie ####
+FreeEventData.c:34: if (_XIsEventCookie(dpy, (XEvent*)event) && event->data)
+OpenDis.c:857: if (_XIsEventCookie(dpy, &qelt->event))
+PutBEvent.c:51: if (_XIsEventCookie(dpy, event))
+XlibInt.c:2821:_XIsEventCookie(Display *dpy, XEvent *ev)
+XlibInt.c:2858: if (!_XIsEventCookie(dpy, event))
+XlibInt.c:2883: if (!_XIsEventCookie(dpy, (XEvent*)ev))
+XlibInt.c:2907: if (!_XIsEventCookie(dpy, (XEvent*)in) || !out)
+XlibInt.c:3008: if (_XIsEventCookie(dpy, &qelt->event)) {
+Xlibint.h:1337:extern Bool _XIsEventCookie(
+
+#### _XKeyInitialize ####
+imThaiFlt.c:779: if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
+KeyBind.c:126: if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
+KeyBind.c:138: if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
+KeyBind.c:154: if ((! event->display->keysyms) && (! _XKeyInitialize(event->display)))
+KeyBind.c:257:_XKeyInitialize(
+KeyBind.c:766: if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
+KeyBind.c:923: if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
+KeyBind.c:964: if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
+Key.h:13:_XKeyInitialize(
+
+#### _XKeycodeToKeysym ####
+KeyBind.c:57:#define XKeycodeToKeysym _XKeycodeToKeysym
+XKBBind.c:107: return _XKeycodeToKeysym(dpy, kc, col);
+XKBlibint.h:133:extern KeySym _XKeycodeToKeysym(
+
+#### _XKeysymToKeycode ####
+KeyBind.c:58:#define XKeysymToKeycode _XKeysymToKeycode
+XKBBind.c:158: return _XKeysymToKeycode(dpy, ks);
+XKBlibint.h:143:extern KeyCode _XKeysymToKeycode(
+
+#### _XKeysymToModifiers ####
+KeyBind.c:64:#define XkbKeysymToModifiers _XKeysymToModifiers
+KeyBind.c:955:_XKeysymToModifiers(
+XKBBind.c:197: return _XKeysymToModifiers(dpy, ks);
+XKBBind.c:201: return _XKeysymToModifiers(dpy, ks);
+XKBlibint.h:157:extern unsigned _XKeysymToModifiers(
+
+#### _XLockMutex_fn ####
+locking.c:603: _XLockMutex_fn = _XLockMutex;
+XlibInt.c:86:void (*_XLockMutex_fn)(
+XlibInt.c:4195:void (**_XLockMutex_fn_p)(LockInfoPtr
+XlibInt.c:4200: ) = &_XLockMutex_fn;
+Xlibint.h:305:#define _XLockMutex_fn (*_XLockMutex_fn_p)
+Xlibint.h:317:extern void (*_XLockMutex_fn)(
+Xlibint.h:337:#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock,__FILE__,__LINE__)
+Xlibint.h:343:#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock)
+
+#### _XLookupKeysym ####
+KeyBind.c:59:#define XLookupKeysym _XLookupKeysym
+XKBBind.c:223: return _XLookupKeysym(event, col);
+XKBlibint.h:148:extern KeySym _XLookupKeysym(
+
+#### _XLookupString ####
+imConv.c:47: * rather than just call _XLookupString (i.e. the pre-XKB XLookupString)
+imConv.c:49: * _XLookupString doesn't grok.
+KeyBind.c:61:#define XLookupString _XLookupString
+XKBlibint.h:178:extern int _XLookupString(
+
+#### _XNoticeCreateBitmap ####
+CrGlCur.c:183:_XNoticeCreateBitmap (Display *dpy,
+CrPixmap.c:34:_XNoticeCreateBitmap (Display *dpy,
+CrPixmap.c:61: _XNoticeCreateBitmap (dpy, pid, width, height);
+Cr.h:11:extern void _XNoticeCreateBitmap(
+
+#### _XNoticePutBitmap ####
+CrGlCur.c:196:_XNoticePutBitmap (Display *dpy,
+PutImage.c:1030: _XNoticePutBitmap (dpy, d, image);
+Cr.h:16:extern void _XNoticePutBitmap(
+
+#### _XOpenLC ####
+IMWrap.c:117: XLCd lcd = _XOpenLC( (char *)NULL );
+IMWrap.c:173: XLCd lcd = _XOpenLC( (char *)NULL );
+lcWrap.c:245:_XOpenLC(
+lcWrap.c:354: lcd = _XOpenLC((char *) NULL);
+lcWrap.c:368: XLCd lcd = _XOpenLC((char *) NULL);
+OMWrap.c:36: XLCd lcd = _XOpenLC((char *) NULL);
+Xlcint.h:759:extern XLCd _XOpenLC(
+
+#### _XParseBaseFontNameList ####
+FSWrap.c:71:_XParseBaseFontNameList(
+omGeneric.c:1080: name_list = _XParseBaseFontNameList(oc->core.base_name_list, &count);
+XDefaultOMIF.c:326: name_list = _XParseBaseFontNameList(oc->core.base_name_list, &count);
+Xlcint.h:791:extern char ** _XParseBaseFontNameList(
+
+#### _XPollfdCacheAdd ####
+XlibInt.c:622:void _XPollfdCacheAdd(
+XlibInt.c:2497: _XPollfdCacheAdd(dpy, fd);
+Xlibint.h:1005:extern void _XPollfdCacheAdd(Display *dpy, int fd);
+
+#### _XPollfdCacheDel ####
+XlibInt.c:637:void _XPollfdCacheDel(
+XlibInt.c:2545: _XPollfdCacheDel(dpy, fd);
+Xlibint.h:1006:extern void _XPollfdCacheDel(Display *dpy, int fd);
+
+#### _XPollfdCacheInit ####
+OpenDis.c:308: if (!_XPollfdCacheInit(dpy)) {
+XlibInt.c:605:Bool _XPollfdCacheInit(
+Xlibint.h:1004:extern Bool _XPollfdCacheInit(Display *dpy);
+
+#### _XProcessInternalConnection ####
+XlibInt.c:818: _XProcessInternalConnection(dpy, ilist);
+XlibInt.c:2592:void _XProcessInternalConnection(
+XlibInt.c:2636: _XProcessInternalConnection(dpy, info_list);
+Xlibint.h:426:#define XlibDisplayProcConni (1L << 4) /* in _XProcessInternalConnection */
+Xlibint.h:1231:extern void _XProcessInternalConnection(
+
+#### _XProcessWindowAttributes ####
+ChWAttrs.c:52: _XProcessWindowAttributes (dpy, req, valuemask, attributes);
+Window.c:32:void _XProcessWindowAttributes (
+Window.c:134: _XProcessWindowAttributes (dpy, (xChangeWindowAttributesReq *)req,
+Xlibint.h:1307:extern void _XProcessWindowAttributes (
+
+#### _XPutBackEvent ####
+imLcFlt.c:153: _XPutBackEvent(d, ev);
+PutBEvent.c:36:_XPutBackEvent (
+PutBEvent.c:84: ret = _XPutBackEvent(dpy, event);
+Xlibint.h:1333:int _XPutBackEvent (
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XRead32 ####
+
+#### _XRead ####
+AllCells.c:60: _XRead32 (dpy, (long *) pixels, 4L * (long) (rep.nPixels));
+AllCells.c:61: _XRead32 (dpy, (long *) masks, 4L * (long) (rep.nMasks));
+AllPlanes.c:68: _XRead32 (dpy, (long *) pixels, (long)(ncolors * 4));
+ConnDis.c:1032: _XRead(dpy, (char *)&prefix, sz_xReq);
+ConnDis.c:1038: _XRead(dpy, (char *)sprefix + sz_xReq,
+ConnDis.c:1062: _XRead(dpy, buf, tlen);
+ConnDis.c:1212: _XRead(dpy, (char *)&prefix, sz_xReq);
+ConnDis.c:1217: _XRead(dpy, (char *)sprefix + sz_xReq,
+ConnDis.c:1237: _XRead(dpy, (char *)kbuf.data, kbuf.length);
+Font.c:256: _XRead32 (dpy, (long *)fs->properties, nbytes);
+Font.c:280: _XRead16 (dpy, (char *)fs->per_char, nbytes);
+Font.c:500: _XRead32 (dpy, (long *)fs->properties, nbytes);
+Font.c:539: _XRead16 (dpy, (char *) pUniqCI, nbytes);
+FontInfo.c:145: _XRead32 (dpy, (long *)fs->properties, nbytes);
+FontInfo.c:163: _XReadPad (dpy, flist[i], (long) reply.nameLength);
+FontNames.c:85: _XReadPad (dpy, ch, rlen);
+GetAtomNm.c:77: _XReadPad(dpy, name, (long)rep.nameLength);
+GetAtomNm.c:174: _XReadPad(dpy, names_return[missed], (long)rep.nameLength);
+GetFPath.c:68: _XReadPad (dpy, ch, nbytes);
+GetImage.c:94: _XReadPad (dpy, data, nbytes);
+GetMoEv.c:70: _XRead (dpy, (char *) &xtc, SIZEOF (xTimecoord));
+GetPntMap.c:71: _XRead (dpy, (char *)mapping, nbytes);
+GetPntMap.c:125: _XRead32 (dpy, (long *) mapping, nbytes);
+GetProp.c:96: _XReadPad (dpy, (char *) *prop, netbytes);
+GetProp.c:103: _XRead16Pad (dpy, (short *) *prop, netbytes);
+GetProp.c:110: _XRead32 (dpy, (long *) *prop, netbytes);
+IfEvent.c:68: _XReadEvents(dpy);
+LiHosts.c:119: _XRead (dpy, (char *) buf, nbytes);
+LiICmaps.c:62: _XRead32 (dpy, (long *) cmaps, nbytes);
+LiProps.c:61: _XRead32 (dpy, (long *) properties, nbytes);
+ListExt.c:73: _XReadPad (dpy, ch, rlen);
+MaskEvent.c:75: _XReadEvents(dpy);
+ModMap.c:58: _XReadPad(dpy, (char *) res->modifiermap, (long) nbytes);
+NextEvent.c:50: _XReadEvents(dpy);
+OpenDis.c:392: _XRead (dpy, (char *)&prefix,(long)SIZEOF(xConnSetupPrefix));
+OpenDis.c:439: _XRead (dpy, (char *)u.setup, setuplength);
+OpenDis.c:776: _XReadPad (dpy, dpy->xdefaults, reply.nItems);
+PeekEvent.c:46: _XReadEvents(dpy);
+PeekIfEv.c:72: _XReadEvents(dpy);
+QuColor.c:51: _XRead(dpy, (char *)&color, (long) SIZEOF(xrgb));
+QuColors.c:57: _XRead(dpy, (char *) color, nbytes);
+QuTree.c:63: _XRead32 (dpy, (long *) *children, nbytes);
+WinEvent.c:79: _XReadEvents(dpy);
+XKBGetByName.c:152: _XRead(dpy, (char *) &mrep, SIZEOF(xkbGetMapReply));
+XKBGetByName.c:164: _XRead(dpy, (char *) &crep, SIZEOF(xkbGetCompatMapReply));
+XKBGetByName.c:176: _XRead(dpy, (char *) &irep, SIZEOF(xkbGetIndicatorMapReply));
+XKBGetByName.c:188: _XRead(dpy, (char *) &nrep, SIZEOF(xkbGetNamesReply));
+XKBGetByName.c:200: _XRead(dpy, (char *) &grep, SIZEOF(xkbGetGeometryReply));
+XKBRdBuf.c:45: _XRead(dpy, buf->start, size);
+XlibAsync.c:125: _XRead(dpy, replbuf + len, size - len);
+XlibAsync.c:175: _XRead(dpy, data + len, datalen - len);
+XlibInt.c:560: (void) _XRead (dpy, buf.buf, (long) len);
+XlibInt.c:1289: (void) _XRead (dpy, read_buf, (long) len);
+XlibInt.c:1343:/* _XReadEvents - Flush the output queue,
+XlibInt.c:1346:void _XReadEvents(
+XlibInt.c:1362: printf("_XReadEvents called in thread %x\n",
+XlibInt.c:1447: i = _XRead (dpy, read_buf, (long) len);
+XlibInt.c:1453: fprintf(stderr, "_XReadEvents: Returning with I/O error detected.\n");
+XlibInt.c:1459: /* special flag from _XRead to say that internal connection has
+XlibInt.c:1510: if (_XRead(dpy, &read_buf[len], evlen) == -2)
+XlibInt.c:1526: * _XRead - Read bytes from the socket taking into account incomplete
+XlibInt.c:1529:int _XRead(
+XlibInt.c:1628:void _XRead32(
+XlibInt.c:1637: (void) _XRead(dpy, (char *)data, len);
+XlibInt.c:1651: * _XReadPad - Read bytes from the socket taking into account incomplete
+XlibInt.c:1655:void _XReadPad(
+XlibInt.c:2056: _XRead32(dpy, (long *) ids, 4L * (long) (grep.count));
+XlibInt.c:2210: /* Did another thread's _XReadEvents get our reply by accident? */
+XlibInt.c:2213: (void) _XRead(dpy, (char *)rep, (long)SIZEOF(xReply));
+XlibInt.c:2239: (void) _XRead (dpy, (char *) (NEXTPTR(rep,xReply)),
+XlibInt.c:2267: (void) _XRead (dpy, (char *) (NEXTPTR(rep,xReply)),
+XlibInt.c:2433: (void) _XRead(dpy, nbuf + *lenp, (long)len);
+XlibInt.c:2767: (void) _XRead (dpy, buf, bytes_read);
+locking.h:58: Bool reply_was_read; /* _XReadEvents read a reply for _XReply */
+locking.h:61: struct _XCVList *event_awaiters; /* list of CVs for _XReadEvents */
+Xlibint.h:427:#define XlibDisplayReadEvents (1L << 5) /* in _XReadEvents */
+Xlibint.h:595:#define _XRead16Pad(dpy, data, len) _XReadPad((dpy), (char *)(data), (len))
+Xlibint.h:596:#define _XRead16(dpy, data, len) _XRead((dpy), (char *)(data), (len))
+Xlibint.h:604:extern void _XRead32(
+Xlibint.h:611:#define _XRead32(dpy, data, len) _XRead((dpy), (char *)(data), (len))
+Xlibint.h:944:extern void _XReadEvents(
+Xlibint.h:947:extern int _XRead(
+Xlibint.h:952:extern void _XReadPad(
+
+#### _XReadEvents ####
+IfEvent.c:68: _XReadEvents(dpy);
+MaskEvent.c:75: _XReadEvents(dpy);
+NextEvent.c:50: _XReadEvents(dpy);
+PeekEvent.c:46: _XReadEvents(dpy);
+PeekIfEv.c:72: _XReadEvents(dpy);
+WinEvent.c:79: _XReadEvents(dpy);
+XlibInt.c:1343:/* _XReadEvents - Flush the output queue,
+XlibInt.c:1346:void _XReadEvents(
+XlibInt.c:1362: printf("_XReadEvents called in thread %x\n",
+XlibInt.c:1453: fprintf(stderr, "_XReadEvents: Returning with I/O error detected.\n");
+XlibInt.c:2210: /* Did another thread's _XReadEvents get our reply by accident? */
+locking.h:58: Bool reply_was_read; /* _XReadEvents read a reply for _XReply */
+locking.h:61: struct _XCVList *event_awaiters; /* list of CVs for _XReadEvents */
+Xlibint.h:427:#define XlibDisplayReadEvents (1L << 5) /* in _XReadEvents */
+Xlibint.h:944:extern void _XReadEvents(
+
+#### _XReadPad ####
+FontInfo.c:163: _XReadPad (dpy, flist[i], (long) reply.nameLength);
+FontNames.c:85: _XReadPad (dpy, ch, rlen);
+GetAtomNm.c:77: _XReadPad(dpy, name, (long)rep.nameLength);
+GetAtomNm.c:174: _XReadPad(dpy, names_return[missed], (long)rep.nameLength);
+GetFPath.c:68: _XReadPad (dpy, ch, nbytes);
+GetImage.c:94: _XReadPad (dpy, data, nbytes);
+GetProp.c:96: _XReadPad (dpy, (char *) *prop, netbytes);
+ListExt.c:73: _XReadPad (dpy, ch, rlen);
+ModMap.c:58: _XReadPad(dpy, (char *) res->modifiermap, (long) nbytes);
+OpenDis.c:776: _XReadPad (dpy, dpy->xdefaults, reply.nItems);
+XlibInt.c:1651: * _XReadPad - Read bytes from the socket taking into account incomplete
+XlibInt.c:1655:void _XReadPad(
+Xlibint.h:595:#define _XRead16Pad(dpy, data, len) _XReadPad((dpy), (char *)(data), (len))
+Xlibint.h:952:extern void _XReadPad(
+
+#### _XRefreshKeyboardMapping ####
+KeyBind.c:60:#define XRefreshKeyboardMapping _XRefreshKeyboardMapping
+XKBBind.c:354: _XRefreshKeyboardMapping((XMappingEvent *) event);
+XKBBind.c:398: (void) _XRefreshKeyboardMapping(event);
+XKBlibint.h:153:extern int _XRefreshKeyboardMapping(
+
+#### _XRegisterFilterByMask ####
+imDefFlt.c:385: _XRegisterFilterByMask(im->core.display,
+RegstFlt.c:77:_XRegisterFilterByMask(
+Xlcint.h:800:extern void _XRegisterFilterByMask(
+
+#### _XRegisterFilterByType ####
+imDefFlt.c:266: _XRegisterFilterByType (ic->core.im->core.display,
+imDefFlt.c:283: _XRegisterFilterByType (ic->core.im->core.display,
+imInsClbk.c:198: _XRegisterFilterByType( display, root, PropertyNotify, PropertyNotify,
+imLcIc.c:87: _XRegisterFilterByType(ic->core.im->core.display,
+imRm.c:2789: _XRegisterFilterByType(ic->core.im->core.display,
+imRm.c:2801: _XRegisterFilterByType(ic->core.im->core.display,
+imThaiIc.c:102: _XRegisterFilterByType(ic->core.im->core.display, ic->core.focus_window,
+imTrans.c:116: _XRegisterFilterByType(im->core.display, window, KeyPress, KeyPress,
+imTrX.c:187: _XRegisterFilterByType(im->core.display, spec->lib_connect_wid,
+imTrX.c:221: _XRegisterFilterByType(im->core.display, spec->lib_connect_wid,
+RegstFlt.c:108:_XRegisterFilterByType(
+Xlcint.h:813:extern void _XRegisterFilterByType(
+
+#### _XRegisterInternalConnection ####
+imTrans.c:119: return _XRegisterInternalConnection(im->core.display, spec->fd,
+XlibInt.c:2445:/* _XRegisterInternalConnection
+XlibInt.c:2466:_XRegisterInternalConnection(
+XlibInt.c:2478: fprintf(stderr, "_XRegisterInternalConnection: Got called.\n");
+XlibInt.c:2511: * registered with _XRegisterInternalConnection must call this function.
+XlibInt.c:2617: * Call the _XInternalConnectionProc registered by _XRegisterInternalConnection
+XlibInt.c:2644: * Register a callback to be called whenever _XRegisterInternalConnection
+Xlibint.h:207: struct _XConnectionInfo *im_fd_info; /* _XRegisterInternalConnection */
+Xlibint.h:1219:extern Status _XRegisterInternalConnection(
+Xlibint.h:1238:struct _XConnectionInfo { /* info from _XRegisterInternalConnection */
+
+#### _XReply ####
+AllCells.c:53: status = _XReply(dpy, (xReply *)&rep, 0, xFalse);
+AllPlanes.c:59: status = _XReply(dpy, (xReply *)&rep, 0, xFalse);
+cmsAllNCol.c:159: /* _XSend is more efficient that Data, since _XReply follows */
+cmsAllNCol.c:161: if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
+cmsCmap.c:187: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+cmsLkCol.c:155: if (!_XReply (dpy, (xReply *) &reply, 0, xTrue)) {
+Font.c:208: if (!_XReply (dpy, (xReply *) &reply,
+Font.c:362: result = _XReply (dpy, (xReply *) &reply,
+Font.c:437: BadFont coming from a X_QueryFont request. (See function _XReply.)
+Font.c:450: if (!_XReply (dpy, (xReply *) &reply,
+FontInfo.c:66: /* use _XSend instead of Data, since subsequent _XReply will flush buffer */
+FontInfo.c:69: if (!_XReply (dpy, (xReply *) &reply,
+FontInfo.c:189: _XReply(dpy, (xReply *) &reply,
+FontNames.c:58: /* use _XSend instead of Data, since following _XReply will flush buffer */
+FontNames.c:60: if (!_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
+GetAtomNm.c:71: if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
+GetAtomNm.c:172: if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+GetColor.c:90: /* _XSend is more efficient that Data, since _XReply follows */
+GetColor.c:92: if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
+GetFPath.c:49: (void) _XReply (dpy, (xReply *) &rep, 0, xFalse);
+GetGeom.c:47: if (!_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
+GetHColor.c:48: status = _XReply(dpy, (xReply *) &rep, 0, xTrue);
+GetIFocus.c:42: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+GetImage.c:76: if (_XReply (dpy, (xReply *) &rep, 0, xFalse) == 0 ||
+GetKCnt.c:41: (void) _XReply (dpy, (xReply *) &rep,
+GetMoEv.c:49: if (!_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
+GetPCnt.c:44: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+GetPntMap.c:52: if (! _XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+GetPntMap.c:106: if (! _XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+GetProp.c:69: if (!_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
+GetSOwner.c:41: if (_XReply(dpy, (xReply *)&rep, 0, xTrue) == 0) rep.owner = None;
+GetSSaver.c:47: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+GetWAttrs.c:114: if (!_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
+GrKeybd.c:51: if (_XReply (dpy, (xReply *) &rep, 0, xTrue) == 0)
+GrPointer.c:58: if (_XReply (dpy, (xReply *) &rep, 0, xTrue) == 0)
+ImText16.c:80: if (!_XReply (dpy, (xReply *)&rep, 0, xTrue))
+ImText.c:79: if (!_XReply (dpy, (xReply *)&rep, 0, xTrue))
+IntAtom.c:181: if (_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
+IntAtom.c:283: if (_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
+LiHosts.c:87: if (!_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
+LiICmaps.c:45: if(_XReply(dpy, (xReply *) &rep, 0, xFalse) == 0) {
+LiProps.c:44: if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+ListExt.c:50: if (! _XReply (dpy, (xReply *) &rep, 0, xFalse)) {
+locking.c:468: * _XReply is allowed to exit from select/poll and clean up even if a
+LookupCol.c:88: if (!_XReply (dpy, (xReply *) &reply, 0, xTrue)) {
+ModMap.c:43: (void) _XReply (dpy, (xReply *)&rep, 0, xFalse);
+ModMap.c:89: (void) _XReply(dpy, (xReply *) & rep,
+OpenDis.c:771: if (_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
+OpenDis.c:788: if (_XReply(dpy, (xReply *)&brep, 0, xFalse))
+ParseCol.c:125: if (!_XReply (dpy, (xReply *) &reply, 0, xTrue)) {
+QuBest.c:50: if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
+QuColor.c:49: if (_XReply(dpy, (xReply *) &rep, 0, xFalse) != 0) {
+QuColors.c:52: if (_XReply(dpy, (xReply *) &rep, 0, xFalse) != 0) {
+QuCurShp.c:49: if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
+QuExt.c:48: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+QuKeybd.c:46: (void) _XReply(dpy, (xReply *)&rep,
+QuPntr.c:48: if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
+QuStipShp.c:49: if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
+QuTextE16.c:63: if (!_XReply (dpy, (xReply *)&rep, 0, xTrue) || !buf) {
+QuTextExt.c:63: if (!_XReply (dpy, (xReply *)&rep, 0, xTrue) || !buf) {
+QuTileShp.c:49: if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
+QuTree.c:46: if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+ReconfWM.c:111: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+SetPntMap.c:47: if (_XReply (dpy, (xReply *)&rep, 0, xFalse) == 0)
+Sync.c:44: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+TrCoords.c:51: if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
+XKB.c:420: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKB.c:496: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKB.c:542: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKB.c:573: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKB.c:609: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKB.c:642: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKB.c:679: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKB.c:710: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBCompat.c:138: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBCtrls.c:90: if (!_XReply(dpy, (xReply *) &rep,
+XKBCtrls.c:202: if (!_XReply(dpy, (xReply *) &rep,
+XKBExtDev.c:257: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBExtDev.c:329: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBExtDev.c:370: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBExtDev.c:413: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBGeom.c:687: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse))
+XKBGeom.c:715: if ((!_XReply(dpy, (xReply *) &rep, 0, xFalse)) || (!rep.found))
+XKBGetByName.c:140: if ((!_XReply(dpy, (xReply *) &rep, 0, xFalse)) || (!rep.reported))
+XKBGetMap.c:562: if (!_XReply(dpy, (xReply *) &rep,
+XKBleds.c:52: ok = _XReply(dpy, (xReply *) &rep, 0, xFalse);
+XKBleds.c:143: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBleds.c:226: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBList.c:185: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse))
+XKBNames.c:264: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
+XKBUse.c:755: if (!_XReply(dpy, (xReply *) &rep, 0, xFalse) || !rep.supported) {
+XKBUse.c:773: if (_XReply(dpy, (xReply *) &rep, 0, xFalse) && rep.supported) {
+XlibAsync.c:112: int extra, /* extra words to read, ala _XReply */
+XlibAsync.c:113: Bool discard) /* discard after extra?, ala _XReply */
+XlibInt.c:894: (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
+XlibInt.c:1160: if _XReply (in another thread) reads one */
+XlibInt.c:1163: /* did _XReply read an event we can return? */
+XlibInt.c:1414: /* _XReply has read an event for us */
+XlibInt.c:1956: if (!_XReply (dpy, (xReply *)&qrep, 0, xTrue))
+XlibInt.c:1964: if (!_XReply (dpy, (xReply *)&vrep, 0, xTrue))
+XlibInt.c:1984: if (_XReply (dpy, (xReply *)&grep, 0, xTrue) && grep.count) {
+XlibInt.c:2055: if (_XReply(dpy, (xReply *)&grep, 0, xFalse) && grep.count) {
+XlibInt.c:2128: * _XReply - Wait for a reply packet and copy its contents into the
+XlibInt.c:2133:_XReply (
+XlibInt.c:2147: fprintf(stderr, "_XReply: Going to wait for an X reply.\n");
+XlibInt.c:2154: fprintf(stderr, "_XReply: Returning 0 with I/O error detected.\n");
+XlibInt.c:2173: printf("_XReply called in thread %x, adding %x to cvl\n",
+XlibInt.c:2178: fprintf(stderr, "_XReply: Going to flush the display buffer.\n");
+XlibInt.c:2203: fprintf(stderr, "_XReply: Requesting a flush of the NX transport.\n");
+locking.h:58: Bool reply_was_read; /* _XReadEvents read a reply for _XReply */
+locking.h:59: struct _XCVList *reply_awaiters; /* list of CVs for _XReply */
+Xlibint.h:428:#define XlibDisplayReply (1L << 5) /* in _XReply */
+Xlibint.h:962:extern Status _XReply(
+
+#### _XReverse_Bytes ####
+ImUtil.c:147: _XReverse_Bytes (bp, img->bitmap_unit >> 3);
+PutImage.c:120:_XReverse_Bytes(
+ImUtil.h:24:_XReverse_Bytes(
+
+#### _XScreenOfWindow ####
+GetRGBCMap.c:78: Screen *sp = _XScreenOfWindow (dpy, w);
+GetStCmap.c:80: Screen *sp = _XScreenOfWindow (dpy, w);
+SetStCmap.c:73: sp = _XScreenOfWindow (dpy, w);
+SetStCmap.c:75: /* already caught the XGetGeometry error in _XScreenOfWindow */
+XlibInt.c:3950: * _XScreenOfWindow - get the Screen of a given window
+XlibInt.c:3953:Screen *_XScreenOfWindow(Display *dpy, Window w)
+Xlibint.h:908:extern Screen *_XScreenOfWindow(
+
+#### _XSelect ####
+XlibInt.c:256:int _XSelect(int maxfds, fd_set *readfds, fd_set *writefds,
+XlibInt.c:260: fprintf(stderr, "_XSelect: Called with [%d][%p][%p][%p][%p].\n",
+XlibInt.c:276: fprintf(stderr, "_XSelect: WARNING! Can't handle exception fds in select.\n");
+XlibInt.c:333:int _XSelect(int maxfds, fd_set *readfds, fd_set *writefds,
+
+#### _XSend ####
+cmsAllNCol.c:158: _XSend(dpy, colorname, nbytes);
+cmsAllNCol.c:159: /* _XSend is more efficient that Data, since _XReply follows */
+ConnDis.c:781:_XSendClientPrefix(
+ConnDis.c:1206: _XSend(dpy, (char *)&prefix, sz_xReq);
+ConnDis.c:1207: _XSend(dpy, (char *)kbuf.data, kbuf.length);
+ConnDis.c:1253: _XSend(dpy, (char *)&prefix, sz_xReq);
+FontInfo.c:65: _XSend (dpy, pattern, nbytes);
+FontInfo.c:66: /* use _XSend instead of Data, since subsequent _XReply will flush buffer */
+FontNames.c:57: _XSend (dpy, pattern, nbytes);
+FontNames.c:58: /* use _XSend instead of Data, since following _XReply will flush buffer */
+GetColor.c:89: _XSend(dpy, colorname, nbytes);
+GetColor.c:90: /* _XSend is more efficient that Data, since _XReply follows */
+OpenDis.c:374: prefixread = _XSendClientPrefix(dpy, &client,
+PutImage.c:601:/* Cancel a GetReq operation, before doing _XSend or Data */
+PutImage.c:748: _XSend(dpy, buf, length);
+PutImage.c:830: _XSend(dpy, (char *)dest, length);
+QuExt.c:47: _XSend(dpy, name, (long)req->nbytes);
+XlibInt.c:1768: * _XSend - Flush the buffer and send the client data. 32 bit word aligned
+XlibInt.c:1773:_XSend (
+XlibInt.c:1790: fprintf(stderr, "_XSend: Sending data with [%d] bytes to write.\n",
+XlibInt.c:1798: fprintf(stderr, "_XSend: Returning with I/O error detected.\n");
+XlibInt.c:1955: _XSend(dpy, XCMiscExtensionName, (long)qreq->nbytes);
+XlibInt.c:3759: * GetReq* and a call to Data* or _XSend*, or in a context when the thread
+XlibInt.c:3862: _XSend(dpy, data, len);
+Xintconn.h:23:extern Bool _XSendClientPrefix(Display *dpy, xConnClientPrefix *client,
+Xlibint.h:429:#define XlibDisplayWriting (1L << 6) /* in _XFlushInt, _XSend */
+Xlibint.h:568: _XSend(dpy, data, len);\
+Xlibint.h:957:extern void _XSend(
+
+#### _XSendClientPrefix ####
+ConnDis.c:781:_XSendClientPrefix(
+OpenDis.c:374: prefixread = _XSendClientPrefix(dpy, &client,
+Xintconn.h:23:extern Bool _XSendClientPrefix(Display *dpy, xConnClientPrefix *client,
+
+#### _XSetClipRectangles ####
+Region.c:275: _XSetClipRectangles(dpy, gc, 0, 0, xr, r->numRects, YXBanded);
+SetCRects.c:33:void _XSetClipRectangles (
+SetCRects.c:75: _XSetClipRectangles (dpy, gc, clip_x_origin, clip_y_origin, rectangles, n,
+Xlibint.h:1320:extern void _XSetClipRectangles (
+
+#### _XSetImage ####
+GetImage.c:140: _XSetImage(temp_image, dest_image, dest_x, dest_y);
+ImUtil.c:109: * _XSetImage Writes an image data pattern into another image
+ImUtil.c:296:/* image->f.set_image = _XSetImage;*/
+ImUtil.c:919:int _XSetImage(
+ImUtil.h:17:_XSetImage(
+
+#### _XSetLastRequestRead ####
+XKBUse.c:232: sev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:270: mev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:302: ev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:324: cev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:349: iev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:368: iev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:387: bev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:412: axev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:433: nev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:462: cmev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:483: amev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:508: edev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:536: nkev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XKBUse.c:560: ev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
+XlibInt.c:2084:_XSetLastRequestRead(
+XlibInt.c:2289: serial = _XSetLastRequestRead(dpy, (xGenericReply *)rep);
+XlibInt.c:2362: (void) _XSetLastRequestRead(dpy, &rep->generic);
+XlibInt.c:3088: ((XAnyEvent *)re)->serial = _XSetLastRequestRead(dpy,
+XlibInt.c:3644: event.xerror.serial = _XSetLastRequestRead(dpy, (xGenericReply *)rep);
+Xlibint.h:900:extern unsigned long _XSetLastRequestRead(
+
+#### _XStoreEventCookie ####
+ChkIfEv.c:62: _XStoreEventCookie(dpy, event);
+ChkIfEv.c:118: _XStoreEventCookie(dpy, event);
+ChkTypEv.c:60: _XStoreEventCookie(dpy, event);
+ChkTypWEv.c:62: _XStoreEventCookie(dpy, event);
+IfEvent.c:61: _XStoreEventCookie(dpy, event);
+NextEvent.c:60: _XStoreEventCookie(dpy, event);
+OpenDis.c:858: _XStoreEventCookie(dpy, &qelt->event);
+PeekEvent.c:55: _XStoreEventCookie(dpy, &copy);
+PeekIfEv.c:63: _XStoreEventCookie(dpy, &copy);
+XlibInt.c:2853:_XStoreEventCookie(Display *dpy, XEvent *event)
+Xlibint.h:1344:extern void _XStoreEventCookie(
+
+#### _XTextHeight16 ####
+omTextEsc.c:109: escapement += _XTextHeight16(font, buf2b, 1);
+TextExt16.c:166: * _XTextHeight16 - compute the height of sequence of XChar2bs.
+TextExt16.c:169:_XTextHeight16 (
+Xlibint.h:1264:extern int _XTextHeight16(
+
+#### _XTextHeight ####
+omTextEsc.c:109: escapement += _XTextHeight16(font, buf2b, 1);
+omTextEsc.c:118: escapement += _XTextHeight(font, buf, 1);
+TextExt16.c:166: * _XTextHeight16 - compute the height of sequence of XChar2bs.
+TextExt16.c:169:_XTextHeight16 (
+TextExt.c:191: * _XTextHeight - compute the height of a string of eightbit bytes.
+TextExt.c:194:_XTextHeight (
+Xlibint.h:1258:extern int _XTextHeight(
+Xlibint.h:1264:extern int _XTextHeight16(
+
+#### _XTranslateKey ####
+KeyBind.c:756:_XTranslateKey( register Display *dpy,
+KeyBind.c:816:_XTranslateKeySym(
+KeyBind.c:886: if (! _XTranslateKey(event->display, event->keycode, event->state,
+KeyBind.c:893: return _XTranslateKeySym(event->display, symbol, event->state,
+XKBBind.c:258: return _XTranslateKey(dpy, key, mods, mods_rtrn, keysym_rtrn);
+XKBlibint.h:162:extern int _XTranslateKey(
+XKBlibint.h:170:extern int _XTranslateKeySym(
+
+#### _XTranslateKeySym ####
+KeyBind.c:816:_XTranslateKeySym(
+KeyBind.c:893: return _XTranslateKeySym(event->display, symbol, event->state,
+XKBlibint.h:170:extern int _XTranslateKeySym(
+
+#### _XTryShapeBitmapCursor ####
+CrCursor.c:34:_XTryShapeBitmapCursor (Display *dpy,
+CrCursor.c:57: cid = _XTryShapeBitmapCursor (dpy, source, mask,
+CrGlCur.c:208:_XTryShapeBitmapCursor (Display *dpy,
+Cr.h:20:extern Cursor _XTryShapeBitmapCursor(
+
+#### _XUnknownCopyEventCookie ####
+InitExt.c:287: if (proc == NULL) proc = (CopyEventCookieType)_XUnknownCopyEventCookie;
+XlibInt.c:3050:_XUnknownCopyEventCookie(
+Xlibint.h:990:extern Bool _XUnknownCopyEventCookie(
+
+#### _XUnknownNativeEvent ####
+EvToWire.c:43: * _XUnknownNativeEvent returns (i.e., False).
+EvToWire.c:403: return(_XUnknownNativeEvent(dpy, re, event));
+InitExt.c:308: if (proc == NULL) proc = (EventToWireType) _XUnknownNativeEvent;
+OpenDis.c:248: dpy->wire_vec[X_Error] = _XUnknownNativeEvent;
+OpenDis.c:249: dpy->wire_vec[X_Reply] = _XUnknownNativeEvent;
+OpenDis.c:256: dpy->wire_vec[i] = _XUnknownNativeEvent;
+XlibInt.c:3065:_XUnknownNativeEvent(
+Xlibint.h:996:extern Status _XUnknownNativeEvent(
+
+#### _XUnknownWireEvent ####
+InitExt.c:245: if (proc == NULL) proc = (WireToEventType)_XUnknownWireEvent;
+InitExt.c:266: if (proc == NULL) proc = (WireToEventCookieType)_XUnknownWireEventCookie;
+OpenDis.c:246: dpy->event_vec[X_Error] = _XUnknownWireEvent;
+OpenDis.c:247: dpy->event_vec[X_Reply] = _XUnknownWireEvent;
+OpenDis.c:255: dpy->event_vec[i] = _XUnknownWireEvent;
+XlibInt.c:3022:_XUnknownWireEvent(
+XlibInt.c:3036:_XUnknownWireEventCookie(
+XlibInt.c:3445: return(_XUnknownWireEvent(dpy, re, event));
+Xlibint.h:978:extern Bool _XUnknownWireEvent(
+Xlibint.h:984:extern Bool _XUnknownWireEventCookie(
+
+#### _XUnknownWireEventCookie ####
+InitExt.c:266: if (proc == NULL) proc = (WireToEventCookieType)_XUnknownWireEventCookie;
+XlibInt.c:3036:_XUnknownWireEventCookie(
+Xlibint.h:984:extern Bool _XUnknownWireEventCookie(
+
+#### _XUnlockMutex_fn ####
+locking.c:604: _XUnlockMutex_fn = _XUnlockMutex;
+XlibInt.c:93:void (*_XUnlockMutex_fn)(
+XlibInt.c:4201:void (**_XUnlockMutex_fn_p)(LockInfoPtr
+XlibInt.c:4206: ) = &_XUnlockMutex_fn;
+Xlibint.h:306:#define _XUnlockMutex_fn (*_XUnlockMutex_fn_p)
+Xlibint.h:324:extern void (*_XUnlockMutex_fn)(
+Xlibint.h:338:#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock,__FILE__,__LINE__)
+Xlibint.h:344:#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock)
+
+#### _XUnregisterFilter ####
+imDefFlt.c:300: _XUnregisterFilter (ic->core.im->core.display,
+imDefFlt.c:316: _XUnregisterFilter (ic->core.im->core.display,
+imDefFlt.c:404: _XUnregisterFilter(im->core.display,
+imInsClbk.c:254: _XUnregisterFilter( display, RootWindow(display, 0),
+imLcIc.c:47: _XUnregisterFilter(ic->core.im->core.display,
+imLcIc.c:62: _XUnregisterFilter(ic->core.im->core.display,
+imRm.c:2796: _XUnregisterFilter(ic->core.im->core.display,
+imThaiIc.c:53: _XUnregisterFilter(ic->core.im->core.display, ic->core.focus_window,
+imTrans.c:135: _XUnregisterFilter(im->core.display, spec->window,
+imTrX.c:236: _XUnregisterFilter(im->core.display,
+RegstFlt.c:137:_XUnregisterFilter(
+Xlcint.h:827:extern void _XUnregisterFilter(
+
+#### _XUnregisterInternalConnection ####
+imTrans.c:134: _XUnregisterInternalConnection(im->core.display, spec->fd);
+XlibInt.c:2509:/* _XUnregisterInternalConnection
+XlibInt.c:2518:_XUnregisterInternalConnection(
+XlibInt.c:2528: fprintf(stderr, "_XUnregisterInternalConnection: Got called.\n");
+XlibInt.c:2645: * or _XUnregisterInternalConnection is called.
+Xlibint.h:1226:extern void _XUnregisterInternalConnection(
+
+#### _XUnresolveColor ####
+LookupCol.c:62: _XUnresolveColor(ccc, scr);
+XRGB.c:220: * _XUnresolveColor
+XRGB.c:225:_XUnresolveColor(
+Xcmsint.h:196:_XUnresolveColor(
+
+#### _XUpdateAtomCache ####
+GetAtomNm.c:79: _XUpdateAtomCache(dpy, name, atom, 0, -1, 0);
+GetAtomNm.c:133: _XUpdateAtomCache(dpy, state->names[state->idx],
+GetAtomNm.c:176: _XUpdateAtomCache(dpy, names_return[missed], atoms[missed],
+IntAtom.c:115:_XUpdateAtomCache(
+IntAtom.c:183: _XUpdateAtomCache(dpy, name, atom, sig, idx, n);
+IntAtom.c:234: _XUpdateAtomCache(dpy, state->names[i], (Atom) repl->atom,
+IntAtom.c:285: _XUpdateAtomCache(dpy, names[missed], (Atom) rep.atom,
+Xintatom.h:27:extern void _XUpdateAtomCache(Display *dpy, const char *name, Atom atom,
+
+#### _XUpdateGCCache ####
+ChGC.c:43: if (valuemask) _XUpdateGCCache (gc, valuemask, values);
+CrGC.c:87: if (valuemask) _XUpdateGCCache (gc, valuemask, values);
+CrGC.c:164:_XUpdateGCCache (
+Cr.h:7:extern int _XUpdateGCCache(
+
+#### _XVIDtoVisual ####
+GetImage.c:96: image = XCreateImage(dpy, _XVIDtoVisual(dpy, rep.visual),
+GetImage.c:102: image = XCreateImage (dpy, _XVIDtoVisual(dpy, rep.visual),
+GetWAttrs.c:83: attr->visual = _XVIDtoVisual (dpy, repl->visualID);
+OpenDis.c:672: sp->root_visual = _XVIDtoVisual(dpy, root_visualID);
+VisUtil.c:145: vip->visual = _XVIDtoVisual(dpy, vp->visualid);
+VisUtil.c:227: visual_info->visual = _XVIDtoVisual(dpy, vp->visualid);
+XlibInt.c:3806:Visual *_XVIDtoVisual(
+Xlibint.h:896:extern Visual *_XVIDtoVisual(
+
+#### _XWireToEvent ####
+OpenDis.c:251: dpy->event_vec[i] = _XWireToEvent;
+XlibInt.c:3081:_XWireToEvent(
+Xlibint.h:1002:extern Bool _XWireToEvent(Display *dpy, XEvent *re, xEvent *event);
+
+#### _XcmsAddCmapRec ####
+cmsCmap.c:105: if ((pRec = _XcmsAddCmapRec(dpy, cmap, RootWindow(dpy, i),
+cmsCmap.c:200: if ((pRec = _XcmsAddCmapRec(dpy, cmap, tmpWindow, vp)) == NULL)
+cmsCmap.c:230: * _XcmsAddCmapRec
+cmsCmap.c:235:_XcmsAddCmapRec(
+cmsCmap.c:300: pRec_copy =_XcmsAddCmapRec(dpy, copy_cmap, pRec_src->windowID,
+CrCmap.c:55: _XcmsAddCmapRec(dpy, mid, w, visual);
+Xcmsint.h:179:_XcmsAddCmapRec(
+
+#### _XcmsArcTangent ####
+cmsTrig.c:530: * _XcmsArcTangent
+cmsTrig.c:535:_XcmsArcTangent(double x)
+Xcmsint.h:211:#define XCMS_ATAN(x) _XcmsArcTangent(x)
+Xcmsint.h:219:double _XcmsArcTangent(double a);
+
+#### _XcmsCIELabQueryMaxLCRGB ####
+LabGcL.c:119: if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max,
+LabGcLC.c:141: if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max, &rgb_max)
+LabMnL.c:119: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxC.c:125: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxL.c:119: if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LabMxLC.c:67: * _XcmsCIELabQueryMaxLCRGB - Compute maximum L* and chroma.
+LabMxLC.c:72:_XcmsCIELabQueryMaxLCRGB(
+LabMxLC.c:216: return(_XcmsCIELabQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
+Cv.h:67:_XcmsCIELabQueryMaxLCRGB(
+
+#### _XcmsCIELab_prefix ####
+cmsGlobls.c:107:const char _XcmsCIELab_prefix[] = "cielab";
+cmsGlobls.c:120: { _XcmsCIELab_prefix, XcmsCIELabFormat },
+Lab.c:99: _XcmsCIELab_prefix, /* prefix */
+Lab.c:152: if (strncmp(spec, _XcmsCIELab_prefix, n) != 0) {
+Cv.h:9:extern const char _XcmsCIELab_prefix[];
+
+#### _XcmsCIELuvQueryMaxLCRGB ####
+LuvGcL.c:119: if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max,
+LuvGcLC.c:141: if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max, &rgb_max)
+LuvMnL.c:119: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxC.c:125: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxL.c:119: if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
+LuvMxLC.c:67: * _XcmsCIELuvQueryMaxLCRGB - Compute maximum L* and chroma.
+LuvMxLC.c:72:_XcmsCIELuvQueryMaxLCRGB(
+LuvMxLC.c:216: return(_XcmsCIELuvQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
+Cv.h:129:_XcmsCIELuvQueryMaxLCRGB(
+
+#### _XcmsCIELuv_prefix ####
+cmsGlobls.c:108:const char _XcmsCIELuv_prefix[] = "cieluv";
+cmsGlobls.c:121: { _XcmsCIELuv_prefix, XcmsCIELuvFormat },
+Luv.c:102: _XcmsCIELuv_prefix, /* prefix */
+Luv.c:155: if (strncmp(spec, _XcmsCIELuv_prefix, n) != 0) {
+Cv.h:10:extern const char _XcmsCIELuv_prefix[];
+
+#### _XcmsCIEXYZ_ValidSpec ####
+Lab.c:393: if (!_XcmsCIEXYZ_ValidSpec(pColor)) {
+uvY.c:380: if (!_XcmsCIEXYZ_ValidSpec(pColor)) {
+xyY.c:377: if (!_XcmsCIEXYZ_ValidSpec(pColor)) {
+XYZ.c:166: return(_XcmsCIEXYZ_ValidSpec(pColor));
+XYZ.c:183:_XcmsCIEXYZ_ValidSpec(
+Cv.h:51:_XcmsCIEXYZ_ValidSpec(
+
+#### _XcmsCIEXYZ_prefix ####
+cmsGlobls.c:104:const char _XcmsCIEXYZ_prefix[] = "ciexyz";
+cmsGlobls.c:117: { _XcmsCIEXYZ_prefix, XcmsCIEXYZFormat },
+XYZ.c:82: _XcmsCIEXYZ_prefix, /* prefix */
+XYZ.c:134: if (strncmp(spec, _XcmsCIEXYZ_prefix, n) != 0) {
+Cv.h:6:extern const char _XcmsCIEXYZ_prefix[];
+
+#### _XcmsCIEuvY_ValidSpec ####
+HVC.c:504: if (!_XcmsCIEuvY_ValidSpec(pColor)) {
+Luv.c:377: if (!_XcmsCIEuvY_ValidSpec(pColor)) {
+uvY.c:181: return(_XcmsCIEuvY_ValidSpec(pColor));
+uvY.c:198:_XcmsCIEuvY_ValidSpec(
+uvY.c:266: if (!_XcmsCIEuvY_ValidSpec(pColor)) {
+Cv.h:54:_XcmsCIEuvY_ValidSpec(
+
+#### _XcmsCIEuvY_prefix ####
+cmsGlobls.c:105:const char _XcmsCIEuvY_prefix[] = "cieuvy";
+cmsGlobls.c:118: { _XcmsCIEuvY_prefix, XcmsCIEuvYFormat },
+uvY.c:95: _XcmsCIEuvY_prefix, /* prefix */
+uvY.c:149: if (strncmp(spec, _XcmsCIEuvY_prefix, n) != 0) {
+Cv.h:7:extern const char _XcmsCIEuvY_prefix[];
+
+#### _XcmsCIExyY_prefix ####
+cmsGlobls.c:106:const char _XcmsCIExyY_prefix[] = "ciexyy";
+cmsGlobls.c:119: { _XcmsCIExyY_prefix, XcmsCIExyYFormat },
+xyY.c:94: _XcmsCIExyY_prefix, /* prefix */
+xyY.c:148: if (strncmp(spec, _XcmsCIExyY_prefix, n) != 0) {
+Cv.h:8:extern const char _XcmsCIExyY_prefix[];
+
+#### _XcmsConvertColorsWithWhitePt ####
+CvColW.c:53: * _XcmsConvertColorsWithWhitePt - Convert XcmsColor structures
+CvColW.c:58:_XcmsConvertColorsWithWhitePt(
+HVCGcVC.c:215: if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
+HVCMxC.c:178: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+HVCMxV.c:187: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+HVCMxVC.c:124: if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+HVCMxVC.c:157: if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+HVCMxVs.c:150: if (_XcmsConvertColorsWithWhitePt(&myCCC, pHVC,
+HVCWpAj.c:104: if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
+HVCWpAj.c:112: return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtTo,
+LabGcLC.c:181: if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
+LabMnL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LabMxC.c:166: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LabMxL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LabMxLC.c:116: if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp, ScreenWhitePointOfCCC(ccc),
+LabMxLC.c:149: if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+LabWpAj.c:87: if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
+LabWpAj.c:95: return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out,
+LuvGcLC.c:181: if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
+LuvMnL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LuvMxC.c:167: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LuvMxL.c:170: if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
+LuvMxLC.c:116: if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp, ScreenWhitePointOfCCC(ccc),
+LuvMxLC.c:149: if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
+LuvWpAj.c:86: if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
+LuvWpAj.c:94: return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtTo,
+Cv.h:73:_XcmsConvertColorsWithWhitePt(
+
+#### _XcmsCopyCmapRecAndFree ####
+cmsCmap.c:276: * _XcmsCopyCmapRecAndFree
+cmsCmap.c:281:_XcmsCopyCmapRecAndFree(
+CopyCmap.c:38:extern XcmsCmapRec * _XcmsCopyCmapRecAndFree(Display *dpy,
+CopyCmap.c:60: _XcmsCopyCmapRecAndFree(dpy, src_cmap, mid);
+Cv.h:147:_XcmsCopyCmapRecAndFree(
+
+#### _XcmsCopyISOLatin1Lowered ####
+cmsColNm.c:217: _XcmsCopyISOLatin1Lowered(string_lowered, color_string);
+cmsColNm.c:426: _XcmsCopyISOLatin1Lowered(name_lowered, tmpName);
+cmsColNm.c:691: _XcmsCopyISOLatin1Lowered(pString, f1);
+cmsColNm.c:695: _XcmsCopyISOLatin1Lowered(pString, f2);
+cmsColNm.c:787: * _XcmsCopyISOLatin1Lowered
+cmsColNm.c:792:_XcmsCopyISOLatin1Lowered(
+IdOfPr.c:74: _XcmsCopyISOLatin1Lowered(string_lowered, prefix);
+Cv.h:152:_XcmsCopyISOLatin1Lowered(
+
+#### _XcmsCopyPointerArray ####
+cmsInt.c:61: * _XcmsCopyPointerArray
+cmsInt.c:66:_XcmsCopyPointerArray(
+Cv.h:40:_XcmsCopyPointerArray(
+
+#### _XcmsCosine ####
+cmsTrig.c:122: * _XcmsCosine double precision cosine
+cmsTrig.c:138: * double _XcmsCosine (x)
+cmsTrig.c:225:double _XcmsCosine(double x)
+cmsTrig.c:240: retval = -(_XcmsCosine (x - XCMS_PI));
+cmsTrig.c:242: retval = -(_XcmsCosine (x + XCMS_PI));
+cmsTrig.c:514: retval = _XcmsCosine (XCMS_HALFPI - x);
+cmsTrig.c:516: retval = -(_XcmsCosine (XCMS_HALFPI + x));
+Xcmsint.h:212:#define XCMS_COS(x) _XcmsCosine(x)
+Xcmsint.h:220:double _XcmsCosine(double a);
+
+#### _XcmsCubeRoot ####
+cmsMath.c:58:_XcmsCubeRoot(double a)
+cmsMath.c:63: printf("_XcmsCubeRoot passed in %g\n", a);
+cmsMath.c:92: printf("_XcmsCubeRoot returning %g\n", cur_guess);
+Xcmsint.h:213:#define XCMS_CUBEROOT(x) _XcmsCubeRoot(x)
+Xcmsint.h:221:double _XcmsCubeRoot(double a);
+
+#### _XcmsDDColorSpaces ####
+AddSF.c:110: * _XcmsDDColorSpaces.
+AddSF.c:114: for (paptmpCS = _XcmsDDColorSpaces; *paptmpCS != NULL;
+AddSF.c:126: (XPointer *) _XcmsDDColorSpaces,
+AddSF.c:128: (XPointer *) _XcmsDDColorSpacesInit)) == NULL) {
+AddSF.c:131: _XcmsDDColorSpaces = paptmpCS;
+cmsGlobls.c:71:XcmsColorSpace *_XcmsDDColorSpacesInit[] = {
+cmsGlobls.c:81:XcmsColorSpace **_XcmsDDColorSpaces = &_XcmsDDColorSpacesInit[0];
+IdOfPr.c:93: papColorSpaces = _XcmsDDColorSpaces;
+PrOfId.c:86: papColorSpaces = _XcmsDDColorSpaces;
+Cv.h:28:extern XcmsColorSpace *_XcmsDDColorSpacesInit[];
+Cv.h:29:extern XcmsColorSpace **_XcmsDDColorSpaces;
+
+#### _XcmsDDColorSpacesInit ####
+AddSF.c:128: (XPointer *) _XcmsDDColorSpacesInit)) == NULL) {
+cmsGlobls.c:71:XcmsColorSpace *_XcmsDDColorSpacesInit[] = {
+cmsGlobls.c:81:XcmsColorSpace **_XcmsDDColorSpaces = &_XcmsDDColorSpacesInit[0];
+Cv.h:28:extern XcmsColorSpace *_XcmsDDColorSpacesInit[];
+
+#### _XcmsDDConvertColors ####
+cmsColNm.c:943: return(_XcmsDDConvertColors(ccc, pColor_exact_return,
+cmsColNm.c:956: if (_XcmsDDConvertColors(ccc, pColor_exact_return, 1,
+cmsColNm.c:995: return (_XcmsDDConvertColors(ccc, pColor_exact_return, 1,
+CvCols.c:320: retval_tmp = _XcmsDDConvertColors(ccc, pColors_start,
+CvCols.c:332: retval_tmp = _XcmsDDConvertColors(ccc, pColors_start, nBatch,
+CvCols.c:541: * _XcmsDDConvertColors - Convert XcmsColor structures
+CvCols.c:546:_XcmsDDConvertColors(
+CvCols.c:829: retval = _XcmsDDConvertColors(ccc, pColors_tmp, nColors,
+CvCols.c:860: retval = _XcmsDDConvertColors(ccc, pColors_tmp, nColors,
+CvCols.c:880: if (_XcmsDDConvertColors(ccc, pColors_tmp, nColors,
+CvCols.c:979: retval = _XcmsDDConvertColors(ccc, pColors_tmp, nColors,
+CvColW.c:105: return(_XcmsDDConvertColors(ccc, pColors_in_out, nColors, newFormat,
+CvColW.c:126: return(_XcmsDDConvertColors(ccc, pColors_in_out, nColors, newFormat,
+CvColW.c:133: if (_XcmsDDConvertColors(ccc, pColors_in_out, nColors,
+Cv.h:89:_XcmsDDConvertColors(
+
+#### _XcmsDIColorSpaces ####
+AddDIC.c:94: if ((papColorSpaces = _XcmsDIColorSpaces) != NULL) {
+AddDIC.c:121: if ((papColorSpaces = _XcmsDIColorSpaces) != NULL) {
+AddDIC.c:142: _XcmsPushPointerArray((XPointer *)_XcmsDIColorSpaces,
+AddDIC.c:144: (XPointer *)_XcmsDIColorSpacesInit)) == NULL) {
+AddDIC.c:147: _XcmsDIColorSpaces = papColorSpaces;
+cmsColNm.c:144: papColorSpaces = _XcmsDIColorSpaces;
+cmsGlobls.c:51:XcmsColorSpace *_XcmsDIColorSpacesInit[] = {
+cmsGlobls.c:66:XcmsColorSpace **_XcmsDIColorSpaces = _XcmsDIColorSpacesInit;
+CvCols.c:120: papColorSpaces = _XcmsDIColorSpaces;
+CvCols.c:167: papRec = _XcmsDIColorSpaces;
+IdOfPr.c:79: papColorSpaces = _XcmsDIColorSpaces;
+PrOfId.c:73: papColorSpaces = _XcmsDIColorSpaces;
+Cv.h:25:extern XcmsColorSpace *_XcmsDIColorSpacesInit[];
+Cv.h:26:extern XcmsColorSpace **_XcmsDIColorSpaces;
+
+#### _XcmsDIColorSpacesInit ####
+AddDIC.c:144: (XPointer *)_XcmsDIColorSpacesInit)) == NULL) {
+cmsGlobls.c:51:XcmsColorSpace *_XcmsDIColorSpacesInit[] = {
+cmsGlobls.c:66:XcmsColorSpace **_XcmsDIColorSpaces = _XcmsDIColorSpacesInit;
+Cv.h:25:extern XcmsColorSpace *_XcmsDIColorSpacesInit[];
+
+#### _XcmsDIConvertColors ####
+cmsColNm.c:960: return(_XcmsDIConvertColors(ccc, pColor_exact_return,
+cmsColNm.c:990: if (_XcmsDIConvertColors(ccc, pColor_exact_return,
+cmsColNm.c:1023: return (_XcmsDIConvertColors(ccc, pColor_exact_return,
+cmsColNm.c:1039: if (_XcmsDIConvertColors(ccc, pColor_exact_return,
+cmsColNm.c:1047: return(_XcmsDIConvertColors(ccc, pColor_exact_return,
+CvCols.c:296: retval_tmp = _XcmsDIConvertColors(ccc, pColors_start, pWhitePt,
+CvCols.c:378: if (_XcmsDIConvertColors(ccc, &tmp1, (XcmsColor *) NULL, 1,
+CvCols.c:385: if (_XcmsDIConvertColors(ccc, &tmp2, (XcmsColor *) NULL, 1,
+CvCols.c:397: * _XcmsDIConvertColors - Convert XcmsColor structures
+CvCols.c:402:_XcmsDIConvertColors(
+CvCols.c:821: retval = _XcmsDIConvertColors(ccc, pColors_tmp,
+CvCols.c:855: if (_XcmsDIConvertColors(ccc, pColors_tmp,
+CvCols.c:884: retval = _XcmsDIConvertColors(ccc, pColors_tmp,
+CvColW.c:98: return(_XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
+CvColW.c:121: if (_XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
+CvColW.c:138: return(_XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
+HVC.c:367: if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
+HVC.c:486: if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
+HVCGcC.c:118: _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
+HVCGcC.c:121: _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
+HVCGcC.c:129: if (_XcmsDIConvertColors(ccc, pColor,
+HVCGcC.c:142: retval = _XcmsDIConvertColors(ccc, pColor,
+HVCGcV.c:126: if (_XcmsDIConvertColors(&myCCC, pColor,
+HVCGcV.c:153: retval = _XcmsDIConvertColors(&myCCC, pColor,
+HVCGcV.c:174: retval = _XcmsDIConvertColors(&myCCC, pColor,
+HVCGcV.c:180: if (_XcmsDIConvertColors(ccc, pColor,
+HVCGcV.c:193: retval = _XcmsDIConvertColors(&myCCC, pColor,
+HVCGcVC.c:134: _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
+HVCGcVC.c:137: _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
+HVCGcVC.c:145: if (_XcmsDIConvertColors(&myCCC, pColor,
+HVCGcVC.c:168: retval = _XcmsDIConvertColors(&myCCC, pColor,
+HVCGcVC.c:188: retval = _XcmsDIConvertColors(&myCCC, pColor,
+HVCGcVC.c:254: retval = _XcmsDIConvertColors(&myCCC, pColor,
+Lab.c:270: if (!_XcmsDIConvertColors(ccc, &whitePt,
+Lab.c:373: if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL,
+LabGcC.c:97: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LabGcC.c:99: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LabGcC.c:107: if (_XcmsDIConvertColors(ccc, pColor,
+LabGcC.c:120: retval = _XcmsDIConvertColors(ccc, pColor,
+LabGcL.c:106: if (_XcmsDIConvertColors(&myCCC, pColor,
+LabGcL.c:131: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LabGcL.c:141: if (_XcmsDIConvertColors(ccc, pColor,
+LabGcL.c:151: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LabGcL.c:156: if (_XcmsDIConvertColors(ccc, pColor,
+LabGcL.c:166: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LabGcLC.c:116: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LabGcLC.c:118: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LabGcLC.c:127: if (_XcmsDIConvertColors(&myCCC, pColor,
+LabGcLC.c:152: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LabGcLC.c:215: retval = _XcmsDIConvertColors(&myCCC, pColor,
+Luv.c:269: if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL,
+Luv.c:361: if (!_XcmsDIConvertColors(ccc, &whitePt,
+LuvGcC.c:97: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LuvGcC.c:99: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LuvGcC.c:107: if (_XcmsDIConvertColors(ccc, pColor,
+LuvGcC.c:120: retval = _XcmsDIConvertColors(ccc, pColor,
+LuvGcL.c:106: if (_XcmsDIConvertColors(&myCCC, pColor,
+LuvGcL.c:131: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LuvGcL.c:141: if (_XcmsDIConvertColors(ccc, pColor,
+LuvGcL.c:151: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LuvGcL.c:156: if (_XcmsDIConvertColors(ccc, pColor,
+LuvGcL.c:166: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LuvGcLC.c:116: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LuvGcLC.c:118: _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
+LuvGcLC.c:127: if (_XcmsDIConvertColors(&myCCC, pColor,
+LuvGcLC.c:152: retval = _XcmsDIConvertColors(&myCCC, pColor,
+LuvGcLC.c:215: retval = _XcmsDIConvertColors(&myCCC, pColor,
+uvY.c:289: if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
+uvY.c:398: if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
+xyY.c:288: if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
+Cv.h:82:_XcmsDIConvertColors(
+
+#### _XcmsDeleteCmapRec ####
+cmsCmap.c:315: * _XcmsDeleteCmapRec
+cmsCmap.c:320:_XcmsDeleteCmapRec(
+FreeCmap.c:48: _XcmsDeleteCmapRec(dpy, cmap);
+Cmap.h:8:_XcmsDeleteCmapRec(
+
+#### _XcmsEqualWhitePts ####
+cmsColNm.c:950: if (ccc->whitePtAdjProc && !_XcmsEqualWhitePts(ccc,
+cmsColNm.c:983: if (ccc->whitePtAdjProc && !_XcmsEqualWhitePts(ccc,
+cmsColNm.c:1003: if (ccc->whitePtAdjProc && !_XcmsEqualWhitePts(ccc,
+cmsColNm.c:1014: } else if (_XcmsEqualWhitePts(ccc,
+CvCols.c:309: if ((ccc->whitePtAdjProc != NULL) && !_XcmsEqualWhitePts(ccc,
+CvCols.c:358: * _XcmsEqualWhitePts
+CvCols.c:363:_XcmsEqualWhitePts(XcmsCCC ccc, XcmsColor *pWhitePt1, XcmsColor *pWhitePt2)
+CvCols.c:784: } else if ((ccc->whitePtAdjProc != NULL) && !_XcmsEqualWhitePts(ccc,
+Cv.h:156:_XcmsEqualWhitePts(
+
+#### _XcmsFreeIntensityMaps ####
+cmsInt.c:349: * _XcmsFreeIntensityMaps
+cmsInt.c:354:_XcmsFreeIntensityMaps(
+LRGB.c:674: dpy->free_funcs->intensityMaps = _XcmsFreeIntensityMaps;
+Cv.h:164:_XcmsFreeIntensityMaps(
+Xlibint.h:743: FreeFuncType intensityMaps; /* _XcmsFreeIntensityMaps */
+
+#### _XcmsFreePointerArray ####
+cmsInt.c:94: * _XcmsFreePointerArray
+cmsInt.c:99:_XcmsFreePointerArray(
+cmsInt.c:150: _XcmsFreePointerArray(pap);
+Cv.h:43:_XcmsFreePointerArray(
+
+#### _XcmsGetElement ####
+cmsProp.c:52: * _XcmsGetElement -- get an element value from the property passed
+cmsProp.c:57:_XcmsGetElement(
+LRGB.c:511: *pValue++ = (long)_XcmsGetElement(format_return, &pChar,
+LRGB.c:639: visualID = _XcmsGetElement(format_return, &pChar, &nitems);
+LRGB.c:642: visualID |= _XcmsGetElement(format_return, &pChar, &nitems);
+LRGB.c:677: cType = _XcmsGetElement(format_return, &pChar, &nitems);
+LRGB.c:678: nTables = _XcmsGetElement(format_return, &pChar, &nitems);
+LRGB.c:909: _XcmsGetElement(format, pChar, pCount) + 1;
+LRGB.c:919: pIRec->value = _XcmsGetElement (format, pChar, pCount) * 0x101;
+LRGB.c:921: _XcmsGetElement (format, pChar, pCount) / (XcmsFloat)255.0;
+LRGB.c:926: pIRec->value = _XcmsGetElement (format, pChar, pCount);
+LRGB.c:927: pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
+LRGB.c:933: pIRec->value = _XcmsGetElement (format, pChar, pCount);
+LRGB.c:934: pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
+LRGB.c:970: max_index = _XcmsGetElement(format, pChar, pCount);
+LRGB.c:981: pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
+LRGB.c:988: pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
+LRGB.c:995: pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
+Cv.h:176:_XcmsGetElement(
+
+#### _XcmsGetIntensityMap ####
+CCC.c:146: if ((pIMap = _XcmsGetIntensityMap(dpy, visual)) != NULL) {
+CCC.c:280: if (_XcmsGetIntensityMap(ccc->dpy, ccc->visual) != NULL) {
+cmsInt.c:382: * _XcmsGetIntensityMap
+cmsInt.c:387:_XcmsGetIntensityMap(
+Cv.h:136:_XcmsGetIntensityMap(
+
+#### _XcmsGetProperty ####
+cmsProp.c:98: * _XcmsGetProperty -- Determine the existance of a property
+cmsProp.c:103:_XcmsGetProperty(
+LRGB.c:494: !_XcmsGetProperty (dpy, RootWindow(dpy, screenNumber), MatrixAtom,
+LRGB.c:574: !_XcmsGetProperty (dpy, RootWindow(dpy, screenNumber), CorrectAtom,
+Cv.h:167:_XcmsGetProperty(
+
+#### _XcmsInitDefaultCCCs ####
+CCC.c:200: if (!_XcmsInitDefaultCCCs(dpy)) {
+cmsInt.c:157: * _XcmsInitDefaultCCCs
+cmsInt.c:162:_XcmsInitDefaultCCCs(
+cmsInt.c:303: if (!_XcmsInitDefaultCCCs(dpy)) {
+Cv.h:140:_XcmsInitDefaultCCCs(
+
+#### _XcmsInitScrnInfo ####
+CCC.c:210: * _XcmsInitScrnInfo routine will create the XcmsPerScrnInfo
+CCC.c:214: if (!_XcmsInitScrnInfo(dpy, screenNumber)) {
+CCC.c:237: if (!_XcmsInitScrnInfo(dpy, screenNumber)) {
+cmsInt.c:276: * _XcmsInitScrnInfo
+cmsInt.c:281:_XcmsInitScrnInfo(
+Cv.h:143:_XcmsInitScrnInfo(
+
+#### _XcmsLRGB_InitScrnDefault ####
+cmsInt.c:343: return(_XcmsLRGB_InitScrnDefault(dpy, screenNumber, defaultccc->pPerScrnInfo));
+LRGB.c:1802:_XcmsLRGB_InitScrnDefault(
+Cv.h:159:_XcmsLRGB_InitScrnDefault(
+
+#### _XcmsPushPointerArray ####
+AddDIC.c:142: _XcmsPushPointerArray((XPointer *)_XcmsDIColorSpaces,
+AddSF.c:125: if ((paptmpCS = (XcmsColorSpace **)_XcmsPushPointerArray(
+AddSF.c:137: _XcmsPushPointerArray((XPointer *) _XcmsSCCFuncSets,
+cmsInt.c:115: * _XcmsPushPointerArray
+cmsInt.c:120:_XcmsPushPointerArray(
+Cv.h:46:_XcmsPushPointerArray(
+
+#### _XcmsRGB_prefix ####
+cmsGlobls.c:114:const char _XcmsRGB_prefix[] = "rgb";
+cmsGlobls.c:123: { _XcmsRGB_prefix, XcmsRGBFormat },
+LRGB.c:181: _XcmsRGB_prefix, /* prefix */
+LRGB.c:1337: if (strncmp(spec, _XcmsRGB_prefix, n) != 0) {
+Cv.h:13:extern const char _XcmsRGB_prefix[];
+
+#### _XcmsRGB_to_XColor ####
+cmsAllNCol.c:120: _XcmsRGB_to_XColor(&tmpColor, &XColor_in_out, 1);
+GetColor.c:62: _XcmsRGB_to_XColor(&cmsColor_exact, exact_def, 1);
+LookupCol.c:60: _XcmsRGB_to_XColor(&cmsColor_exact, def, 1);
+ParseCol.c:98: _XcmsRGB_to_XColor(&cmsColor, def, 1);
+SetGetCols.c:131: _XcmsRGB_to_XColor(pColors_in_out, &XColors_in_out, 1);
+SetGetCols.c:262: _XcmsRGB_to_XColor(pColors_in_out, pXColors_in_out, nColors);
+StNColor.c:56: _XcmsRGB_to_XColor(&cmsColor_exact, &scr_def, 1);
+XRGB.c:77: * _XcmsRGB_to_XColor -
+XRGB.c:82:_XcmsRGB_to_XColor(
+Xcmsint.h:185:_XcmsRGB_to_XColor(
+
+#### _XcmsRGBi_prefix ####
+cmsGlobls.c:113:const char _XcmsRGBi_prefix[] = "rgbi";
+cmsGlobls.c:124: { _XcmsRGBi_prefix, XcmsRGBiFormat },
+LRGB.c:168: _XcmsRGBi_prefix, /* prefix */
+LRGB.c:1416: if (strncmp(spec, _XcmsRGBi_prefix, n) != 0) {
+Cv.h:12:extern const char _XcmsRGBi_prefix[];
+
+#### _XcmsRegColorSpaces ####
+cmsGlobls.c:116:XcmsRegColorSpaceEntry _XcmsRegColorSpaces[] = {
+CvCols.c:1021: XcmsRegColorSpaceEntry *pEntry = _XcmsRegColorSpaces;
+Cv.h:36:extern XcmsRegColorSpaceEntry _XcmsRegColorSpaces[];
+
+#### _XcmsRegFormatOfPrefix ####
+AddDIC.c:77: if ((pCS->id = _XcmsRegFormatOfPrefix(pCS->prefix)) != 0) {
+AddSF.c:97: if ((pNewCS->id = _XcmsRegFormatOfPrefix(pNewCS->prefix)) != 0) {
+CvCols.c:1009:_XcmsRegFormatOfPrefix(
+Cv.h:96:_XcmsRegFormatOfPrefix(
+
+#### _XcmsResolveColor ####
+cmsAllNCol.c:99: if ((retval1 = _XcmsResolveColorString(ccc, &colorname,
+cmsColNm.c:831: * _XcmsResolveColorString -
+cmsColNm.c:836:_XcmsResolveColorString (
+cmsLkCol.c:96: if ((retval1 = _XcmsResolveColorString(ccc, &colorname,
+cmsLkCol.c:134: _XcmsResolveColor(ccc, pColor_scrn_return);
+GetColor.c:58: switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
+LookupCol.c:56: switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
+ParseCol.c:93: switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor,
+StNColor.c:54: if (_XcmsResolveColorString(ccc, &name, &cmsColor_exact,
+XRGB.c:145: * _XcmsResolveColor
+XRGB.c:150:_XcmsResolveColor(
+Cv.h:185:_XcmsResolveColor(
+Xcmsint.h:190:_XcmsResolveColorString (
+
+#### _XcmsResolveColorString ####
+cmsAllNCol.c:99: if ((retval1 = _XcmsResolveColorString(ccc, &colorname,
+cmsColNm.c:831: * _XcmsResolveColorString -
+cmsColNm.c:836:_XcmsResolveColorString (
+cmsLkCol.c:96: if ((retval1 = _XcmsResolveColorString(ccc, &colorname,
+GetColor.c:58: switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
+LookupCol.c:56: switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
+ParseCol.c:93: switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor,
+StNColor.c:54: if (_XcmsResolveColorString(ccc, &name, &cmsColor_exact,
+Xcmsint.h:190:_XcmsResolveColorString (
+
+#### _XcmsSCCFuncSets ####
+AddSF.c:82: XcmsFunctionSet **papSCCFuncSets = _XcmsSCCFuncSets;
+AddSF.c:137: _XcmsPushPointerArray((XPointer *) _XcmsSCCFuncSets,
+AddSF.c:139: (XPointer *)_XcmsSCCFuncSetsInit)) == NULL) {
+AddSF.c:142: _XcmsSCCFuncSets = papSCCFuncSets;
+cmsGlobls.c:86:XcmsFunctionSet *_XcmsSCCFuncSetsInit[] = {
+cmsGlobls.c:98:XcmsFunctionSet **_XcmsSCCFuncSets = _XcmsSCCFuncSetsInit;
+cmsInt.c:294: XcmsFunctionSet **papSCCFuncSet = _XcmsSCCFuncSets;
+Cv.h:33:extern XcmsFunctionSet *_XcmsSCCFuncSetsInit[];
+Cv.h:34:extern XcmsFunctionSet **_XcmsSCCFuncSets;
+
+#### _XcmsSCCFuncSetsInit ####
+AddSF.c:139: (XPointer *)_XcmsSCCFuncSetsInit)) == NULL) {
+cmsGlobls.c:86:XcmsFunctionSet *_XcmsSCCFuncSetsInit[] = {
+cmsGlobls.c:98:XcmsFunctionSet **_XcmsSCCFuncSets = _XcmsSCCFuncSetsInit;
+Cv.h:33:extern XcmsFunctionSet *_XcmsSCCFuncSetsInit[];
+
+#### _XcmsSetGetColor ####
+cmsAllCol.c:72: return(_XcmsSetGetColor(XAllocColor, dpy, colormap, pXcmsColor_in_out,
+QuCol.c:76: return(_XcmsSetGetColor(XQueryColor, dpy, colormap,
+QuCols.c:76: return(_XcmsSetGetColors(XQueryColors, dpy, colormap,
+SetGetCols.c:30: * Source for _XcmsSetGetColors()
+SetGetCols.c:61:_XcmsSetGetColor(
+SetGetCols.c:178:_XcmsSetGetColors(
+StCol.c:80: return(_XcmsSetGetColor(XStoreColor, dpy, colormap,
+StCols.c:98: retval = _XcmsSetGetColors (XStoreColors, dpy, colormap,
+Cv.h:105:_XcmsSetGetColor(
+Cv.h:116:_XcmsSetGetColors(
+
+#### _XcmsSetGetColors ####
+QuCols.c:76: return(_XcmsSetGetColors(XQueryColors, dpy, colormap,
+SetGetCols.c:30: * Source for _XcmsSetGetColors()
+SetGetCols.c:178:_XcmsSetGetColors(
+StCols.c:98: retval = _XcmsSetGetColors (XStoreColors, dpy, colormap,
+Cv.h:116:_XcmsSetGetColors(
+
+#### _XcmsSine ####
+cmsTrig.c:244: retval = _XcmsSine (XCMS_HALFPI - x);
+cmsTrig.c:246: retval = _XcmsSine (XCMS_HALFPI + x);
+cmsTrig.c:390: * _XcmsSine double precision sine
+cmsTrig.c:406: * double _XcmsSine (x)
+cmsTrig.c:495:_XcmsSine (double x)
+cmsTrig.c:510: retval = -(_XcmsSine (x - XCMS_PI));
+cmsTrig.c:512: retval = -(_XcmsSine (x + XCMS_PI));
+Xcmsint.h:215:#define XCMS_SIN(x) _XcmsSine(x)
+Xcmsint.h:222:double _XcmsSine(double a);
+
+#### _XcmsSquareRoot ####
+cmsMath.c:102:_XcmsSquareRoot(double a)
+cmsMath.c:107: printf("_XcmsSquareRoot passed in %g\n", a);
+cmsMath.c:136: printf("_XcmsSquareRoot returning %g\n", cur_guess);
+cmsTrig.c:248: retval = _XcmsSquareRoot (1.0 - (x * x));
+cmsTrig.c:560: ai = _XcmsSquareRoot( 1.0 / (1.0 + (x * x)) );
+cmsTrig.c:564: b1 = _XcmsSquareRoot((a1 * bi));
+cmsTrig.c:576: a1 = _XcmsSquareRoot(1 + (x * x));
+Xcmsint.h:216:#define XCMS_SQRT(x) _XcmsSquareRoot(x)
+Xcmsint.h:223:double _XcmsSquareRoot(double a);
+
+#### _XcmsTekHVCQueryMaxVCRGB ####
+HVCGcV.c:140: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
+HVCGcVC.c:158: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
+HVCMnV.c:138: if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, max_vc.spec.TekHVC.H, &max_vc,
+HVCMxC.c:139: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, hue, &max_vc, &rgb_saved)
+HVCMxV.c:138: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, max_vc.spec.TekHVC.H, &max_vc, &rgb_saved)
+HVCMxVC.c:73: * _XcmsTekHVCQueryMaxVCRGB - Compute maximum value/chroma.
+HVCMxVC.c:78:_XcmsTekHVCQueryMaxVCRGB(
+HVCMxVC.c:233: return(_XcmsTekHVCQueryMaxVCRGB (&myCCC, hue, pColor_return,
+HVCMxVs.c:135: if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, pColor_in_out->spec.TekHVC.H,
+Cv.h:61:_XcmsTekHVCQueryMaxVCRGB(
+
+#### _XcmsTekHVC_CheckModify ####
+HVC.c:579: * _XcmsTekHVC_CheckModify
+HVC.c:584:_XcmsTekHVC_CheckModify(
+HVCGcV.c:133: if (!_XcmsTekHVC_CheckModify (pColor)) {
+HVCGcV.c:150: if (!_XcmsTekHVC_CheckModify (pColor)) {
+HVCGcV.c:171: if (!_XcmsTekHVC_CheckModify (pColor)) {
+HVCGcVC.c:151: if (!_XcmsTekHVC_CheckModify(pColor)) {
+HVCGcVC.c:221: if (!_XcmsTekHVC_CheckModify(pColor)) {
+HVCGcVC.c:251: if (!_XcmsTekHVC_CheckModify(pColor)) {
+HVCMnV.c:131: if (!_XcmsTekHVC_CheckModify (&tmp)) {
+HVCMnV.c:157: if (_XcmsTekHVC_CheckModify (&tmp)) {
+HVCMxC.c:133: if (!_XcmsTekHVC_CheckModify(&tmp)) {
+HVCMxC.c:150: if (_XcmsTekHVC_CheckModify (&tmp)) {
+HVCMxC.c:189: if (_XcmsTekHVC_CheckModify (&tmp)) {
+HVCMxC.c:214: if (_XcmsTekHVC_CheckModify (&tmp)) {
+HVCMxV.c:130: if (!_XcmsTekHVC_CheckModify (&tmp)) {
+HVCMxV.c:218: if (!_XcmsTekHVC_CheckModify(&tmp)) {
+Cv.h:57:_XcmsTekHVC_CheckModify(
+
+#### _XcmsTekHVC_prefix ####
+cmsGlobls.c:109:const char _XcmsTekHVC_prefix[] = "tekhvc";
+cmsGlobls.c:122: { _XcmsTekHVC_prefix, XcmsTekHVCFormat },
+HVC.c:134: _XcmsTekHVC_prefix, /* prefix */
+HVC.c:190: if (strncmp(spec, _XcmsTekHVC_prefix, n) != 0) {
+Cv.h:11:extern const char _XcmsTekHVC_prefix[];
+
+#### _XcmsUnresolveColor ####
+cmsLkCol.c:132: _XcmsUnresolveColor(ccc, pColor_scrn_return);
+XRGB.c:191: * _XcmsUnresolveColor
+XRGB.c:196:_XcmsUnresolveColor(
+Cv.h:181:_XcmsUnresolveColor(
+
+#### _Xdebug ####
+globals.c:80:ZEROINIT (int, _Xdebug, 0);
+OpenDis.c:735: (void) XSynchronize(dpy, _Xdebug);
+XlibInt.c:4190:#undef _Xdebug
+XlibInt.c:4191:int _Xdebug = 0;
+XlibInt.c:4192:int *_Xdebug_p = &_Xdebug;
+Xlib.h:1390:#define _Xdebug (*_Xdebug_p)
+Xlib.h:1393:extern int _Xdebug;
+
+#### _Xevent_to_mask ####
+ChkMaskEv.c:32:extern long const _Xevent_to_mask[];
+ChkMaskEv.c:64: (_Xevent_to_mask[qelt->event.type] & mask) &&
+ChkWinEv.c:32:extern long const _Xevent_to_mask[];
+ChkWinEv.c:65: (_Xevent_to_mask[qelt->event.type] & mask) &&
+evtomask.c:36:long const _Xevent_to_mask [LASTEvent] = {
+FilterEv.c:66:extern long const _Xevent_to_mask[];
+FilterEv.c:89: mask = _Xevent_to_mask[ev->type];
+MaskEvent.c:32:extern long const _Xevent_to_mask[];
+MaskEvent.c:63: (_Xevent_to_mask[qelt->event.type] & mask) &&
+WinEvent.c:32:extern long const _Xevent_to_mask[];
+WinEvent.c:67: (_Xevent_to_mask[qelt->event.type] & mask) &&
+
+#### _Xglobal_lock ####
+ConnDis.c:916: _XLockMutex(_Xglobal_lock);
+ConnDis.c:922: _XUnlockMutex(_Xglobal_lock);
+ConnDis.c:946: _XLockMutex(_Xglobal_lock);
+ConnDis.c:963: _XUnlockMutex(_Xglobal_lock);
+ConnDis.c:1390: _XLockMutex(_Xglobal_lock);
+ConnDis.c:1392: _XUnlockMutex(_Xglobal_lock);
+ConnDis.c:1424: _XLockMutex(_Xglobal_lock);
+ConnDis.c:1428: _XUnlockMutex(_Xglobal_lock);
+CrGlCur.c:148: _XLockMutex (_Xglobal_lock); \
+CrGlCur.c:161: _XUnlockMutex (_Xglobal_lock); \
+ErrDes.c:174: _XLockMutex(_Xglobal_lock);
+ErrDes.c:180: _XUnlockMutex(_Xglobal_lock);
+ErrHndlr.c:43: _XLockMutex(_Xglobal_lock);
+ErrHndlr.c:55: _XUnlockMutex(_Xglobal_lock);
+ErrHndlr.c:71: _XLockMutex(_Xglobal_lock);
+ErrHndlr.c:83: _XUnlockMutex(_Xglobal_lock);
+locking.c:574: if (_Xglobal_lock)
+locking.c:597: _Xglobal_lock = &global_lock;
+locking.c:598: xmutex_init(_Xglobal_lock->lock);
+locking.c:599: xmutex_set_name(_Xglobal_lock->lock, "Xlib global");
+Quarks.c:144: _XLockMutex(_Xglobal_lock);
+Quarks.c:146: _XUnlockMutex(_Xglobal_lock);
+Quarks.c:251: _XLockMutex(_Xglobal_lock);
+Quarks.c:277: _XUnlockMutex(_Xglobal_lock);
+Quarks.c:285: _XUnlockMutex(_Xglobal_lock);
+Quarks.c:338: _XUnlockMutex(_Xglobal_lock);
+Quarks.c:341: _XUnlockMutex(_Xglobal_lock);
+Quarks.c:381: _XLockMutex(_Xglobal_lock);
+Quarks.c:386: _XUnlockMutex(_Xglobal_lock);
+Quarks.c:394: _XLockMutex(_Xglobal_lock);
+Quarks.c:406: _XUnlockMutex(_Xglobal_lock);
+XlibInt.c:82:LockInfoPtr _Xglobal_lock = NULL;
+XlibInt.c:4207:LockInfoPtr *_Xglobal_lock_p = &_Xglobal_lock;
+Xlibint.h:307:#define _Xglobal_lock (*_Xglobal_lock_p)
+Xlibint.h:332:extern LockInfoPtr _Xglobal_lock;
+
+#### _Xi18n_lock ####
+lcWrap.c:71:LockInfoPtr _Xi18n_lock;
+lcWrap.c:273: _XLockMutex(_Xi18n_lock);
+lcWrap.c:312: _XUnlockMutex(_Xi18n_lock);
+locking.c:68:extern LockInfoPtr _Xi18n_lock;
+locking.c:600: _Xi18n_lock = &i18n_lock;
+locking.c:601: xmutex_init(_Xi18n_lock->lock);
+locking.c:602: xmutex_set_name(_Xi18n_lock->lock, "Xlib i18n");
+
+#### _XimCbDispatch ####
+imCallbk.c:182:_XimCbDispatch(Xim xim,
+imDefIm.c:888: _XimRegisterDispatcher(im, _XimCbDispatch, (XPointer)im);
+Ximint.h:859:extern Bool _XimCbDispatch(
+
+#### _XimCheckCreateICValues ####
+imDefIc.c:1510: if (!(_XimCheckCreateICValues(ic->private.proto.ic_resources,
+imRm.c:2218:_XimCheckCreateICValues(
+Ximint.h:219:extern Bool _XimCheckCreateICValues(
+
+#### _XimCheckDataSize ####
+imDefIm.c:67:_XimCheckDataSize(
+Ximint.h:674:extern int _XimCheckDataSize(
+
+#### _XimCheckICMode ####
+imRmAttr.c:118: check = _XimCheckICMode(res, mode);
+imRmAttr.c:160: check = _XimCheckICMode(res, mode);
+imRmAttr.c:526: check = _XimCheckICMode(res, mode);
+imRmAttr.c:1064: check = _XimCheckICMode(res, mode);
+imRmAttr.c:1110: check = _XimCheckICMode(res, mode);
+imRm.c:2598: _XimCheckICMode(
+imRm.c:2701: check = _XimCheckICMode(res, mode);
+imRm.c:2895: check = _XimCheckICMode(res, mode);
+imRm.c:3056: check = _XimCheckICMode(res, mode);
+Ximint.h:246:extern int _XimCheckICMode(
+
+#### _XimCheckIMMode ####
+imRmAttr.c:58: check = _XimCheckIMMode(res, mode);
+imRmAttr.c:92: check = _XimCheckIMMode(res, mode);
+imRmAttr.c:444: check = _XimCheckIMMode(res, mode);
+imRmAttr.c:789: check = _XimCheckIMMode(res, mode);
+imRmAttr.c:827: check = _XimCheckIMMode(res, mode);
+imRm.c:2271: check = _XimCheckIMMode(res, XIM_SETIMVALUES);
+imRm.c:2301: check = _XimCheckIMMode(res, XIM_GETIMVALUES);
+imRm.c:2365: _XimCheckIMMode(
+imRm.c:2637: check = _XimCheckIMMode(res, XIM_SETIMDEFAULTS);
+Ximint.h:241:extern int _XimCheckIMMode(
+
+#### _XimCheckIfLocalProcessing ####
+imImSw.c:51: { _XimCheckIfLocalProcessing, _XimLocalOpenIM, _XimLocalIMFree },
+imLcIm.c:97:_XimCheckIfLocalProcessing(Xim im)
+Ximint.h:331:extern Bool _XimCheckIfLocalProcessing(
+
+#### _XimCheckIfThaiProcessing ####
+imImSw.c:52: { _XimCheckIfThaiProcessing, _XimThaiOpenIM, _XimThaiIMFree },
+imThaiIm.c:62:_XimCheckIfThaiProcessing(Xim im)
+Ximint.h:335:extern Bool _XimCheckIfThaiProcessing(
+
+#### _XimCheckLocalInputStyle ####
+imLcIc.c:169: if(_XimCheckLocalInputStyle(ic, (XPointer)&ic_values, values,
+imRm.c:2937:_XimCheckLocalInputStyle(
+imThaiIc.c:201: if(_XimCheckLocalInputStyle(ic, (XPointer)&ic_values, values,
+Ximint.h:280:extern Bool _XimCheckLocalInputStyle(
+
+#### _XimCommitCallback ####
+imDefIm.c:880: _XimCommitCallback, (XPointer)im);
+imDefLkup.c:734:_XimCommitCallback(
+Ximint.h:517:extern Bool _XimCommitCallback(
+
+#### _XimConnect ####
+imDefFlt.c:157: if (_XimConnectServer(im)) {
+imDefFlt.c:218: if (_XimConnectServer(im)) {
+imDefIc.c:320: if (_XimConnectServer(im)) {
+imDefIc.c:697: if (_XimConnectServer(im)) {
+imDefIc.c:947: if (_XimConnectServer(im)) {
+imDefIc.c:992: if (_XimConnectServer(im)) {
+imDefIc.c:1444: if (!_XimConnectServer(im)) {
+imDefIm.c:559:_XimConnection(
+imDefIm.c:577: if(!(_XimConnect(im))) /* Transport Connect */
+imDefIm.c:1282: if (!_XimConnectServer(im)) {
+imDefIm.c:1444: if (!_XimConnectServer(im)) {
+imDefIm.c:1934:_XimConnectServer(
+imDefIm.c:1943: if (_XimPreConnect(im) && _XimConnection(im)
+imDefIm.c:2029: if (_XimConnection(im) && _XimOpen(im) && _XimEncodingNegotiation(im)) {
+imTransR.c:73:_XimConnect(Xim im)
+Ximint.h:814:extern Bool _XimConnect(
+Ximint.h:941:extern Bool _XimConnectServer(
+
+#### _XimDecodeICATTRIBUTE ####
+imDefIc.c:414: decode_name = _XimDecodeICATTRIBUTE(ic, ic->private.proto.ic_resources,
+imRmAttr.c:492:_XimDecodeICATTRIBUTE(
+imRmAttr.c:548: if ((name = _XimDecodeICATTRIBUTE(ic, res_list, res_num,
+imRmAttr.c:553: if ((name = _XimDecodeICATTRIBUTE(ic, res_list, res_num,
+Ximint.h:460:extern char * _XimDecodeICATTRIBUTE(
+
+#### _XimDecodeIMATTRIBUTE ####
+imDefIm.c:1517: decode_name = _XimDecodeIMATTRIBUTE(im, im->core.im_resources,
+imRmAttr.c:419:_XimDecodeIMATTRIBUTE(
+Ximint.h:450:extern char * _XimDecodeIMATTRIBUTE(
+
+#### _XimDecodeLocalICAttr ####
+imRmAttr.c:485: if (!_XimDecodeLocalICAttr(res, (XPointer)&ic_values, arg->value, mode))
+imRmAttr.c:1314: if (!_XimDecodeLocalICAttr(res, top,(XPointer)&value, mode))
+imRm.c:2999:_XimDecodeLocalICAttr(
+imRm.c:3063: if(_XimDecodeLocalICAttr(res, top, p->value, mode) == False) {
+Ximint.h:295:extern Bool _XimDecodeLocalICAttr(
+
+#### _XimDecodeLocalIMAttr ####
+imRmAttr.c:415: return _XimDecodeLocalIMAttr(res, (XPointer)&im_values, arg->value);
+imRmAttr.c:896: if (!_XimDecodeLocalIMAttr(res, top, value))
+imRm.c:2308: if(!_XimDecodeLocalIMAttr(res, top, p->value)) {
+imRm.c:2989:_XimDecodeLocalIMAttr(
+Ximint.h:289:extern Bool _XimDecodeLocalIMAttr(
+
+#### _XimDestroyIMStructureList ####
+imDefIm.c:1136: _XimDestroyIMStructureList(im);
+imInt.c:76:_XimDestroyIMStructureList(Xim im)
+imLcIm.c:231: _XimDestroyIMStructureList(im);
+Ximint.h:426:extern void _XimDestroyIMStructureList(
+
+#### _XimDispatchInit ####
+imDefIm.c:580: if(!_XimDispatchInit(im))
+imDispch.c:99:_XimDispatchInit(Xim im)
+Ximint.h:413:extern Bool _XimDispatchInit(
+
+#### _XimEncodeICATTRIBUTE ####
+imDefIc.c:720: if ((name = _XimEncodeICATTRIBUTE(ic, ic->private.proto.ic_resources,
+imDefIc.c:1482: if (_XimEncodeICATTRIBUTE(ic, ic->private.proto.ic_resources,
+imRmAttr.c:1074:_XimEncodeICATTRIBUTE(
+imRmAttr.c:1132: if ((name = _XimEncodeICATTRIBUTE(ic, res_list, res_num,
+imRmAttr.c:1142: if ((name = _XimEncodeICATTRIBUTE(ic, res_list, res_num,
+Ximint.h:592:extern char * _XimEncodeICATTRIBUTE(
+
+#### _XimEncodeIMATTRIBUTE ####
+imDefIm.c:1299: if ((name = _XimEncodeIMATTRIBUTE(im, im->core.im_resources,
+imRmAttr.c:799:_XimEncodeIMATTRIBUTE(
+Ximint.h:579:extern char * _XimEncodeIMATTRIBUTE(
+
+#### _XimEncodeLocalICAttr ####
+imRmAttr.c:1070: return _XimEncodeLocalICAttr(ic, res, top, arg, mode);
+imRmAttr.c:1155: if (!(_XimEncodeLocalICAttr(ic, res, top, p, mode)))
+imRm.c:2751:_XimEncodeLocalICAttr(
+imRm.c:2912: if(_XimEncodeLocalICAttr(ic, res, top, p, mode) == False) {
+imRm.c:2954: if(!_XimEncodeLocalICAttr(ic, res, top, p, 0)) {
+Ximint.h:272:extern Bool _XimEncodeLocalICAttr(
+
+#### _XimEncodeLocalIMAttr ####
+imRmAttr.c:795: return _XimEncodeLocalIMAttr(res, top, arg->value);
+imRmAttr.c:833: if (!(_XimEncodeLocalIMAttr(res, top, p->value)))
+imRm.c:2278: if(!_XimEncodeLocalIMAttr(res, top, p->value)) {
+imRm.c:2741:_XimEncodeLocalIMAttr(
+Ximint.h:266:extern Bool _XimEncodeLocalIMAttr(
+
+#### _XimError ####
+imCallbk.c:311: _XimError(im, ic,
+imCallbk.c:384: _XimError(im, ic,
+imCallbk.c:615: _XimError(im, ic,
+imDefIm.c:583: _XimRegProtoIntrCallback(im, XIM_ERROR, 0, _XimErrorCallback, (XPointer)im);
+imDefLkup.c:421: _XimError(im, 0, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
+imDefLkup.c:438: _XimError(im, 0, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
+imDefLkup.c:629: _XimError(im, ic, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
+imDefLkup.c:651: _XimError(im, ic, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
+imDefLkup.c:700: _XimError(im, ic, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
+imDefLkup.c:764:_XimErrorCallback(
+imDefLkup.c:793:_XimError(
+imTransR.c:243: _XimError(im, 0, XIM_BadProtocol, (INT16)0, (CARD16)0, (char *)NULL);
+imTransR.c:302: _XimError(im, 0, XIM_BadProtocol, (INT16)0, (CARD16)0, (char *)NULL);
+Ximint.h:480:extern Bool _XimErrorCallback(
+Ximint.h:487:extern Bool _XimError(
+
+#### _XimErrorCallback ####
+imDefIm.c:583: _XimRegProtoIntrCallback(im, XIM_ERROR, 0, _XimErrorCallback, (XPointer)im);
+imDefLkup.c:764:_XimErrorCallback(
+Ximint.h:480:extern Bool _XimErrorCallback(
+
+#### _XimExtension ####
+imDefIm.c:884: if(!_XimExtension(im))
+imExten.c:416:_XimExtension(
+Ximint.h:422:extern Bool _XimExtension(
+
+#### _XimFilterWaitEvent ####
+imTrans.c:208: return _XimFilterWaitEvent(im);
+imTransR.c:268:_XimFilterWaitEvent(Xim im)
+imTrX.c:124: ret = _XimFilterWaitEvent(im);
+Ximint.h:843:extern Bool _XimFilterWaitEvent(
+
+#### _XimFlush ####
+imCallbk.c:89:#define _XimFlushData(im) im->private.proto.flush((im))
+imCallbk.c:358: _XimFlushData(im);
+imCallbk.c:409: _XimFlushData(im);
+imCallbk.c:639: _XimFlushData(im);
+imDefIc.c:192: _XimFlush(im);
+imDefIc.c:376: _XimFlush(im);
+imDefIc.c:773: _XimFlush(im);
+imDefIc.c:912: _XimFlush(im);
+imDefIc.c:969: _XimFlush(im);
+imDefIc.c:1014: _XimFlush(im);
+imDefIc.c:1079: _XimFlush(im);
+imDefIc.c:1527: _XimFlush(im);
+imDefIm.c:541: _XimFlush(im);
+imDefIm.c:609: _XimFlush(im);
+imDefIm.c:755: _XimFlush(im);
+imDefIm.c:823: _XimFlush(im);
+imDefIm.c:942: _XimFlush(im);
+imDefIm.c:1343: _XimFlush(im);
+imDefIm.c:1485: _XimFlush(im);
+imDefIm.c:1748: _XimFlush(im);
+imDefIm.c:1873: _XimFlush(im);
+imDefLkup.c:154: _XimFlush(im);
+imDefLkup.c:207: _XimFlush(im);
+imDefLkup.c:292: _XimFlush(im);
+imDefLkup.c:538: _XimFlush(im);
+imDefLkup.c:832: _XimFlush(im);
+imExten.c:262: _XimFlush(im);
+imExten.c:457: _XimFlush(im);
+imExten.c:550: _XimFlush(im);
+imTransR.c:261:_XimFlush(Xim im)
+Ximint.h:839:extern void _XimFlush(
+
+#### _XimForwardEvent ####
+imDefFlt.c:182: if (_XimForwardEvent(ic, (XEvent *)ev,
+imDefFlt.c:243: if (_XimForwardEvent(ic, (XEvent *)ev,
+imDefIm.c:878: _XimForwardEventCallback, (XPointer)im);
+imDefLkup.c:256:_XimForwardEventCore(
+imDefLkup.c:330:_XimForwardEvent(
+imDefLkup.c:340: return _XimForwardEventCore(ic, ev, sync);
+imDefLkup.c:362:_XimForwardEventRecv(
+imDefLkup.c:381:_XimForwardEventCallback(
+imDefLkup.c:395: (void)_XimForwardEventRecv(im, ic, (XPointer)&buf_s[2]);
+Ximint.h:510:extern Bool _XimForwardEventCallback(
+Ximint.h:565:extern Bool _XimForwardEvent(
+
+#### _XimForwardEventCallback ####
+imDefIm.c:878: _XimForwardEventCallback, (XPointer)im);
+imDefLkup.c:381:_XimForwardEventCallback(
+Ximint.h:510:extern Bool _XimForwardEventCallback(
+
+#### _XimFreeCommitInfo ####
+imDefIc.c:857: _XimFreeCommitInfo(ic);
+imDefIc.c:1166: _XimFreeCommitInfo( ic );
+imDefIc.c:1224: _XimFreeCommitInfo( ic );
+imDefIc.c:1282: _XimFreeCommitInfo( ic );
+imDefLkup.c:611:_XimFreeCommitInfo(
+Ximint.h:810:extern void _XimFreeCommitInfo(
+
+#### _XimFreeProtoIntrCallback ####
+imDefIm.c:989: _XimFreeProtoIntrCallback(im);
+imDispch.c:64:_XimFreeProtoIntrCallback(Xim im)
+Ximint.h:531:extern void _XimFreeProtoIntrCallback(
+
+#### _XimFreeTransIntrCallback ####
+imTrans.c:133: _XimFreeTransIntrCallback(im);
+imTrans.c:168:_XimFreeTransIntrCallback(
+XimTrans.h:102:extern void _XimFreeTransIntrCallback(
+
+#### _XimGetAttributeID ####
+imDefIm.c:854: if (!(_XimGetAttributeID(im, &buf_s[1]))) {
+imRmAttr.c:1405:_XimGetAttributeID(
+Ximint.h:417:extern Bool _XimGetAttributeID(
+
+#### _XimGetCharCode ####
+imConv.c:81: * This converter is needed for _XimGetCharCode subroutine.
+imConv.c:108:_XimGetCharCode (
+XKBCvt.c:130: return _XimGetCharCode(priv, keysym, (unsigned char *) buf, nbytes);
+Ximint.h:188:int _XimGetCharCode (
+
+#### _XimGetCurrentICValues ####
+imDefIc.c:144: _XimGetCurrentICValues(ic, &ic_values);
+imDefIc.c:254: _XimGetCurrentICValues(ic, &ic_values);
+imDefIc.c:621: _XimGetCurrentICValues(ic, &ic_values);
+imDefIc.c:711: _XimGetCurrentICValues(ic, &ic_values);
+imDefIc.c:1337: _XimGetCurrentICValues(ic, &ic_values);
+imDefIc.c:1474: _XimGetCurrentICValues(ic, &ic_values);
+imLcGIc.c:42: _XimGetCurrentICValues(ic, &ic_values);
+imLcSIc.c:47: _XimGetCurrentICValues(ic, &ic_values);
+imRmAttr.c:484: _XimGetCurrentICValues(ic, &ic_values);
+imRm.c:3098:_XimGetCurrentICValues(Xic ic, XimDefICValues *ic_values)
+Ximint.h:312:extern void _XimGetCurrentICValues(
+
+#### _XimGetCurrentIMValues ####
+imDefIm.c:1215: _XimGetCurrentIMValues(im, &im_values);
+imDefIm.c:1291: _XimGetCurrentIMValues(im, &im_values);
+imDefIm.c:1387: _XimGetCurrentIMValues(im, &im_values);
+imDefIm.c:1822: _XimGetCurrentIMValues(im, &im_values);
+imDefIm.c:1974: _XimGetCurrentIMValues(im, &im_values);
+imLcIm.c:243: _XimGetCurrentIMValues(im, &im_values);
+imLcIm.c:257: _XimGetCurrentIMValues(im, &im_values);
+imLcIm.c:657: _XimGetCurrentIMValues(im, &im_values);
+imRmAttr.c:414: _XimGetCurrentIMValues(im, &im_values);
+imRm.c:3072:_XimGetCurrentIMValues(Xim im, XimDefIMValues *im_values)
+imThaiIm.c:99: _XimGetCurrentIMValues(im, &im_values);
+Ximint.h:302:extern void _XimGetCurrentIMValues(
+
+#### _XimGetICValueData ####
+imDefIc.c:255: return _XimGetICValueData(ic, (XPointer)&ic_values,
+imLcGIc.c:43: return(_XimGetICValueData(ic, (XPointer)&ic_values,
+imRm.c:3023:_XimGetICValueData(Xic ic, XPointer top, XIMResourceList res_list,
+imRm.c:3042: if((name = _XimGetICValueData(ic,
+imRm.c:3049: if((name = _XimGetICValueData(ic,
+Ximint.h:389:extern char * _XimGetICValueData(
+
+#### _XimGetIMValueData ####
+imDefIm.c:1388: return(_XimGetIMValueData(im, (XPointer)&im_values, arg,
+imLcIm.c:244: return(_XimGetIMValueData(im, (XPointer)&im_values, values,
+imRm.c:2286:_XimGetIMValueData(
+Ximint.h:371:extern char * _XimGetIMValueData(
+
+#### _XimGetLocaleCode ####
+imConv.c:84:_XimGetLocaleCode (
+XKBCvt.c:200: cvt_rtrn->KSToMBPriv = _XimGetLocaleCode(encoding_name);
+Ximint.h:184:XPointer _XimGetLocaleCode (
+
+#### _XimGetMyEndian ####
+imDefIm.c:97:_XimGetMyEndian(void)
+imDefIm.c:591: buf_b[0] = _XimGetMyEndian();
+imLcIm.c:354: sprintf (*res, "%s/%c%d_%03x_%08x_%08x", dir, _XimGetMyEndian(),
+imLcIm.c:357: sprintf (*res, "%s%c%d_%03x_%08x_%08x", dir, _XimGetMyEndian(),
+Ximint.h:670:extern char _XimGetMyEndian(
+
+#### _XimGetResourceListRec ####
+imRmAttr.c:42: return _XimGetResourceListRec(res_list, res_num, XNSeparatorofNestedList);
+imRmAttr.c:54: if (!(res = _XimGetResourceListRec(im->private.proto.im_inner_resources,
+imRmAttr.c:86: if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
+imRmAttr.c:114: if (!(res = _XimGetResourceListRec(ic->private.proto.ic_inner_resources,
+imRmAttr.c:153: if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
+imRmAttr.c:410: if (!(res = _XimGetResourceListRec(im->private.proto.im_inner_resources,
+imRmAttr.c:438: if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
+imRmAttr.c:480: if (!(res = _XimGetResourceListRec(ic->private.proto.ic_inner_resources,
+imRmAttr.c:520: if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
+imRmAttr.c:785: if (!(res = _XimGetResourceListRec(im->private.proto.im_inner_resources,
+imRmAttr.c:821: if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
+imRmAttr.c:892: if (!(res = _XimGetResourceListRecByQuark(res_list,
+imRmAttr.c:1060: if (!(res = _XimGetResourceListRec(ic->private.proto.ic_inner_resources,
+imRmAttr.c:1104: if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
+imRmAttr.c:1310: if (!(res = _XimGetResourceListRecByQuark(res_list,
+imRm.c:2202:_XimGetResourceListRecByMode(
+imRm.c:2222: if (!_XimGetResourceListRecByMode(res_list, list_num, XIM_MODE_IC_CREATE)) {
+imRm.c:2229:_XimGetResourceListRecByQuark(
+imRm.c:2245:_XimGetResourceListRec(
+imRm.c:2252: return _XimGetResourceListRecByQuark(res_list, list_num, quark);
+imRm.c:2268: if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
+imRm.c:2298: if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
+imRm.c:2325: if(!(res = _XimGetResourceListRecByQuark(res_list,
+imRm.c:2415: if(!(res = _XimGetResourceListRecByQuark(res_list,
+imRm.c:2632: if((res = _XimGetResourceListRecByQuark( res_list, list_num,
+imRm.c:2696: if(!(res = _XimGetResourceListRecByQuark(res_list, list_num,
+imRm.c:2876: if((res = _XimGetResourceListRec(res_list, list_num,
+imRm.c:2951: if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
+imRm.c:3037: if((res = _XimGetResourceListRec(res_list, list_num,
+Ximint.h:224:extern XIMResourceList _XimGetResourceListRec(
+Ximint.h:873:extern XIMResourceList _XimGetResourceListRecByQuark(
+
+#### _XimGetResourceListRecByQuark ####
+imRmAttr.c:892: if (!(res = _XimGetResourceListRecByQuark(res_list,
+imRmAttr.c:1310: if (!(res = _XimGetResourceListRecByQuark(res_list,
+imRm.c:2229:_XimGetResourceListRecByQuark(
+imRm.c:2252: return _XimGetResourceListRecByQuark(res_list, list_num, quark);
+imRm.c:2325: if(!(res = _XimGetResourceListRecByQuark(res_list,
+imRm.c:2415: if(!(res = _XimGetResourceListRecByQuark(res_list,
+imRm.c:2632: if((res = _XimGetResourceListRecByQuark( res_list, list_num,
+imRm.c:2696: if(!(res = _XimGetResourceListRecByQuark(res_list, list_num,
+Ximint.h:873:extern XIMResourceList _XimGetResourceListRecByQuark(
+
+#### _XimGetWindowEventmask ####
+imDefLkup.c:463:_XimGetWindowEventmask(
+imDefLkup.c:521: EVENTMASK mask = _XimGetWindowEventmask(ic);
+imExten.c:96: EVENTMASK select_mask = _XimGetWindowEventmask(ic);
+Ximint.h:777:extern EVENTMASK _XimGetWindowEventmask(
+
+#### _XimICOfXICID ####
+imCallbk.c:193: Xic ic = _XimICOfXICID(im, icid);
+imDefLkup.c:38:_XimICOfXICID(
+imDefLkup.c:91: ic = _XimICOfXICID(im, icid);
+imDefLkup.c:236: && (ic = _XimICOfXICID(im, icid))) {
+imDefLkup.c:394: && (ic = _XimICOfXICID(im, icid))) {
+imDefLkup.c:747: && (ic = _XimICOfXICID(im, icid))) {
+imDefLkup.c:784: if (!(ic = _XimICOfXICID(im, icid)))
+imExten.c:130: && (ic = _XimICOfXICID(im, icid))) {
+imExten.c:181: && (ic = _XimICOfXICID(im, icid))) {
+Ximint.h:781:extern Xic _XimICOfXICID(
+
+#### _XimImSportRec ####
+imImSw.c:50:XimImsportSW _XimImSportRec[] = {
+imInt.c:228: if(_XimImSportRec[i].checkprocessing(im)) {
+imInt.c:229: if(!(_XimImSportRec[i].im_open(im)))
+imInt.c:238: _XimImSportRec[i].im_free(im);
+XimImSw.h:44:extern XimImsportSW _XimImSportRec[];
+
+#### _XimInitialResourceInfo ####
+imDefIm.c:2020: _XimInitialResourceInfo();
+imLcIm.c:645: _XimInitialResourceInfo();
+imRm.c:3200:_XimInitialResourceInfo(void)
+imThaiIm.c:87: _XimInitialResourceInfo();
+Ximint.h:322:extern void _XimInitialResourceInfo(
+
+#### _XimLcctstombs ####
+imLcIm.c:631: _XimLcctstombs, /* ctstombs */
+imLcLkup.c:341:_XimLcctstombs(XIM xim, char *from, int from_len,
+imThaiIm.c:54: _XimLcctstombs, /* ctstombs */
+Ximint.h:643:extern int _XimLcctstombs(
+
+#### _XimLcctstoutf8 ####
+imLcIm.c:633: _XimLcctstoutf8 /* ctstoutf8 */
+imLcLkup.c:412:_XimLcctstoutf8(XIM xim, char *from, int from_len,
+imThaiIm.c:56: _XimLcctstoutf8 /* ctstoutf8 */
+Ximint.h:661:extern int _XimLcctstoutf8(
+
+#### _XimLcctstowcs ####
+imLcIm.c:632: _XimLcctstowcs, /* ctstowcs */
+imLcLkup.c:349:_XimLcctstowcs(XIM xim, char *from, int from_len,
+imThaiIm.c:55: _XimLcctstowcs, /* ctstowcs */
+Ximint.h:652:extern int _XimLcctstowcs(
+
+#### _XimLocalCreateIC ####
+imLcIc.c:136:_XimLocalCreateIC(
+imLcIm.c:630: _XimLocalCreateIC, /* create_ic */
+Ximint.h:408:extern XIC _XimLocalCreateIC(
+
+#### _XimLocalFilter ####
+imLcFlt.c:41:_XimLocalFilter(Display *d, Window w, XEvent *ev, XPointer client_data)
+imLcIc.c:48: ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
+imLcIc.c:63: ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
+imLcIc.c:89: _XimLocalFilter, (XPointer)ic);
+imRm.c:2791: KeyPress, KeyRelease, _XimLocalFilter, (XPointer)ic);
+imRm.c:2797: ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
+imRm.c:2803: _XimLocalFilter, (XPointer)ic);
+Ximint.h:866:extern Bool _XimLocalFilter(
+
+#### _XimLocalGetICValues ####
+imLcGIc.c:37:_XimLocalGetICValues(XIC xic, XIMArg *values)
+imLcIc.c:126: _XimLocalGetICValues, /* get_values */
+imThaiIc.c:141: _XimLocalGetICValues, /* get_values */
+Ximint.h:888:extern char * _XimLocalGetICValues(
+
+#### _XimLocalGetIMValues ####
+imLcIm.c:236:_XimLocalGetIMValues(
+imLcIm.c:629: _XimLocalGetIMValues, /* get_values */
+imThaiIm.c:52: _XimLocalGetIMValues, /* get_values */
+Ximint.h:403:extern char * _XimLocalGetIMValues(
+
+#### _XimLocalIMFree ####
+imImSw.c:51: { _XimCheckIfLocalProcessing, _XimLocalOpenIM, _XimLocalIMFree },
+imLcIm.c:149:_XimLocalIMFree(
+imLcIm.c:230: _XimLocalIMFree(im);
+imLcIm.c:709: _XimLocalIMFree(im);
+Ximint.h:351:extern void _XimLocalIMFree(
+
+#### _XimLocalMbLookupString ####
+imLcIc.c:130: _XimLocalMbLookupString, /* mb_lookup_string */
+imLcLkup.c:47:_XimLocalMbLookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes,
+imThaiIc.c:145: _XimLocalMbLookupString, /* mb_lookup_string */
+Ximint.h:893:extern int _XimLocalMbLookupString(
+
+#### _XimLocalOpenIM ####
+imImSw.c:51: { _XimCheckIfLocalProcessing, _XimLocalOpenIM, _XimLocalIMFree },
+imLcIm.c:637:_XimLocalOpenIM(
+Ximint.h:339:extern Bool _XimLocalOpenIM(
+
+#### _XimLocalSetICValues ####
+imLcIc.c:125: _XimLocalSetICValues, /* set_values */
+imLcSIc.c:41:_XimLocalSetICValues(XIC xic, XIMArg *values)
+imThaiIc.c:140: _XimLocalSetICValues, /* set_values */
+Ximint.h:883:extern char *_XimLocalSetICValues(
+
+#### _XimLocalSetIMValues ####
+imLcIm.c:249:_XimLocalSetIMValues(
+imLcIm.c:628: _XimLocalSetIMValues, /* set_values */
+imThaiIm.c:51: _XimLocalSetIMValues, /* set_values */
+Ximint.h:398:extern char * _XimLocalSetIMValues(
+
+#### _XimLocalUtf8LookupString ####
+imLcIc.c:132: _XimLocalUtf8LookupString /* utf8_lookup_string */
+imLcLkup.c:202:_XimLocalUtf8LookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes,
+imThaiIc.c:147: _XimLocalUtf8LookupString /* utf8_lookup_string */
+Ximint.h:911:extern int _XimLocalUtf8LookupString(
+
+#### _XimLocalWcLookupString ####
+imLcIc.c:131: _XimLocalWcLookupString, /* wc_lookup_string */
+imLcLkup.c:130:_XimLocalWcLookupString(XIC xic, XKeyEvent *ev, wchar_t *buffer, int wlen,
+imThaiIc.c:146: _XimLocalWcLookupString, /* wc_lookup_string */
+Ximint.h:902:extern int _XimLocalWcLookupString(
+
+#### _XimLookupMBText ####
+imConv.c:158:_XimLookupMBText(
+imDefLkup.c:1032: ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL);
+imLcLkup.c:109: ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL);
+Ximint.h:750:extern int _XimLookupMBText(
+
+#### _XimLookupUTF8Text ####
+imConv.c:301:_XimLookupUTF8Text(
+imDefLkup.c:1158: ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL);
+imLcLkup.c:254: ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL);
+Ximint.h:768:extern int _XimLookupUTF8Text(
+
+#### _XimLookupWCText ####
+imConv.c:229:_XimLookupWCText(
+imDefLkup.c:1095: ret = _XimLookupWCText(ic, ev, buffer, bytes, keysym, NULL);
+imLcLkup.c:181: ret = _XimLookupWCText(ic, ev, buffer, wlen, keysym, NULL);
+Ximint.h:759:extern int _XimLookupWCText(
+
+#### _XimMakeICAttrIDList ####
+imDefIc.c:358: makeid_name = _XimMakeICAttrIDList(ic, ic->private.proto.ic_resources,
+imRmAttr.c:128:_XimMakeICAttrIDList(
+imRmAttr.c:173: if ((name = _XimMakeICAttrIDList(ic, res_list, res_num,
+imRmAttr.c:183: if ((name = _XimMakeICAttrIDList(ic, res_list, res_num,
+Ximint.h:440:extern char * _XimMakeICAttrIDList(
+
+#### _XimMakeIMAttrIDList ####
+imDefIm.c:1469: makeid_name = _XimMakeIMAttrIDList(im, im->core.im_resources,
+imRmAttr.c:68:_XimMakeIMAttrIDList(
+Ximint.h:430:extern char * _XimMakeIMAttrIDList(
+
+#### _XimOpenIM ####
+imInt.c:197:_XimOpenIM(
+imInt.c:256: lcd->methods->open_im = _XimOpenIM;
+XlcPublic.h:230:extern XIM _XimOpenIM(
+
+#### _XimParseStringFile ####
+imLcIm.c:611: _XimParseStringFile(fp, im);
+imLcPrs.c:712:_XimParseStringFile(
+Ximint.h:326:extern void _XimParseStringFile(
+
+#### _XimProcError ####
+imDefIc.c:222: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIc.c:402: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIc.c:799: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIc.c:1107: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIc.c:1557: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIm.c:846: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIm.c:964: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIm.c:1368: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIm.c:1509: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIm.c:1770: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefIm.c:1899: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefLkup.c:178: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefLkup.c:318: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefLkup.c:562: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imDefLkup.c:755:_XimProcError(
+imDefLkup.c:787: _XimProcError(im, ic, (XPointer)&buf_s[3]);
+imExten.c:286: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+imExten.c:480: _XimProcError(im, 0, (XPointer)&buf_s[3]);
+Ximint.h:847:extern void _XimProcError(
+
+#### _XimProcSyncReply ####
+imDefFlt.c:132: (void)_XimProcSyncReply(im, ic);
+imDefLkup.c:189:_XimProcSyncReply(
+imDefLkup.c:237: (void)_XimProcSyncReply(im, ic);
+imExten.c:111: if (!(_XimProcSyncReply(im, ic)))
+Ximint.h:555:extern Bool _XimProcSyncReply(
+
+#### _XimProtoCreateIC ####
+imDefIc.c:1386:_XimProtoCreateIC(
+imDefIm.c:1533: _XimProtoCreateIC, /* create_ic */
+Ximint.h:535:extern XIC _XimProtoCreateIC(
+
+#### _XimProtoEventToWire ####
+imDefLkup.c:248: if (!(_XimProtoEventToWire(ev, event, False)))
+imEvToWire.c:45:_XimProtoEventToWire(
+Ximint.h:730:extern Status _XimProtoEventToWire(
+
+#### _XimProtoIMFree ####
+imDefIm.c:976:_XimProtoIMFree(
+imDefIm.c:1126: _XimProtoIMFree(im);
+imDefIm.c:2040: _XimProtoIMFree(im);
+imImSw.c:53: { _XimCheckIfDefault, _XimProtoOpenIM, _XimProtoIMFree },
+Ximint.h:359:extern void _XimProtoIMFree(
+
+#### _XimProtoMbLookupString ####
+imDefIc.c:1302: _XimProtoMbLookupString, /* mb_lookup_string */
+imDefLkup.c:992:_XimProtoMbLookupString(
+Ximint.h:691:extern int _XimProtoMbLookupString(
+
+#### _XimProtoOpenIM ####
+imDefIm.c:2017:_XimProtoOpenIM(
+imImSw.c:53: { _XimCheckIfDefault, _XimProtoOpenIM, _XimProtoIMFree },
+Ximint.h:347:extern Bool _XimProtoOpenIM(
+
+#### _XimProtoUtf8LookupString ####
+imDefIc.c:1304: _XimProtoUtf8LookupString /* utf8_lookup_string */
+imDefLkup.c:1118:_XimProtoUtf8LookupString(
+Ximint.h:709:extern int _XimProtoUtf8LookupString(
+
+#### _XimProtoWcLookupString ####
+imDefIc.c:1303: _XimProtoWcLookupString, /* wc_lookup_string */
+imDefLkup.c:1055:_XimProtoWcLookupString(
+Ximint.h:700:extern int _XimProtoWcLookupString(
+
+#### _XimProtoWireToEvent ####
+imDefLkup.c:353: _XimProtoWireToEvent(ev, xev, False);
+imEvToWire.c:422:_XimProtoWireToEvent(
+Ximint.h:736:extern Bool _XimProtoWireToEvent(
+
+#### _XimRead ####
+imCallbk.c:87:#define _XimReadData(im,buf,buf_len,len) \
+imDefIc.c:197: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIc.c:207: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIc.c:379: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIc.c:389: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIc.c:778: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIc.c:785: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIc.c:914: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIc.c:919: (void)_XimRead(im, &len, preply, buf_size,
+imDefIc.c:1082: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIc.c:1092: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIc.c:1532: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIc.c:1542: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIm.c:611: ret_code = _XimRead(im, &len, reply, buf_size, _XimAllRecv, 0);
+imDefIm.c:620: ret_code = _XimRead(im, &len, preply, buf_size, _XimAllRecv, 0);
+imDefIm.c:757: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIm.c:763: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIm.c:825: ret_code = _XimRead(im, &len, reply, buf_size,
+imDefIm.c:835: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIm.c:944: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIm.c:954: ret_code = _XimRead(im, &len, preply, buf_size, _XimCloseCheck, 0);
+imDefIm.c:1347: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIm.c:1357: ret_code = _XimRead(im, &len, reply, buf_size,
+imDefIm.c:1488: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIm.c:1498: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIm.c:1751: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIm.c:1761: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefIm.c:1877: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefIm.c:1887: ret_code = _XimRead(im, &len, reply, buf_size,
+imDefLkup.c:156: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefLkup.c:166: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefLkup.c:296: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefLkup.c:306: ret_code = _XimRead(im, &len, preply, buf_size,
+imDefLkup.c:540: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imDefLkup.c:550: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imExten.c:265: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imExten.c:275: ret_code = _XimRead(im, &len, preply, buf_size,
+imExten.c:459: ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
+imExten.c:469: ret_code = _XimRead(im, &len, reply, buf_size,
+imLcIm.c:268:_XimReadCachedDefaultTree(
+imLcIm.c:423: _XimReadCachedDefaultTree (fd, name, encoding, size)) {
+imTransR.c:102:_XimReadData(
+imTransR.c:228:_XimRead(Xim im, INT16 *len, XPointer buf, int buf_size,
+imTransR.c:235: ret_code = _XimReadData(im, &read_len, buf, buf_size);
+imTransR.c:278: ret_code = _XimReadData(im, &read_len, (XPointer)reply, buf_size);
+imTransR.c:287: ret_code = _XimReadData(im, &read_len, preply, buf_size);
+Ximint.h:828:extern Bool _XimRead(
+
+#### _XimRegProtoIntrCallback ####
+imDefIm.c:583: _XimRegProtoIntrCallback(im, XIM_ERROR, 0, _XimErrorCallback, (XPointer)im);
+imDefIm.c:714: _XimRegProtoIntrCallback(im, XIM_REGISTER_TRIGGERKEYS, 0,
+imDefIm.c:875: _XimRegProtoIntrCallback(im, XIM_SET_EVENT_MASK, 0,
+imDefIm.c:877: _XimRegProtoIntrCallback(im, XIM_FORWARD_EVENT, 0,
+imDefIm.c:879: _XimRegProtoIntrCallback(im, XIM_COMMIT, 0,
+imDefIm.c:881: _XimRegProtoIntrCallback(im, XIM_SYNC, 0,
+imDispch.c:40:_XimRegProtoIntrCallback(
+imExten.c:495: _XimRegProtoIntrCallback(im,
+imExten.c:501: _XimRegProtoIntrCallback(im,
+Ximint.h:470:extern Bool _XimRegProtoIntrCallback(
+
+#### _XimRegisterDispatcher ####
+imDefIm.c:888: _XimRegisterDispatcher(im, _XimCbDispatch, (XPointer)im);
+imDispch.c:101: if (_XimRegisterDispatcher(im, _XimTransportIntr, (XPointer)im))
+imTransR.c:250:_XimRegisterDispatcher(
+Ximint.h:983:_XimRegisterDispatcher(
+
+#### _XimRegisterFilter ####
+imDefFlt.c:327:_XimRegisterFilter(
+imDefIc.c:232: _XimRegisterFilter(ic);
+imDefIc.c:971: _XimRegisterFilter(ic);
+imDefIc.c:1354: _XimRegisterFilter(ic);
+imDefIc.c:1514: _XimRegisterFilter(ic);
+imRmAttr.c:935: _XimRegisterFilter(ic);
+imRmAttr.c:941: _XimRegisterFilter(ic);
+Ximint.h:718:extern void _XimRegisterFilter(
+
+#### _XimRegisterIMInstantiateCallback ####
+imInsClbk.c:154:_XimRegisterIMInstantiateCallback(
+imInt.c:257: lcd->methods->register_callback = _XimRegisterIMInstantiateCallback;
+Ximint.h:790:extern Bool _XimRegisterIMInstantiateCallback(
+
+#### _XimRegisterServerFilter ####
+imDefFlt.c:380:_XimRegisterServerFilter(
+imDefIm.c:1947: _XimRegisterServerFilter(im);
+imDefIm.c:2030: _XimRegisterServerFilter(im);
+Ximint.h:540:extern void _XimRegisterServerFilter(
+
+#### _XimRegisterTriggerKeysCallback ####
+imDefIm.c:715: _XimRegisterTriggerKeysCallback, (XPointer)im);
+imDefLkup.c:449:_XimRegisterTriggerKeysCallback(
+Ximint.h:496:extern Bool _XimRegisterTriggerKeysCallback(
+
+#### _XimReregisterFilter ####
+imDefFlt.c:346:_XimReregisterFilter(
+imDefLkup.c:72: _XimReregisterFilter(ic);
+imExten.c:109: _XimReregisterFilter(ic);
+Ximint.h:726:extern void _XimReregisterFilter(
+
+#### _XimResetIMInstantiateCallback ####
+imDefIm.c:1123: _XimResetIMInstantiateCallback(im);
+imInsClbk.c:271:_XimResetIMInstantiateCallback(Xim xim)
+imInt.c:114: _XimResetIMInstantiateCallback( im );
+imInt.c:143: _XimResetIMInstantiateCallback( im );
+Ximint.h:786:extern void _XimResetIMInstantiateCallback(
+
+#### _XimRespSyncReply ####
+imDefLkup.c:212:_XimRespSyncReply(
+imDefLkup.c:373: (void)_XimRespSyncReply(ic, buf_s[0]);
+imDefLkup.c:704: (void)_XimRespSyncReply(ic, flag);
+imExten.c:161: _XimRespSyncReply(ic, buf_s[0]);
+Ximint.h:991:_XimRespSyncReply(
+
+#### _XimServerDestroy ####
+imDefFlt.c:374: _XimServerDestroy(im);
+imInt.c:90:_XimServerDestroy(Xim im_2_destroy)
+Ximint.h:575:extern void _XimServerDestroy(
+
+#### _XimSetCurrentICValues ####
+imDefIc.c:626: _XimSetCurrentICValues(ic, &ic_values);
+imDefIc.c:747: _XimSetCurrentICValues(ic, &ic_values);
+imDefIc.c:1347: _XimSetCurrentICValues(ic, &ic_values);
+imDefIc.c:1353: _XimSetCurrentICValues(ic, &ic_values);
+imDefIc.c:1508: _XimSetCurrentICValues(ic, &ic_values);
+imLcIc.c:183: _XimSetCurrentICValues(ic, &ic_values);
+imLcIc.c:188: _XimSetCurrentICValues(ic, &ic_values);
+imLcSIc.c:52: _XimSetCurrentICValues(ic, &ic_values);
+imRmAttr.c:487: _XimSetCurrentICValues(ic, &ic_values);
+imRm.c:3121:_XimSetCurrentICValues(
+imThaiIc.c:219: _XimSetCurrentICValues(ic, &ic_values);
+Ximint.h:317:extern void _XimSetCurrentICValues(
+
+#### _XimSetCurrentIMValues ####
+imDefIm.c:1218: _XimSetCurrentIMValues(im, &im_values);
+imDefIm.c:1327: _XimSetCurrentIMValues(im, &im_values);
+imDefIm.c:1979: _XimSetCurrentIMValues(im, &im_values);
+imLcIm.c:260: _XimSetCurrentIMValues(im, &im_values);
+imLcIm.c:662: _XimSetCurrentIMValues(im, &im_values);
+imRm.c:3086:_XimSetCurrentIMValues(Xim im, XimDefIMValues *im_values)
+imThaiIm.c:104: _XimSetCurrentIMValues(im, &im_values);
+Ximint.h:307:extern void _XimSetCurrentIMValues(
+
+#### _XimSetEventMaskCallback ####
+imDefIm.c:876: _XimSetEventMaskCallback, (XPointer)im);
+imDefLkup.c:77:_XimSetEventMaskCallback(
+Ximint.h:503:extern Bool _XimSetEventMaskCallback(
+
+#### _XimSetHeader ####
+imCallbk.c:340: _XimSetHeader((XPointer)buf, XIM_STR_CONVERSION_REPLY, 0, &buf_len);
+imCallbk.c:341: buf_len -= XIM_HEADER_SIZE; /* added by _XimSetHeader (HACK) */
+imCallbk.c:400: _XimSetHeader((XPointer)buf, XIM_PREEDIT_START_REPLY, 0, &buf_len);
+imCallbk.c:630: _XimSetHeader((XPointer)buf, XIM_PREEDIT_CARET_REPLY, 0, &len);
+imDefIc.c:186: _XimSetHeader((XPointer)buf, XIM_CREATE_IC, 0, &len);
+imDefIc.c:371: _XimSetHeader((XPointer)buf, XIM_GET_IC_VALUES, 0, &len);
+imDefIc.c:767: _XimSetHeader((XPointer)buf, XIM_SET_IC_VALUES, 0, &len);
+imDefIc.c:910: _XimSetHeader((XPointer)buf, XIM_DESTROY_IC, 0, &len);
+imDefIc.c:967: _XimSetHeader((XPointer)buf, XIM_SET_IC_FOCUS, 0, &len);
+imDefIc.c:1012: _XimSetHeader((XPointer)buf, XIM_UNSET_IC_FOCUS, 0, &len);
+imDefIc.c:1076: _XimSetHeader((XPointer)buf, XIM_RESET_IC, 0, &len);
+imDefIc.c:1521: _XimSetHeader((XPointer)buf, XIM_CREATE_IC, 0, &len);
+imDefIm.c:79:_XimSetHeader(
+imDefIm.c:539: _XimSetHeader((XPointer)buf, XIM_AUTH_NG, 0, &len);
+imDefIm.c:606: _XimSetHeader((XPointer)buf, major_opcode, 0, &len);
+imDefIm.c:752: _XimSetHeader((XPointer)buf, XIM_DISCONNECT, 0, &len);
+imDefIm.c:820: _XimSetHeader((XPointer)buf, XIM_OPEN, 0, &len);
+imDefIm.c:939: _XimSetHeader((XPointer)buf, XIM_CLOSE, 0, &len);
+imDefIm.c:1337: _XimSetHeader((XPointer)buf, XIM_SET_IM_VALUES, 0, &len);
+imDefIm.c:1480: _XimSetHeader((XPointer)buf, XIM_GET_IM_VALUES, 0, &len);
+imDefIm.c:1743: _XimSetHeader((XPointer)buf, XIM_ENCODING_NEGOTIATION, 0, &len);
+imDefIm.c:1867: _XimSetHeader((XPointer)buf, XIM_SET_IM_VALUES, 0, &len);
+imDefLkup.c:151: _XimSetHeader((XPointer)buf, XIM_SYNC, 0, &len);
+imDefLkup.c:204: _XimSetHeader((XPointer)buf, XIM_SYNC_REPLY, 0, &len);
+imDefLkup.c:289: _XimSetHeader((XPointer)buf, XIM_FORWARD_EVENT, 0, &len);
+imDefLkup.c:535: _XimSetHeader((XPointer)buf, XIM_TRIGGER_NOTIFY, 0, &len);
+imDefLkup.c:829: _XimSetHeader((XPointer)buf, XIM_ERROR, 0, &len);
+imExten.c:257: _XimSetHeader((XPointer)buf,
+imExten.c:451: _XimSetHeader((XPointer)buf, XIM_QUERY_EXTENSION, 0, &len);
+imExten.c:546: _XimSetHeader((XPointer)buf, extensions[idx].major_opcode,
+Ximint.h:679:extern void _XimSetHeader(
+
+#### _XimSetICDefaults ####
+imDefIc.c:1348: if (!_XimSetICDefaults(ic, (XPointer)&ic_values,
+imLcIc.c:184: if(_XimSetICDefaults(ic, (XPointer)&ic_values,
+imRm.c:2655:_XimSetICDefaults(
+imRm.c:2686: if(!_XimSetICDefaults(ic, (XPointer)((char *)top + info[i].offset),
+imRm.c:2691: if(!_XimSetICDefaults(ic, (XPointer)((char *)top + info[i].offset),
+imThaiIc.c:214: if(_XimSetICDefaults(ic, (XPointer)&ic_values,
+Ximint.h:258:extern Bool _XimSetICDefaults(
+
+#### _XimSetICMode ####
+imDefIc.c:138: _XimSetICMode(ic->private.proto.ic_resources,
+imDefIc.c:141: _XimSetICMode(ic->private.proto.ic_inner_resources,
+imDefIc.c:1341: _XimSetICMode(res, num, input_style);
+imDefIc.c:1377: _XimSetICMode(res, num, input_style);
+imDefIc.c:1468: _XimSetICMode(ic->private.proto.ic_resources,
+imDefIc.c:1471: _XimSetICMode(ic->private.proto.ic_inner_resources,
+imLcIc.c:174: _XimSetICMode(res, num, ic_values.input_style);
+imRm.c:2384:_XimSetICMode(XIMResourceList res_list, unsigned int list_num, XIMStyle style)
+imThaiIc.c:206: _XimSetICMode(res, num, ic_values.input_style);
+Ximint.h:235:extern void _XimSetICMode(
+
+#### _XimSetICResourceList ####
+imDefIm.c:1967: if(!_XimSetICResourceList(&im->core.ic_resources,
+imDefIm.c:1999: if(!_XimSetICResourceList(&im->core.ic_resources,
+imLcIm.c:650: if(_XimSetICResourceList(&im->core.ic_resources,
+imRm.c:2175:_XimSetICResourceList(
+imThaiIm.c:92: if(_XimSetICResourceList(&im->core.ic_resources,
+Ximint.h:204:extern Bool _XimSetICResourceList(
+
+#### _XimSetICValueData ####
+imDefIc.c:622: name = _XimSetICValueData(ic, (XPointer)&ic_values,
+imDefIc.c:1343: if (_XimSetICValueData(ic, (XPointer)&ic_values, res, num,
+imLcIc.c:176: if(_XimSetICValueData(ic, (XPointer)&ic_values,
+imLcSIc.c:48: name = _XimSetICValueData(ic, (XPointer)&ic_values,
+imRm.c:2856:_XimSetICValueData(
+imRm.c:2881: if(((name = _XimSetICValueData(ic,
+imRm.c:2888: if(((name = _XimSetICValueData(ic,
+imThaiIc.c:208: if(_XimSetICValueData(ic, (XPointer)&ic_values,
+Ximint.h:379:extern char * _XimSetICValueData(
+
+#### _XimSetIMMode ####
+imDefIm.c:870: _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
+imDefIm.c:871: _XimSetIMMode(im->private.proto.im_inner_resources,
+imDefIm.c:1972: _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
+imDefIm.c:2004: _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
+imLcIm.c:655: _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
+imRm.c:2316:_XimSetIMMode(
+imThaiIm.c:97: _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
+Ximint.h:230:extern void _XimSetIMMode(
+
+#### _XimSetIMResourceList ####
+imDefIm.c:1963: if(!_XimSetIMResourceList(&im->core.im_resources,
+imDefIm.c:1995: if(!_XimSetIMResourceList(&im->core.im_resources,
+imLcIm.c:646: if(_XimSetIMResourceList(&im->core.im_resources,
+imRm.c:2166:_XimSetIMResourceList(
+imThaiIm.c:88: if(_XimSetIMResourceList(&im->core.im_resources,
+Ximint.h:199:extern Bool _XimSetIMResourceList(
+
+#### _XimSetIMValueData ####
+imDefIm.c:1216: name = _XimSetIMValueData(im, (XPointer)&im_values, values,
+imLcIm.c:258: name = _XimSetIMValueData(im, (XPointer)&im_values, values,
+imRm.c:2256:_XimSetIMValueData(
+Ximint.h:363:extern char * _XimSetIMValueData(
+
+#### _XimSetInnerICResourceList ####
+imDefIm.c:866: if (!(_XimSetInnerICResourceList(&(im->private.proto.ic_inner_resources),
+imRm.c:2193:_XimSetInnerICResourceList(
+Ximint.h:214:extern Bool _XimSetInnerICResourceList(
+
+#### _XimSetInnerIMResourceList ####
+imDefIm.c:862: if (!(_XimSetInnerIMResourceList(&(im->private.proto.im_inner_resources),
+imRm.c:2184:_XimSetInnerIMResourceList(
+Ximint.h:209:extern Bool _XimSetInnerIMResourceList(
+
+#### _XimSetLocalIMDefaults ####
+imDefIm.c:1975: if(!_XimSetLocalIMDefaults(im, (XPointer)&im_values,
+imLcIm.c:658: if(_XimSetLocalIMDefaults(im, (XPointer)&im_values,
+imRm.c:2616:_XimSetLocalIMDefaults(
+imThaiIm.c:100: if(_XimSetLocalIMDefaults(im, (XPointer)&im_values,
+Ximint.h:251:extern Bool _XimSetLocalIMDefaults(
+
+#### _XimShutdown ####
+imDefIm.c:773: if (!(_XimShutdown(im))) /* Transport shutdown */
+imDefIm.c:2033: _XimShutdown(im);
+imTransR.c:79:_XimShutdown(Xim im)
+Ximint.h:818:extern Bool _XimShutdown(
+
+#### _XimSync ####
+imDefIm.c:882: _XimSyncCallback, (XPointer)im);
+imDefLkup.c:102:_XimSyncCheck(
+imDefLkup.c:131:_XimSync(
+imDefLkup.c:157: _XimSyncCheck, (XPointer)ic);
+imDefLkup.c:167: _XimSyncCheck, (XPointer)ic);
+imDefLkup.c:223:_XimSyncCallback(
+imDefLkup.c:297: _XimSyncCheck, (XPointer)ic);
+imDefLkup.c:307: _XimSyncCheck, (XPointer)ic);
+Ximint.h:524:extern Bool _XimSyncCallback(
+Ximint.h:686:extern Bool _XimSync(
+
+#### _XimSyncCallback ####
+imDefIm.c:882: _XimSyncCallback, (XPointer)im);
+imDefLkup.c:223:_XimSyncCallback(
+Ximint.h:524:extern Bool _XimSyncCallback(
+
+#### _XimThaiCloseIM ####
+imThaiIm.c:50: _XimThaiCloseIM, /* close */
+imThaiIm.c:219:_XimThaiCloseIM(XIM xim)
+Ximint.h:932:extern Status _XimThaiCloseIM(
+
+#### _XimThaiCreateIC ####
+imThaiIc.c:151:_XimThaiCreateIC(
+imThaiIm.c:53: _XimThaiCreateIC, /* create_ic */
+Ximint.h:927:extern XIC _XimThaiCreateIC(
+
+#### _XimThaiFilter ####
+imThaiFlt.c:1214: * Helper functions for _XimThaiFilter()
+imThaiFlt.c:1288:_XimThaiFilter(Display *d, Window w, XEvent *ev, XPointer client_data)
+imThaiIc.c:54: _XimThaiFilter, (XPointer)ic);
+imThaiIc.c:103: KeyPress, KeyPress, _XimThaiFilter, (XPointer)ic);
+Ximint.h:920:extern Bool _XimThaiFilter(
+
+#### _XimThaiIMFree ####
+imImSw.c:52: { _XimCheckIfThaiProcessing, _XimThaiOpenIM, _XimThaiIMFree },
+imThaiIm.c:144: _XimThaiIMFree(im);
+imThaiIm.c:149:_XimThaiIMFree(Xim im)
+imThaiIm.c:233: _XimThaiIMFree(im);
+Ximint.h:355:extern void _XimThaiIMFree(
+
+#### _XimThaiOpenIM ####
+imImSw.c:52: { _XimCheckIfThaiProcessing, _XimThaiOpenIM, _XimThaiIMFree },
+imThaiIm.c:80:_XimThaiOpenIM(Xim im)
+Ximint.h:343:extern Bool _XimThaiOpenIM(
+
+#### _XimTransCallDispatcher ####
+imTrans.c:184:_XimTransCallDispatcher(Xim im, INT16 len, XPointer data)
+imTrans.c:318: im->private.proto.call_dispatcher = _XimTransCallDispatcher;
+XimTrans.h:96:extern Bool _XimTransCallDispatcher(
+
+#### _XimTransConf ####
+imTrans.c:294:_XimTransConf(
+imTransR.c:64: { "tcp", _XimTransConf }, /* use X transport lib */
+imTransR.c:67: { "local", _XimTransConf }, /* use X transport lib */
+XimTrInt.h:78:extern Bool _XimTransConf(
+
+#### _XimTransFilterWaitEvent ####
+imTrans.c:117: _XimTransFilterWaitEvent, (XPointer)im);
+imTrans.c:136: _XimTransFilterWaitEvent, (XPointer)im);
+imTrans.c:198:_XimTransFilterWaitEvent(
+XimTrans.h:106:extern Bool _XimTransFilterWaitEvent(
+
+#### _XimTransFlush ####
+imTrans.c:285:_XimTransFlush(
+imTrans.c:316: im->private.proto.flush = _XimTransFlush;
+XimTrans.h:132:extern void _XimTransFlush(
+
+#### _XimTransInternalConnection ####
+imTrans.c:120: (_XInternalConnectionProc)_XimTransInternalConnection,
+imTrans.c:213:_XimTransInternalConnection(
+XimTrans.h:113:extern void _XimTransInternalConnection(
+
+#### _XimTransRead ####
+imTrans.c:264:_XimTransRead(
+imTrans.c:315: im->private.proto.read = _XimTransRead;
+XimTrans.h:125:extern Bool _XimTransRead(
+
+#### _XimTransRegisterDispatcher ####
+imTrans.c:146:_XimTransRegisterDispatcher(
+imTrans.c:317: im->private.proto.register_dispatcher = _XimTransRegisterDispatcher;
+XimTrans.h:79:extern Bool _XimTransRegisterDispatcher(
+
+#### _XimTransWrite ####
+imTrans.c:247:_XimTransWrite(Xim im, INT16 len, XPointer data)
+imTrans.c:314: im->private.proto.write = _XimTransWrite;
+XimTrans.h:119:extern Bool _XimTransWrite(
+
+#### _XimTransportRec ####
+imDefIm.c:368: for(i = 0; _XimTransportRec[i].transportname ; i++) {
+imDefIm.c:370: _XimTransportRec[i].transportname,
+imDefIm.c:371: strlen(_XimTransportRec[i].transportname),
+imDefIm.c:373: if( _XimTransportRec[i].config(im, trans_addr) ) {
+imTransR.c:60:TransportSW _XimTransportRec[] = {
+XimTrInt.h:65:extern TransportSW _XimTransportRec[];
+
+#### _XimTriggerNotify ####
+imDefFlt.c:99: (void)_XimTriggerNotify(im, ic, 0, (CARD32)idx); /* Trigger on */
+imDefFlt.c:118: _XimTriggerNotify(im, ic, 1, (CARD32)idx); /* Trigger off */
+imDefLkup.c:476:_XimTriggerNotifyCheck(
+imDefLkup.c:505:_XimTriggerNotify(
+imDefLkup.c:541: _XimTriggerNotifyCheck, (XPointer)ic);
+imDefLkup.c:551: _XimTriggerNotifyCheck, (XPointer)ic);
+Ximint.h:548:extern Bool _XimTriggerNotify(
+
+#### _XimUnRegisterIMInstantiateCallback ####
+imInsClbk.c:217:_XimUnRegisterIMInstantiateCallback(
+imInt.c:258: lcd->methods->unregister_callback = _XimUnRegisterIMInstantiateCallback;
+Ximint.h:800:extern Bool _XimUnRegisterIMInstantiateCallback(
+
+#### _XimUnregisterFilter ####
+imDefFlt.c:337:_XimUnregisterFilter(
+imDefIc.c:925: _XimUnregisterFilter(ic);
+imDefIc.c:1016: _XimUnregisterFilter(ic);
+imDefIc.c:1570: _XimUnregisterFilter(ic);
+imRmAttr.c:939: _XimUnregisterFilter(ic);
+Ximint.h:722:extern void _XimUnregisterFilter(
+
+#### _XimUnregisterServerFilter ####
+imDefFlt.c:399:_XimUnregisterServerFilter(
+imDefIm.c:1122: _XimUnregisterServerFilter(im);
+Ximint.h:544:extern void _XimUnregisterServerFilter(
+
+#### _XimWrite ####
+imCallbk.c:85:#define _XimWriteData(im,len,data) \
+imCallbk.c:355: if (!(_XimWriteData(im, buf_len, buf))) {
+imCallbk.c:406: if (!(_XimWriteData(im, buf_len, buf))) {
+imCallbk.c:636: if (!(_XimWriteData(im, len, buf))) {
+imDefIc.c:187: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefIc.c:372: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefIc.c:768: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefIc.c:911: (void)_XimWrite(im, len, (XPointer)buf);
+imDefIc.c:968: (void)_XimWrite(im, len, (XPointer)buf);
+imDefIc.c:1013: (void)_XimWrite(im, len, (XPointer)buf);
+imDefIc.c:1077: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefIc.c:1522: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefIm.c:540: (void)_XimWrite(im, len, (XPointer)buf);
+imDefIm.c:607: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefIm.c:753: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefIm.c:821: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefIm.c:940: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefIm.c:1338: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefIm.c:1481: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefIm.c:1744: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefIm.c:1868: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imDefLkup.c:152: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefLkup.c:205: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefLkup.c:290: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefLkup.c:536: if (!(_XimWrite(im, len, (XPointer)buf)))
+imDefLkup.c:830: if (!(_XimWrite(im, len, (XPointer)buf)))
+imExten.c:260: if (!(_XimWrite(im, len, (XPointer)buf)))
+imExten.c:452: if (!(_XimWrite(im, len, (XPointer)buf))) {
+imExten.c:548: if (!(_XimWrite(im, len, (XPointer)buf)))
+imLcIm.c:436:_XimWriteCachedDefaultTree(
+imLcIm.c:617: _XimWriteCachedDefaultTree (intname, encoding, cachename, im);
+imTransR.c:85:_XimWrite(Xim im, INT16 len, XPointer data)
+Ximint.h:822:extern Bool _XimWrite(
+
+#### _XimXConf ####
+imTransR.c:61: { "X", _XimXConf }, /* 1st entry must be X.
+imTrX.c:495:_XimXConf(Xim im, char *address)
+XimTrInt.h:71:extern Bool _XimXConf(
+
+#### _XimXTransBytesReadable ####
+
+#### _XimXTransClose ####
+imTrans.c:94: _XimXTransClose (spec->trans_conn);
+imTrans.c:132: (void)_XimXTransClose(spec->trans_conn);
+
+#### _XimXTransCloseForCloning ####
+
+#### _XimXTransConnect ####
+imTrans.c:91: if ((connect_stat = _XimXTransConnect (
+
+#### _XimXTransDisconnect ####
+imTrans.c:131: _XimXTransDisconnect(spec->trans_conn);
+
+#### _XimXTransFreeConnInfo ####
+
+#### _XimXTransGetConnectionNumber ####
+imTrans.c:109: spec->fd = _XimXTransGetConnectionNumber (spec->trans_conn);
+
+#### _XimXTransGetHostname ####
+
+#### _XimXTransGetPeerAddr ####
+
+#### _XimXTransIsLocal ####
+
+#### _XimXTransOpenCOTSClient ####
+imTrans.c:85: if ((spec->trans_conn = _XimXTransOpenCOTSClient (
+
+#### _XimXTransRead ####
+imTrans.c:277: if ((len = _XimXTransRead(spec->trans_conn, recv_buf, buf_len)) <= 0)
+
+#### _XimXTransReadv ####
+
+#### _XimXTransSetOption ####
+
+#### _XimXTransSocketINET6Funcs ####
+
+#### _XimXTransSocketINETFuncs ####
+
+#### _XimXTransSocketLocalFuncs ####
+
+#### _XimXTransSocketTCPFuncs ####
+
+#### _XimXTransSocketUNIXFuncs ####
+
+#### _XimXTransWrite ####
+imTrans.c:254: if ((nbyte = _XimXTransWrite(spec->trans_conn, buf, len)) <= 0)
+
+#### _XimXTransWritev ####
+
+#### _Ximctstombs ####
+imDefIm.c:1534: _Ximctstombs, /* ctstombs */
+imDefLkup.c:903:_Ximctstombs(XIM xim, char *from, int from_len,
+Ximint.h:616:extern int _Ximctstombs(
+
+#### _Ximctstoutf8 ####
+imDefIm.c:1536: _Ximctstoutf8 /* ctstoutf8 */
+imDefLkup.c:979:_Ximctstoutf8(
+Ximint.h:634:extern int _Ximctstoutf8(
+
+#### _Ximctstowcs ####
+imDefIm.c:1535: _Ximctstowcs, /* ctstowcs */
+imDefLkup.c:911:_Ximctstowcs(
+Ximint.h:625:extern int _Ximctstowcs(
+
+#### _XkbCopyFromReadBuffer ####
+XKBExtDev.c:137: if (!_XkbCopyFromReadBuffer(buf,
+XKBExtDev.c:209: if (!_XkbCopyFromReadBuffer(&buf, (char *) act, size))
+XKBGeom.c:294: if (!_XkbCopyFromReadBuffer(buf, (char *) geom->key_aliases,
+XKBGetMap.c:266: if (!_XkbCopyFromReadBuffer(buf, (char *) numDesc, nKeyActs)) {
+XKBGetMap.c:295: if (!_XkbCopyFromReadBuffer(buf, (char *) newActs,
+XKBNames.c:188: if (!_XkbCopyFromReadBuffer(&buf,
+XKBNames.c:200: if (!_XkbCopyFromReadBuffer(&buf, (char *) names->key_aliases,
+XKBRdBuf.c:67:_XkbCopyFromReadBuffer(XkbReadBufferPtr from, char *to, int size)
+XKBlibint.h:203:extern int _XkbCopyFromReadBuffer(
+XKBlibint.h:231:#define _XkbReadBufferCopy32(f,t,s) _XkbCopyFromReadBuffer(f, (char *)t, (s)*4)
+
+#### _XkbFreeReadBuffer ####
+XKBCompat.c:98: i = _XkbFreeReadBuffer(&buf);
+XKBCompat.c:105: _XkbFreeReadBuffer(&buf);
+XKBExtDev.c:221: tmp = _XkbFreeReadBuffer(&buf);
+XKBExtDev.c:228: _XkbFreeReadBuffer(&buf);
+XKBGeom.c:647: left = _XkbFreeReadBuffer(&buf);
+XKBGetMap.c:545: left = _XkbFreeReadBuffer(&buf);
+XKBleds.c:94: _XkbFreeReadBuffer(&buf);
+XKBleds.c:109: left = _XkbFreeReadBuffer(&buf);
+XKBList.c:200: _XkbFreeReadBuffer(&buf);
+XKBList.c:221: left = _XkbFreeReadBuffer(&buf);
+XKBNames.c:228: len = _XkbFreeReadBuffer(&buf);
+XKBNames.c:234: _XkbFreeReadBuffer(&buf);
+XKBRdBuf.c:164:_XkbFreeReadBuffer(XkbReadBufferPtr buf)
+XKBlibint.h:277:extern int _XkbFreeReadBuffer(
+
+#### _XkbGetAtomNameFunc ####
+XKB.c:36:XkbGetAtomNameFunc _XkbGetAtomNameFunc = XGetAtomName;
+XKB.c:773: _XkbGetAtomNameFunc = (getName ? getName : XGetAtomName);
+XKBlibint.h:64:extern XkbGetAtomNameFunc _XkbGetAtomNameFunc;
+
+#### _XkbGetCharset ####
+Font.c:667: /* next three lines stolen from _XkbGetCharset() */
+XKBBind.c:605: _XkbGetConverters(_XkbGetCharset(), &xkb->cvt);
+XKBCvt.c:210: * The function _XkbGetCharset seems to be missnamed as what it seems to
+XKBCvt.c:231:_XkbGetCharset(void)
+XKBCvt.c:334:_XkbGetCharset(void)
+XKBlibint.h:287:extern char *_XkbGetCharset(
+
+#### _XkbGetConverters ####
+XKBBind.c:605: _XkbGetConverters(_XkbGetCharset(), &xkb->cvt);
+XKBBind.c:606: _XkbGetConverters("ISO8859-1", &xkb->latin1cvt);
+XKBCvt.c:194:_XkbGetConverters(const char *encoding_name, XkbConverters * cvt_rtrn)
+XKBlibint.h:291:extern int _XkbGetConverters(
+
+#### _XkbGetReadBufferCountedString ####
+XKBExtDev.c:199: if (!_XkbGetReadBufferCountedString(&buf, &devi->name))
+XKBGeom.c:269: ok = _XkbGetReadBufferCountedString(buf, &name) && ok;
+XKBGeom.c:270: ok = _XkbGetReadBufferCountedString(buf, &value) && ok;
+XKBGeom.c:320: if (!_XkbGetReadBufferCountedString(buf, &spec))
+XKBGeom.c:429: if (!_XkbGetReadBufferCountedString(buf, &doodad->text.text))
+XKBGeom.c:431: if (!_XkbGetReadBufferCountedString(buf, &doodad->text.font))
+XKBGeom.c:442: if (!_XkbGetReadBufferCountedString(buf, &doodad->logo.logo_name))
+XKBGeom.c:633: if (!_XkbGetReadBufferCountedString(&buf, &geom->label_font))
+XKBRdBuf.c:180:_XkbGetReadBufferCountedString(XkbReadBufferPtr buf, char **rtrn)
+XKBlibint.h:282:_XkbGetReadBufferCountedString(
+
+#### _XkbGetReadBufferPtr ####
+XKBCompat.c:60: wire = (xkbSymInterpretWireDesc *) _XkbGetReadBufferPtr(&buf,
+XKBCompat.c:86: _XkbGetReadBufferPtr(&buf, nGroups * SIZEOF(xkbModsWireDesc));
+XKBGeom.c:352: _XkbGetReadBufferPtr(buf, SIZEOF(xkbShapeWireDesc));
+XKBGeom.c:365: _XkbGetReadBufferPtr(buf, SIZEOF(xkbOutlineWireDesc));
+XKBGeom.c:376: _XkbGetReadBufferPtr(buf, SIZEOF(xkbPointWireDesc));
+XKBGeom.c:408: _XkbGetReadBufferPtr(buf, SIZEOF(xkbDoodadWireDesc));
+XKBGeom.c:461: _XkbGetReadBufferPtr(buf, SIZEOF(xkbOverlayWireDesc));
+XKBGeom.c:474: _XkbGetReadBufferPtr(buf, SIZEOF(xkbOverlayRowWireDesc));
+XKBGeom.c:484: _XkbGetReadBufferPtr(buf,
+XKBGeom.c:514: _XkbGetReadBufferPtr(buf, SIZEOF(xkbSectionWireDesc));
+XKBGeom.c:536: _XkbGetReadBufferPtr(buf, SIZEOF(xkbRowWireDesc));
+XKBGeom.c:553: _XkbGetReadBufferPtr(buf, SIZEOF(xkbKeyWireDesc));
+XKBGetMap.c:58: _XkbGetReadBufferPtr(buf, SIZEOF(xkbKeyTypeWireDesc));
+XKBGetMap.c:112: (xkbKTMapEntryWireDesc *) _XkbGetReadBufferPtr(buf, size);
+XKBGetMap.c:130: pwire = (xkbModsWireDesc *) _XkbGetReadBufferPtr(buf, sz);
+XKBGetMap.c:179: _XkbGetReadBufferPtr(buf, SIZEOF(xkbSymMapWireDesc));
+XKBGetMap.c:222: _XkbGetReadBufferPtr(buf, SIZEOF(xkbSymMapWireDesc));
+XKBGetMap.c:331: wire = (xkbBehaviorWireDesc *) _XkbGetReadBufferPtr(buf,
+XKBGetMap.c:353: data = _XkbGetReadBufferPtr(buf, XkbPaddedSize(nVMods));
+XKBGetMap.c:391: wire = (unsigned char *) _XkbGetReadBufferPtr(buf, i);
+XKBGetMap.c:421: wire = (unsigned char *) _XkbGetReadBufferPtr(buf, i);
+XKBGetMap.c:459: wire = (xkbVModMapWireDesc *) _XkbGetReadBufferPtr(buf, i);
+XKBleds.c:91: _XkbGetReadBufferPtr(&buf,
+XKBList.c:72: flags = (CARD16 *) _XkbGetReadBufferPtr(buf, 2 * sizeof(CARD16));
+XKBList.c:82: str = (char *) _XkbGetReadBufferPtr(buf, wlen);
+XKBNames.c:121: (CARD8 *) _XkbGetReadBufferPtr(&buf, XkbPaddedSize(rep->nTypes));
+XKBRdBuf.c:150:_XkbGetReadBufferPtr(XkbReadBufferPtr from, int size)
+XKBlibint.h:271:extern char *_XkbGetReadBufferPtr(
+XKBlibint.h:275:#define _XkbGetTypedRdBufPtr(b,n,t) ((t *)_XkbGetReadBufferPtr(b,(n)*SIZEOF(t)))
+
+#### _XkbInitReadBuffer ####
+XKBCompat.c:45: if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
+XKBExtDev.c:182: if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
+XKBGeom.c:628: if (_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4)) {
+XKBGetMap.c:524: if (_XkbInitReadBuffer(dpy, &buf, extraData)) {
+XKBleds.c:77: if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
+XKBList.c:195: if (_XkbInitReadBuffer(dpy, &buf, extraLen)) {
+XKBNames.c:76: if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
+XKBRdBuf.c:38:_XkbInitReadBuffer(Display *dpy, XkbReadBufferPtr buf, int size)
+XKBlibint.h:192:extern int _XkbInitReadBuffer(
+
+#### _XkbInternAtomFunc ####
+XKB.c:35:XkbInternAtomFunc _XkbInternAtomFunc = XInternAtom;
+XKB.c:772: _XkbInternAtomFunc = (getAtom ? getAtom : XInternAtom);
+XKBlibint.h:63:extern XkbInternAtomFunc _XkbInternAtomFunc;
+
+#### _XkbNoteCoreMapChanges ####
+XKBBind.c:416: _XkbNoteCoreMapChanges(&changes, event, XKB_XLIB_MAP_MASK);
+XKBUse.c:181:_XkbNoteCoreMapChanges(XkbMapChangesPtr old,
+XKBUse.c:309: _XkbNoteCoreMapChanges(&xkbi->changes, ev, XKB_XLIB_MAP_MASK);
+XKBlibint.h:186:extern void _XkbNoteCoreMapChanges(
+
+#### _XkbPeekAtReadBuffer ####
+XKBRdBuf.c:141:_XkbPeekAtReadBuffer(XkbReadBufferPtr from, int size)
+XKBlibint.h:266:extern char *_XkbPeekAtReadBuffer(
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbReadBufferCopy32 ####
+
+#### _XkbReadBufferCopyKeySyms ####
+XKBGetMap.c:203: _XkbReadBufferCopyKeySyms(buf, (KeySym *) &map->syms[offset],
+XKBGetMap.c:235: _XkbReadBufferCopyKeySyms(buf, newSyms, newMap->nSyms);
+XKBRdBuf.c:90:_XkbReadBufferCopyKeySyms(XkbReadBufferPtr from, KeySym * to, int num_words)
+XKBlibint.h:251:extern int _XkbReadBufferCopyKeySyms(
+XKBlibint.h:263:#define _XkbReadBufferCopyKeySyms(f,t,s) _XkbReadBufferCopy32(f,t,s)
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbReadCopyData32 ####
+
+#### _XkbReadCopyKeySyms ####
+XKBRdBuf.c:81:_XkbReadCopyKeySyms(int *wire, KeySym * to, int num_words)
+XKBRdBuf.c:94: _XkbReadCopyKeySyms((int *) from->data, to, num_words);
+XKBlibint.h:239:extern int _XkbReadCopyKeySyms(
+XKBlibint.h:261:#define _XkbReadCopyKeySyms(f,t,n) _XkbReadCopyData32(f,t,n)
+
+#### _XkbReadGetCompatMapReply ####
+XKBCompat.c:37:_XkbReadGetCompatMapReply(Display *dpy,
+XKBCompat.c:148: status = _XkbReadGetCompatMapReply(dpy, &rep, xkb, NULL);
+XKBGetByName.c:166: status = _XkbReadGetCompatMapReply(dpy, &crep, xkb, &nread);
+XKBlibint.h:305:extern Status _XkbReadGetCompatMapReply(
+
+#### _XkbReadGetGeometryReply ####
+XKBGeom.c:607:_XkbReadGetGeometryReply(Display *dpy,
+XKBGeom.c:692: status = _XkbReadGetGeometryReply(dpy, &rep, xkb, NULL);
+XKBGeom.c:720: status = _XkbReadGetGeometryReply(dpy, &rep, xkb, NULL);
+XKBGetByName.c:202: status = _XkbReadGetGeometryReply(dpy, &grep, xkb, &nread);
+XKBlibint.h:326:extern Status _XkbReadGetGeometryReply(
+
+#### _XkbReadGetIndicatorMapReply ####
+XKBGetByName.c:178: status = _XkbReadGetIndicatorMapReply(dpy, &irep, xkb, &nread);
+XKBleds.c:61:_XkbReadGetIndicatorMapReply(Display *dpy,
+XKBleds.c:148: status = _XkbReadGetIndicatorMapReply(dpy, &rep, xkb, NULL);
+XKBlibint.h:312:extern Status _XkbReadGetIndicatorMapReply(
+
+#### _XkbReadGetMapReply ####
+XKBGetByName.c:154: status = _XkbReadGetMapReply(dpy, &mrep, xkb, &nread);
+XKBGetMap.c:493:_XkbReadGetMapReply(Display *dpy,
+XKBGetMap.c:567: return _XkbReadGetMapReply(dpy, &rep, xkb, NULL);
+XKBlibint.h:298:extern Status _XkbReadGetMapReply(
+
+#### _XkbReadGetNamesReply ####
+XKBGetByName.c:190: status = _XkbReadGetNamesReply(dpy, &nrep, xkb, &nread);
+XKBNames.c:55:_XkbReadGetNamesReply(Display *dpy,
+XKBNames.c:270: status = _XkbReadGetNamesReply(dpy, &rep, xkb, NULL);
+XKBlibint.h:319:extern Status _XkbReadGetNamesReply(
+
+#### _XkbReloadDpy ####
+XKBBind.c:362: _XkbReloadDpy(dpy);
+XKBBind.c:409: _XkbReloadDpy(dpy);
+XKBBind.c:545:_XkbReloadDpy(Display *dpy)
+XKBlibint.h:89: _XkbReloadDpy((d)); \
+XKBlibint.h:129:extern void _XkbReloadDpy(
+
+#### _XkbSkipReadBufferData ####
+XKBGeom.c:301: _XkbSkipReadBufferData(buf, (rep->nKeyAliases * XkbKeyNameLength * 2));
+XKBGetMap.c:271: if ((i > 0) && (!_XkbSkipReadBufferData(buf, i))) {
+XKBNames.c:113: if ((len > 0) && (!_XkbSkipReadBufferData(&buf, len)))
+XKBNames.c:129: if (!_XkbSkipReadBufferData(&buf, nLevels[i] * 4))
+XKBNames.c:149: _XkbSkipReadBufferData(&buf, nLevels[i] * 4);
+XKBNames.c:155: _XkbSkipReadBufferData(&buf, nLevels[i] * 4);
+XKBNames.c:194: _XkbSkipReadBufferData(&buf, rep->nKeys * XkbKeyNameLength);
+XKBRdBuf.c:55:_XkbSkipReadBufferData(XkbReadBufferPtr from, int size)
+XKBlibint.h:198:extern int _XkbSkipReadBufferData(
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbWriteCopyData32 ####
+
+#### _XkbWriteCopyKeySyms ####
+XKBRdBuf.c:100:_XkbWriteCopyKeySyms(register KeySym * from, CARD32 *to, int len)
+XKBSetMap.c:150: _XkbWriteCopyKeySyms(pSym, outSym, desc->nSyms);
+XKBlibint.h:245:extern int _XkbWriteCopyKeySyms(
+XKBlibint.h:262:#define _XkbWriteCopyKeySyms(f,t,n) _XkbWriteCopyData32(f,t,n)
+
+#### _XkeyTable ####
+KeysymStr.c:91: const unsigned char *entry = &_XkeyTable[idx];
+StrKeysym.c:95: entry = &_XkeyTable[idx];
+Key.h:9:extern const unsigned char _XkeyTable[];
+
+#### _XlcAddCT ####
+lcCT.c:405: * at runtime through _XlcAddCT.
+lcCT.c:456:_XlcAddCT(
+lcCT.c:1276: charset = _XlcAddCT(ct_data->name, ct_data->ct_sequence);
+lcGeneric.c:525: _XlcAddCT(charsetd->name, charsetd->ct_sequence);
+lcGeneric.c:837: charset = _XlcAddCT(name, encoding);
+XlcPubI.h:129:extern XlcCharSet _XlcAddCT(
+
+#### _XlcAddCharSet ####
+lcCharSet.c:87:_XlcAddCharSet(
+lcCT.c:476: _XlcAddCharSet(charset);
+lcGeneric.c:406: _XlcAddCharSet(charset);
+lcGeneric.c:845: _XlcAddCharSet(charset);
+XlcPublic.h:133:extern Bool _XlcAddCharSet(
+
+#### _XlcAddGB18030LocaleConverters ####
+lcUTF8.c:2364:_XlcAddGB18030LocaleConverters(
+lcUTF8Load.c:60: _XlcAddGB18030LocaleConverters(lcd);
+Xlcint.h:914:extern void _XlcAddGB18030LocaleConverters(
+
+#### _XlcAddLoader ####
+lcInit.c:121: _XlcAddLoader(_XlcDynamicLoad, XlcHead);
+lcInit.c:125: _XlcAddLoader(_XlcGenericLoader, XlcHead);
+lcInit.c:129: _XlcAddLoader(_XlcDefaultLoader, XlcHead);
+lcInit.c:133: _XlcAddLoader(_XlcUtf8Loader, XlcHead);
+lcInit.c:137: _XlcAddLoader(_XlcDynamicLoader, XlcHead);
+lcWrap.c:212:_XlcAddLoader(
+Xlcint.h:893:extern Bool _XlcAddLoader(
+
+#### _XlcAddUtf8Converters ####
+lcDefConv.c:803: _XlcAddUtf8Converters(lcd);
+lcGenConv.c:3109: _XlcAddUtf8Converters(lcd);
+lcUTF8.c:1133:_XlcAddUtf8Converters(
+lcUTF8Load.c:67: _XlcAddUtf8Converters(lcd);
+Xlcint.h:904:extern void _XlcAddUtf8Converters(
+
+#### _XlcAddUtf8LocaleConverters ####
+lcUTF8.c:2330:_XlcAddUtf8LocaleConverters(
+lcUTF8Load.c:57: _XlcAddUtf8LocaleConverters(lcd);
+Xlcint.h:909:extern void _XlcAddUtf8LocaleConverters(
+
+#### _XlcCloseConverter ####
+imDefIm.c:1009: _XlcCloseConverter(im->private.proto.ctom_conv);
+imDefIm.c:1013: _XlcCloseConverter(im->private.proto.ctow_conv);
+imDefIm.c:1017: _XlcCloseConverter(im->private.proto.ctoutf8_conv);
+imDefIm.c:1021: _XlcCloseConverter(im->private.proto.cstomb_conv);
+imDefIm.c:1025: _XlcCloseConverter(im->private.proto.cstowc_conv);
+imDefIm.c:1029: _XlcCloseConverter(im->private.proto.cstoutf8_conv);
+imDefIm.c:1033: _XlcCloseConverter(im->private.proto.ucstoc_conv);
+imDefIm.c:1037: _XlcCloseConverter(im->private.proto.ucstoutf8_conv);
+imLcIm.c:180: _XlcCloseConverter(im->private.local.ctom_conv);
+imLcIm.c:184: _XlcCloseConverter(im->private.local.ctow_conv);
+imLcIm.c:188: _XlcCloseConverter(im->private.local.ctoutf8_conv);
+imLcIm.c:192: _XlcCloseConverter(im->private.local.cstomb_conv);
+imLcIm.c:196: _XlcCloseConverter(im->private.local.cstowc_conv);
+imLcIm.c:200: _XlcCloseConverter(im->private.local.cstoutf8_conv);
+imLcIm.c:204: _XlcCloseConverter(im->private.local.ucstoc_conv);
+imLcIm.c:208: _XlcCloseConverter(im->private.local.ucstoutf8_conv);
+imThaiFlt.c:589: _XlcCloseConverter(conv);
+imThaiIm.c:184: _XlcCloseConverter(im->private.local.ctom_conv);
+imThaiIm.c:188: _XlcCloseConverter(im->private.local.ctow_conv);
+imThaiIm.c:192: _XlcCloseConverter(im->private.local.ctoutf8_conv);
+imThaiIm.c:196: _XlcCloseConverter(im->private.local.cstomb_conv);
+imThaiIm.c:200: _XlcCloseConverter(im->private.local.cstowc_conv);
+imThaiIm.c:204: _XlcCloseConverter(im->private.local.cstoutf8_conv);
+imThaiIm.c:208: _XlcCloseConverter(im->private.local.ucstoc_conv);
+imThaiIm.c:212: _XlcCloseConverter(im->private.local.ucstoutf8_conv);
+lcConv.c:313:_XlcCloseConverter(
+lcPrTxt.c:225: _XlcCloseConverter(conv);
+lcRM.c:178: _XlcCloseConverter(((MbState) state)->conv);
+lcStd.c:54: _XlcCloseConverter(conv);
+lcStd.c:97: _XlcCloseConverter(conv);
+lcStd.c:154: _XlcCloseConverter(conv);
+lcStd.c:193: _XlcCloseConverter(conv);
+lcStd.c:346: _XlcCloseConverter(conv);
+lcTxtPr.c:175: _XlcCloseConverter(conv);
+lcTxtPr.c:191: _XlcCloseConverter(conv);
+omGeneric.c:1413: _XlcCloseConverter(gen->mbs_to_cs);
+omGeneric.c:1416: _XlcCloseConverter(gen->wcs_to_cs);
+omGeneric.c:1419: _XlcCloseConverter(gen->utf8_to_cs);
+XDefaultIMIF.c:237: _XlcCloseConverter(im->private->ctom_conv);
+XDefaultIMIF.c:239: _XlcCloseConverter(im->private->ctow_conv);
+XlcPublic.h:250:extern void _XlcCloseConverter(
+
+#### _XlcCompareISOLatin1 ####
+imDefIm.c:176: if( locale_name[n] && !_XlcCompareISOLatin1( pp, locale_name[n] ) )
+lcGeneric.c:718: if (num > 0 && !_XlcCompareISOLatin1(value[0], "True"))
+lcGeneric.c:724: if (num > 0 && !_XlcCompareISOLatin1(value[0], "True"))
+lcGeneric.c:755: if (tmp != NULL && !_XlcCompareISOLatin1(tmp + 1, "Default")) {
+lcPublic.c:125: if (num > 0 && !_XlcCompareISOLatin1(values[0], "True"))
+lcUTF8.c:958: && _XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "UTF-8") == 0) {
+lcUTF8Load.c:56: else if (!_XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "UTF-8")) {
+lcUTF8Load.c:59: else if (!_XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "GB18030")) {
+lcUtil.c:42:_XlcCompareISOLatin1(
+omGeneric.c:606: if (_XlcCompareISOLatin1(last - length, font_data->name) == 0)
+omGeneric.c:1600: if (!_XlcCompareISOLatin1(gen->object_name, methods_list->name)) {
+omGeneric.c:1850: if (bufptr && _XlcCompareISOLatin1(bufptr, "GL") == 0)
+omGeneric.c:1852: else if (bufptr && _XlcCompareISOLatin1(bufptr, "GR") == 0)
+omGeneric.c:1926: if (count > 0 && _XlcCompareISOLatin1(*value, "True") == 0)
+XDefaultOMIF.c:179: if (_XlcCompareISOLatin1(last - length, font_data->name) == 0)
+XDefaultOMIF.c:428: if (_XlcCompareISOLatin1(charset_p,
+XlcPublic.h:304:extern int _XlcCompareISOLatin1(
+
+#### _XlcCompileResourceList ####
+lcCharSet.c:132: _XlcCompileResourceList(resources, XlcNumber(resources));
+lcPublic.c:307: _XlcCompileResourceList(resources, XlcNumber(resources));
+lcWrap.c:578:_XlcCompileResourceList(
+omGeneric.c:1579: _XlcCompileResourceList(oc_resources, XlcNumber(oc_resources));
+omGeneric.c:1779: _XlcCompileResourceList(om_resources, XlcNumber(om_resources));
+XDefaultOMIF.c:886: _XlcCompileResourceList(oc_resources, XlcNumber(oc_resources));
+XDefaultOMIF.c:1109: _XlcCompileResourceList(om_resources, XlcNumber(om_resources));
+Xlcint.h:863:extern void _XlcCompileResourceList(
+
+#### _XlcConvert ####
+imConv.c:201: if (_XlcConvert(private->ucstoc_conv,
+imConv.c:211: if (_XlcConvert(private->cstomb_conv,
+imConv.c:270: if (_XlcConvert(private->ucstoc_conv,
+imConv.c:281: if (_XlcConvert(private->cstowc_conv,
+imConv.c:342: if (_XlcConvert(private->ucstoutf8_conv,
+imDefLkup.c:877: if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
+imDefLkup.c:953: if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
+imLcLkup.c:315: if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
+imLcLkup.c:386: if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
+imLcPrs.c:425: if (_XlcConvert(im->private.local.ucstoc_conv,
+imLcPrs.c:435: if (_XlcConvert(im->private.local.cstomb_conv,
+imThaiFlt.c:584: if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
+lcConv.c:33:typedef struct _XlcConverterListRec {
+lcConv.c:41: struct _XlcConverterListRec *next;
+lcConv.c:320:_XlcConvert(
+lcPrTxt.c:195: ret = _XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0);
+lcRM.c:145: ret = _XlcConvert(conv, (XPointer *) &from, &from_left,
+lcStd.c:71: if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
+lcStd.c:114: if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
+lcStd.c:146: if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
+lcStd.c:185: if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
+lcStd.c:338: if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
+lcTxtPr.c:168: ret = _XlcConvert(conv, &from, &from_left, (XPointer *) &to, &to_left,
+omDefault.c:59: ret = _XlcConvert(conv, (XPointer *) &from, &length, (XPointer *) &to,
+omDefault.c:82: ret = _XlcConvert(conv, (XPointer *) &from, &length, (XPointer *) &to,
+omXChar.c:325: ret = _XlcConvert(conv, from, from_left, &cs, &cs_left, lc_args, 1);
+XDefaultOMIF.c:595: ret = _XlcConvert(conv, (XPointer *) &from, &length, (XPointer *) &to,
+XlcPublic.h:254:extern int _XlcConvert(
+
+#### _XlcCopyFromArg ####
+lcWrap.c:499:_XlcCopyFromArg(
+lcWrap.c:638: _XlcCopyFromArg(args->value, base + res->offset, res->size);
+Xlcint.h:851:extern void _XlcCopyFromArg(
+
+#### _XlcCopyToArg ####
+lcWrap.c:523:_XlcCopyToArg(
+lcWrap.c:606: _XlcCopyToArg(base + res->offset, &args->value, res->size);
+Xlcint.h:857:extern void _XlcCopyToArg(
+
+#### _XlcCountVaList ####
+lcCharSet.c:150: _XlcCountVaList(var, &num_args);
+lcPubWrap.c:42: _XlcCountVaList(var, &num_args);
+lcWrap.c:547:_XlcCountVaList(
+OCWrap.c:41: _XlcCountVaList(var, &num_args);
+OCWrap.c:99: _XlcCountVaList(var, &num_args);
+OCWrap.c:125: _XlcCountVaList(var, &num_args);
+OMWrap.c:76: _XlcCountVaList(var, &num_args);
+OMWrap.c:102: _XlcCountVaList(var, &num_args);
+Xlcint.h:839:extern void _XlcCountVaList(
+
+#### _XlcCreateDefaultCharSet ####
+lcCharSet.c:170:_XlcCreateDefaultCharSet(
+lcCT.c:311: * Used by _XlcCreateDefaultCharSet.
+lcCT.c:473: charset = _XlcCreateDefaultCharSet(name, ct_sequence);
+lcGeneric.c:405: (charset = _XlcCreateDefaultCharSet(name, ""))) {
+lcGeneric.c:842: (charset = _XlcCreateDefaultCharSet(name, ""))) {
+XlcPubI.h:124:extern XlcCharSet _XlcCreateDefaultCharSet(
+
+#### _XlcCreateLC ####
+lcDefConv.c:779: lcd = _XlcCreateLC(name, _XlcGenericMethods);
+lcDynamic.c:72: lcd = _XlcCreateLC(name,_XlcGenericMethods);
+lcGenConv.c:3061: lcd = _XlcCreateLC(name, _XlcGenericMethods);
+lcPubWrap.c:69:_XlcCreateLC(
+lcUTF8Load.c:47: lcd = _XlcCreateLC(name, _XlcGenericMethods);
+XlcPubI.h:107:extern XLCd _XlcCreateLC(
+
+#### _XlcCreateLocaleDataBase ####
+lcDB.c:1269:/* _XlcCreateLocaleDataBase(lcd) */
+lcDB.c:1275:_XlcCreateLocaleDataBase(
+lcPublic.c:113: if(_XlcCreateLocaleDataBase(lcd) == NULL)
+XlcPubI.h:219:extern XPointer _XlcCreateLocaleDataBase(
+
+#### _XlcCurrentLC ####
+Font.c:668: lcd = _XlcCurrentLC();
+Font.c:669: if ((lcd = _XlcCurrentLC()) != 0)
+IMWrap.c:194: XLCd lcd = _XlcCurrentLC();
+lcStd.c:46: lcd = _XlcCurrentLC();
+lcStd.c:89: lcd = _XlcCurrentLC();
+lcStd.c:132: lcd = _XlcCurrentLC();
+lcStd.c:171: lcd = _XlcCurrentLC();
+lcStd.c:324: lcd = _XlcCurrentLC();
+lcWrap.c:78: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:98: return _XlcCurrentLC() != (XLCd)NULL;
+lcWrap.c:349:_XlcCurrentLC(void)
+lcWrap.c:383: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:399: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:415: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:432: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:449: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:466: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:479: XLCd lcd = _XlcCurrentLC();
+lcWrap.c:490: XLCd lcd = _XlcCurrentLC();
+XKBCvt.c:343: lcd = _XlcCurrentLC();
+Xlcint.h:767:extern XLCd _XlcCurrentLC (void);
+
+#### _XlcDbg_printValue ####
+lcGeneric.c:364:_XlcDbg_printValue(
+lcGeneric.c:434: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:442: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:474: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:481: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:488: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:499: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:515: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:576: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:590: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:602: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:613: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:621: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:880: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:901: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:913: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:925: _XlcDbg_printValue(name,value,num);
+lcGeneric.c:932: _XlcDbg_printValue(name,value,num);
+omGeneric.c:1897: _XlcDbg_printValue(buf,value,count);
+omGeneric.c:1905: _XlcDbg_printValue(buf,value,count);
+XlcGeneric.h:149:_XlcDbg_printValue(
+
+#### _XlcDeInitLoader ####
+lcInit.c:144:_XlcDeInitLoader(void)
+lcWrap.c:339: _XlcDeInitLoader();
+Xlcint.h:889:extern void _XlcDeInitLoader (void);
+
+#### _XlcDefaultLoader ####
+lcDefConv.c:774:_XlcDefaultLoader(
+lcInit.c:129: _XlcAddLoader(_XlcDefaultLoader, XlcHead);
+lcInit.c:156: _XlcRemoveLoader(_XlcDefaultLoader);
+Xlcint.h:919:extern XLCd _XlcDefaultLoader(
+
+#### _XlcDefaultMapModifiers ####
+lcPublic.c:48: _XlcDefaultMapModifiers,
+lcWrap.c:131:_XlcDefaultMapModifiers(
+Xlcint.h:774:extern char *_XlcDefaultMapModifiers(
+
+#### _XlcDestroyLC ####
+lcDefConv.c:784: _XlcDestroyLC(lcd);
+lcPubWrap.c:60:_XlcDestroyLC(
+lcPubWrap.c:95: _XlcDestroyLC(lcd);
+lcUTF8Load.c:53: _XlcDestroyLC(lcd);
+lcUTF8Load.c:63: _XlcDestroyLC(lcd);
+XlcPubI.h:112:extern void _XlcDestroyLC(
+
+#### _XlcDestroyLocaleDataBase ####
+lcDB.c:1232:/* _XlcDestroyLocaleDataBase(lcd) */
+lcDB.c:1241:_XlcDestroyLocaleDataBase(
+lcPublic.c:273: _XlcDestroyLocaleDataBase(lcd);
+XlcPubI.h:223:extern void _XlcDestroyLocaleDataBase(
+
+#### _XlcFileName ####
+imLcIm.c:103: name = _XlcFileName(im->core.lcd, COMPOSE_FILE);
+imLcIm.c:547: tmpname = name = _XlcFileName(im->core.lcd, COMPOSE_FILE);
+imLcPrs.c:336: lcCompose = _XlcFileName(im->core.lcd, COMPOSE_FILE);
+lcDB.c:1285: name = _XlcFileName(lcd, "locale");
+lcFile.c:465:_XlcFileName(
+XlcPublic.h:284:extern char *_XlcFileName(
+
+#### _XlcGenericLoader ####
+lcGenConv.c:3053:_XlcGenericLoader(
+lcInit.c:125: _XlcAddLoader(_XlcGenericLoader, XlcHead);
+lcInit.c:152: _XlcRemoveLoader(_XlcGenericLoader);
+Xlcint.h:925:extern XLCd _XlcGenericLoader(
+
+#### _XlcGenericMethods ####
+lcDefConv.c:779: lcd = _XlcCreateLC(name, _XlcGenericMethods);
+lcDynamic.c:64: XLCdMethods _XlcGenericMethods;
+lcDynamic.c:71: _XlcGenericMethods = (XLCdMethods)dlsym(nlshandler,"genericMethods");
+lcDynamic.c:72: lcd = _XlcCreateLC(name,_XlcGenericMethods);
+lcGenConv.c:3061: lcd = _XlcCreateLC(name, _XlcGenericMethods);
+lcGeneric.c:53:XLCdMethods _XlcGenericMethods = (XLCdMethods) &genericMethods;
+lcUTF8Load.c:47: lcd = _XlcCreateLC(name, _XlcGenericMethods);
+XlcGeneric.h:142:extern XLCdMethods _XlcGenericMethods;
+
+#### _XlcGetCSValues ####
+lcCharSet.c:142:_XlcGetCSValues(XlcCharSet charset, ...)
+XlcPublic.h:140:extern char *_XlcGetCSValues(
+
+#### _XlcGetCharSet ####
+lcCharSet.c:46:_XlcGetCharSet(
+lcCharSet.c:66:_XlcGetCharSetWithSide(
+lcCharSet.c:92: if (_XlcGetCharSet(charset->name))
+lcCT.c:467: charset = _XlcGetCharSet(name);
+lcCT.c:682: default_GL_charset = _XlcGetCharSet("ISO8859-1:GL");
+lcCT.c:683: default_GR_charset = _XlcGetCharSet("ISO8859-1:GR");
+lcGenConv.c:3066: default_GL_charset = _XlcGetCharSet("ISO8859-1:GL");
+lcGenConv.c:3067: default_GR_charset = _XlcGetCharSet("ISO8859-1:GR");
+lcGeneric.c:403: charset = _XlcGetCharSet(name);
+lcGeneric.c:840: charset = _XlcGetCharSet(name);
+lcUTF8.c:644: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:747: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1038: charset = _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1527: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1620: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1763: XlcCharSet charset = _XlcGetCharSet(*value++);
+lcUTF8.c:1958: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:2053: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+omGeneric.c:1959: *charset_list++ = _XlcGetCharSet(*value++);
+XlcPublic.h:119:extern XlcCharSet _XlcGetCharSet(
+XlcPublic.h:126:extern XlcCharSet _XlcGetCharSetWithSide(
+
+#### _XlcGetCharSetWithSide ####
+lcCharSet.c:66:_XlcGetCharSetWithSide(
+lcUTF8.c:644: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:747: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1038: charset = _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1527: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1620: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:1958: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+lcUTF8.c:2053: _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
+XlcPublic.h:126:extern XlcCharSet _XlcGetCharSetWithSide(
+
+#### _XlcGetLocaleDataBase ####
+lcDB.c:1203:/* _XlcGetLocaleDataBase(lcd, category, class, value, count) */
+lcDB.c:1208:_XlcGetLocaleDataBase(
+lcPublic.c:69: _XlcGetLocaleDataBase
+XlcPubI.h:227:extern void _XlcGetLocaleDataBase(
+
+#### _XlcGetResource ####
+lcDB.c:1184:/* _XlcGetResource(lcd, category, class, value, count) */
+lcDB.c:1189:_XlcGetResource(
+lcGeneric.c:433: _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
+lcGeneric.c:440: _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
+lcGeneric.c:472: _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
+lcGeneric.c:479: _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
+lcGeneric.c:486: _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
+lcGeneric.c:497: _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
+lcGeneric.c:513: _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
+lcGeneric.c:570: _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
+lcGeneric.c:587: _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
+lcGeneric.c:599: _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
+lcGeneric.c:611: _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
+lcGeneric.c:619: _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
+lcGeneric.c:704: _XlcGetResource(lcd, "XLC_XLOCALE", "wc_encoding_mask", &value, &num);
+lcGeneric.c:711: _XlcGetResource(lcd, "XLC_XLOCALE", "wc_shift_bits", &value, &num);
+lcGeneric.c:717: _XlcGetResource(lcd, "XLC_XLOCALE", "use_stdc_env", &value, &num);
+lcGeneric.c:723: _XlcGetResource(lcd, "XLC_XLOCALE", "force_convert_to_mb", &value, &num);
+lcGeneric.c:738: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:765: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:776: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:812: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:823: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:865: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:899: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:911: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:923: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcGeneric.c:930: _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
+lcPublic.c:116: _XlcGetResource(lcd, "XLC_XLOCALE", "mb_cur_max", &values, &num);
+lcPublic.c:124: _XlcGetResource(lcd, "XLC_XLOCALE", "state_depend_encoding", &values, &num);
+lcPublic.c:130: _XlcGetResource(lcd, "XLC_XLOCALE", "encoding_name", &values, &num);
+lcUTF8.c:1737: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+lcUTF8.c:1740: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+lcUTF8.c:1755: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+lcUTF8.c:1758: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:1895: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:1903: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:1925: _XlcGetResource(lcd, "XLC_FONTSET", "on_demand_loading", &value, &count);
+omGeneric.c:1929: _XlcGetResource(lcd, "XLC_FONTSET", "object_name", &value, &count);
+omGeneric.c:1939: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:1943: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:1962: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:1986: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:1989: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:2002: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+omGeneric.c:2011: _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
+XlcPublic.h:276:extern void _XlcGetResource(
+
+#### _XlcGetValues ####
+lcCharSet.c:134: return _XlcGetValues((XPointer) charset, resources, XlcNumber(resources),
+lcPublic.c:309: return _XlcGetValues((XPointer) pub, resources, XlcNumber(resources), args,
+lcWrap.c:587:_XlcGetValues(
+omGeneric.c:1486: return _XlcGetValues((XPointer) oc, oc->core.resources,
+omGeneric.c:1727: return _XlcGetValues((XPointer) om, om->core.resources,
+XDefaultOMIF.c:571: return _XlcGetValues((XPointer) oc, oc->core.resources,
+XDefaultOMIF.c:968: return _XlcGetValues((XPointer) om, om->core.resources,
+Xlcint.h:868:extern char *_XlcGetValues(
+
+#### _XlcInitCTInfo ####
+lcCT.c:1265:_XlcInitCTInfo(void)
+lcPublic.c:210: _XlcInitCTInfo();
+XlcPubI.h:134:extern Bool _XlcInitCTInfo (void);
+
+#### _XlcInitLoader ####
+lcInit.c:112: * The _XlcInitLoader function initializes the locale object loader list
+lcInit.c:117:_XlcInitLoader(void)
+lcWrap.c:287: _XlcInitLoader();
+Xlcint.h:887:extern void _XlcInitLoader (void);
+
+#### _XlcLocaleDirName ####
+lcFile.c:618:_XlcLocaleDirName(char *dir_name, size_t dir_len, const char *lc_name)
+XlcDL.c:383: if (_XlcLocaleDirName(lc_dir, BUFSIZE, lc_name) == NULL)
+XlcDL.c:523: if (_XlcLocaleDirName(lc_dir, BUFSIZE, lc_name) == NULL) return False;
+XlcPubI.h:213:extern char *_XlcLocaleDirName(
+
+#### _XlcLocaleLibDirName ####
+lcFile.c:696:_XlcLocaleLibDirName(char *dir_name, size_t dir_len, const char *lc_name)
+XlcDL.c:385: if (_XlcLocaleLibDirName(lc_lib_dir, BUFSIZE, lc_name) == NULL)
+XlcDL.c:428: if (_XlcLocaleLibDirName(lc_dir, BUFSIZE, lc_name) == NULL) return (XIM)0;
+XlcDL.c:476: if (_XlcLocaleLibDirName(lc_dir, BUFSIZE, lc_name) == NULL) return False;
+XlcDL.c:580: if (_XlcLocaleLibDirName(lc_dir, BUFSIZE, lc_name) == NULL) return (XOM)0;
+XlcPubI.h:207:extern char *_XlcLocaleLibDirName(
+
+#### _XlcMapOSLocaleName ####
+lcPublic.c:227: name = _XlcMapOSLocaleName(name, siname);
+lcWrap.c:269: name = _XlcMapOSLocaleName(name, siname);
+SetLocale.c:82: * _XlcMapOSLocaleName is an implementation dependent routine that derives
+SetLocale.c:98:_XlcMapOSLocaleName(
+XlcPubI.h:87: char *siname; /* for _XlcMapOSLocaleName() */
+XlcPubI.h:241:extern char *_XlcMapOSLocaleName(
+
+#### _XlcNCompareISOLatin1 ####
+Font.c:678: if (_XlcNCompareISOLatin1(name + l - 2 - (p - charset), charset, p - charset))
+lcGenConv.c:480: if ( _XlcNCompareISOLatin1(inbufptr, encoding_name, name_len) != 0 )
+lcGeneric.c:443: if (!_XlcNCompareISOLatin1(value[0], "none", 4)) {
+lcGeneric.c:445: } else if (!_XlcNCompareISOLatin1(value[0], "GL", 2)) {
+lcGeneric.c:658: if (!_XlcNCompareISOLatin1(ptr, "GL", 2)) {
+lcGeneric.c:746: if (!_XlcNCompareISOLatin1(value[0], "none", 4)) {
+lcGeneric.c:748: } else if (!_XlcNCompareISOLatin1(value[0], "GL", 2)) {
+lcGeneric.c:796: if (!_XlcNCompareISOLatin1(tmp, shifts[j].str,
+lcUtil.c:65:_XlcNCompareISOLatin1(
+XlcPublic.h:311:extern int _XlcNCompareISOLatin1(
+
+#### _XlcOpenConverter ####
+imDefIm.c:1603: if (!(ctom_conv = _XlcOpenConverter(lcd,
+imDefIm.c:1606: if (!(ctow_conv = _XlcOpenConverter(lcd,
+imDefIm.c:1609: if (!(ctoutf8_conv = _XlcOpenConverter(lcd,
+imDefIm.c:1618: if (!(ctom_conv = _XlcOpenConverter(lcd,
+imDefIm.c:1621: if (!(ctow_conv = _XlcOpenConverter(lcd,
+imDefIm.c:1624: if (!(ctoutf8_conv = _XlcOpenConverter(lcd,
+imDefIm.c:1649: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
+imDefIm.c:1653: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
+imDefIm.c:1657: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
+imDefIm.c:1661: if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
+imDefIm.c:1665: if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
+imLcIm.c:664: if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte)))
+imLcIm.c:668: if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar)))
+imLcIm.c:672: if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNUtf8String)))
+imLcIm.c:676: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
+imLcIm.c:680: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
+imLcIm.c:684: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
+imLcIm.c:688: if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
+imLcIm.c:692: if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
+imThaiFlt.c:570: conv = _XlcOpenConverter(im->core.lcd, XlcNWideChar,
+imThaiFlt.c:575: conv = _XlcOpenConverter(im->core.lcd, XlcNMultiByte,
+imThaiIm.c:106: if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte)))
+imThaiIm.c:110: if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar)))
+imThaiIm.c:114: if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNUtf8String)))
+imThaiIm.c:118: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
+imThaiIm.c:122: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
+imThaiIm.c:126: if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
+imThaiIm.c:130: if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
+imThaiIm.c:134: if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
+lcConv.c:294:_XlcOpenConverter(
+lcPrTxt.c:170: conv = _XlcOpenConverter(lcd, from_type, lcd, to_type);
+lcRM.c:215: state->conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar);
+lcStd.c:61: conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar);
+lcStd.c:104: conv = _XlcOpenConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte);
+lcStd.c:137: conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar);
+lcStd.c:176: conv = _XlcOpenConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte);
+lcStd.c:329: conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNUtf8String);
+lcTxtPr.c:141: conv = _XlcOpenConverter(lcd, from_type, lcd, to_type);
+omXChar.c:395: conv = _XlcOpenConverter(lcd, conv_type, lcd, XlcNFontCharSet);
+omXChar.c:397: conv = _XlcOpenConverter(lcd, conv_type, lcd, XlcNCharSet);
+XDefaultIMIF.c:181: if ((im->private->ctom_conv = _XlcOpenConverter(lcd, XlcNCompoundText,
+XDefaultIMIF.c:186: if ((im->private->ctow_conv = _XlcOpenConverter(lcd, XlcNCompoundText,
+XDefaultOMIF.c:588: conv = _XlcOpenConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte);
+XlcPublic.h:243:extern XlcConv _XlcOpenConverter(
+
+#### _XlcParseCharSet ####
+lcCharSet.c:220: if (!_XlcParseCharSet(charset))
+lcCT.c:314:_XlcParseCharSet(
+XlcPubI.h:118:extern Bool _XlcParseCharSet(
+
+#### _XlcParse_scopemaps ####
+lcGeneric.c:343:_XlcParse_scopemaps(
+lcGeneric.c:623: _XlcParse_scopemaps(value[0],&conversion->conv_num);
+lcGeneric.c:904: _XlcParse_scopemaps(value[0],&(codeset->mbconv->conv_num));
+lcGeneric.c:916: _XlcParse_scopemaps(value[0],&(codeset->ctconv->conv_num));
+omGeneric.c:1858: font_data->scopes = _XlcParse_scopemaps(scp,&(font_data->scopes_num));
+omGeneric.c:1877: range = (CodeRange) _XlcParse_scopemaps(value[0],vrotate_num);
+XlcGeneric.h:145:_XlcParse_scopemaps(
+
+#### _XlcPublicMethods ####
+lcGeneric.c:998: XLCdPublicMethods superclass = (XLCdPublicMethods) _XlcPublicMethods;
+lcPublic.c:73:XLCdMethods _XlcPublicMethods = (XLCdMethods) &publicMethods;
+XlcPubI.h:103:extern XLCdMethods _XlcPublicMethods;
+
+#### _XlcRemoveLoader ####
+lcInit.c:148: _XlcRemoveLoader(_XlcDynamicLoad);
+lcInit.c:152: _XlcRemoveLoader(_XlcGenericLoader);
+lcInit.c:156: _XlcRemoveLoader(_XlcDefaultLoader);
+lcInit.c:160: _XlcRemoveLoader(_XlcUtf8Loader);
+lcInit.c:164: _XlcRemoveLoader(_XlcDynamicLoader);
+lcWrap.c:184:_XlcRemoveLoader(
+lcWrap.c:218: _XlcRemoveLoader(proc); /* remove old loader, if exist */
+Xlcint.h:899:extern void _XlcRemoveLoader(
+
+#### _XlcResetConverter ####
+imDefLkup.c:866: _XlcResetConverter(conv);
+imDefLkup.c:942: _XlcResetConverter(conv);
+imLcLkup.c:304: _XlcResetConverter(conv);
+imLcLkup.c:375: _XlcResetConverter(conv);
+imThaiFlt.c:583: _XlcResetConverter(conv);
+lcConv.c:334:_XlcResetConverter(
+lcGenConv.c:763: _XlcResetConverter(conv);
+lcGenConv.c:1260: _XlcResetConverter(conv); /* ??? */
+lcGenConv.c:1263: _XlcResetConverter(conv);
+lcGenConv.c:1654: _XlcResetConverter(conv);
+lcGenConv.c:1771: _XlcResetConverter(conv);
+lcGenConv.c:2634: _XlcResetConverter(conv);
+lcPrTxt.c:217: _XlcResetConverter(conv);
+lcRM.c:113: _XlcResetConverter(((MbState) state)->conv);
+lcTxtPr.c:188: _XlcResetConverter(conv);
+omXChar.c:389: _XlcResetConverter(conv);
+XDefaultOMIF.c:593: _XlcResetConverter(conv);
+XlcPublic.h:264:extern void _XlcResetConverter(
+
+#### _XlcResolveI18NPath ####
+lcFile.c:609:_XlcResolveI18NPath(char *buf, int buf_len)
+XlcPubI.h:202:extern int _XlcResolveI18NPath(
+
+#### _XlcResolveLocaleName ####
+lcFile.c:525:_XlcResolveLocaleName(
+lcPublic.c:229: /* _XlcResolveLocaleName will lookup the SI's name for the locale */
+lcPublic.c:230: if (_XlcResolveLocaleName(name, pub) == 0) {
+XlcPubI.h:197:extern int _XlcResolveLocaleName(
+
+#### _XlcSetConverter ####
+lcConv.c:82:_XlcSetConverter(
+lcCT.c:1287: _XlcSetConverter((XLCd) NULL, XlcNCompoundText,
+lcCT.c:1290: _XlcSetConverter((XLCd) NULL, XlcNString,
+lcCT.c:1294: _XlcSetConverter((XLCd) NULL, XlcNCharSet,
+lcCT.c:1297: _XlcSetConverter((XLCd) NULL, XlcNCharSet,
+lcDefConv.c:788: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_mbstowcs);
+lcDefConv.c:789: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_mbstostr);
+lcDefConv.c:790: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_mbstocs);
+lcDefConv.c:791: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_mbstocs);
+lcDefConv.c:793: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstombs);
+lcDefConv.c:794: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
+lcDefConv.c:795: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
+lcDefConv.c:797: _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtombs);
+lcDefConv.c:798: _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_mbstowcs);
+lcDefConv.c:800: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstombs);
+lcDefConv.c:801: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
+lcGenConv.c:3069: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCompoundText, open_mbstocts);
+lcGenConv.c:3070: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_mbstostr);
+lcGenConv.c:3071: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_mbstocs);
+lcGenConv.c:3072: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_mbtocs);
+lcGenConv.c:3073: _XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte, open_ctstombs);
+lcGenConv.c:3074: _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtombs);
+lcGenConv.c:3075: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstombs);
+lcGenConv.c:3082: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_mbstowcs);
+lcGenConv.c:3083: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstombs);
+lcGenConv.c:3084: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCompoundText, open_wcstocts);
+lcGenConv.c:3085: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
+lcGenConv.c:3086: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
+lcGenConv.c:3087: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_wctocs);
+lcGenConv.c:3088: _XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar, open_ctstowcs);
+lcGenConv.c:3089: _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
+lcGenConv.c:3090: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
+lcGenConv.c:3097: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_stdc_mbstowcs);
+lcGenConv.c:3098: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_stdc_wcstombs);
+lcGenConv.c:3099: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCompoundText, open_stdc_wcstocts);
+lcGenConv.c:3100: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_stdc_wcstostr);
+lcGenConv.c:3101: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_stdc_wcstocs);
+lcGenConv.c:3102: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_stdc_wctocs);
+lcGenConv.c:3103: _XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar, open_stdc_ctstowcs);
+lcGenConv.c:3104: _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_stdc_strtowcs);
+lcGenConv.c:3105: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_stdc_cstowcs);
+lcUTF8.c:1136: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String, open_cstoutf8);
+lcUTF8.c:1137: _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNCharSet, open_utf8tocs);
+lcUTF8.c:1138: _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNChar, open_utf8tocs1);
+lcUTF8.c:1139: _XlcSetConverter(lcd, XlcNString, lcd, XlcNUtf8String, open_strtoutf8);
+lcUTF8.c:1140: _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNString, open_utf8tostr);
+lcUTF8.c:1141: _XlcSetConverter(lcd, XlcNUcsChar, lcd, XlcNChar, open_ucstocs1);
+lcUTF8.c:1142: _XlcSetConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String, open_ucstoutf8);
+lcUTF8.c:2335: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_utf8towcs);
+lcUTF8.c:2337: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstoutf8);
+lcUTF8.c:2338: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
+lcUTF8.c:2340: _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
+lcUTF8.c:2345: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstoutf8);
+lcUTF8.c:2346: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_utf8tocs);
+lcUTF8.c:2347: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_utf8tocs1);
+lcUTF8.c:2349: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
+lcUTF8.c:2350: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
+lcUTF8.c:2351: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_wcstocs1);
+lcUTF8.c:2353: _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtoutf8);
+lcUTF8.c:2354: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_utf8tostr);
+lcUTF8.c:2355: _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNMultiByte, open_identity);
+lcUTF8.c:2356: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNUtf8String, open_identity);
+lcUTF8.c:2359: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNFontCharSet, open_utf8tofcs);
+lcUTF8.c:2360: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNFontCharSet, open_wcstofcs);
+lcUTF8.c:2369: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_iconv_mbstowcs);
+lcUTF8.c:2370: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_iconv_wcstombs);
+lcUTF8.c:2375: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_iconv_cstombs);
+lcUTF8.c:2376: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_iconv_mbstocs);
+lcUTF8.c:2377: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_iconv_mbtocs);
+lcUTF8.c:2378: _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_iconv_strtombs);
+lcUTF8.c:2379: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_iconv_mbstostr);
+lcUTF8.c:2382: _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNFontCharSet, open_iconv_mbstofcs);
+lcUTF8.c:2384: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
+lcUTF8.c:2385: _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
+lcUTF8.c:2386: _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
+lcUTF8.c:2387: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
+lcUTF8.c:2388: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_wcstocs1);
+lcUTF8.c:2391: _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNFontCharSet, open_wcstofcs);
+XlcPublic.h:268:extern Bool _XlcSetConverter(
+
+#### _XlcSetValues ####
+lcWrap.c:619:_XlcSetValues(
+omGeneric.c:1455: ret = _XlcSetValues((XPointer) oc, oc->core.resources,
+omGeneric.c:1581: if (_XlcSetValues((XPointer) oc, oc_resources, XlcNumber(oc_resources),
+omGeneric.c:1714: return _XlcSetValues((XPointer) om, om->core.resources,
+XDefaultOMIF.c:558: return _XlcSetValues((XPointer) oc, oc->core.resources,
+XDefaultOMIF.c:888: if (_XlcSetValues((XPointer) oc, oc_resources, XlcNumber(oc_resources),
+XDefaultOMIF.c:955: return _XlcSetValues((XPointer) om, om->core.resources,
+Xlcint.h:877:extern char *_XlcSetValues(
+
+#### _XlcUtf8Loader ####
+lcInit.c:133: _XlcAddLoader(_XlcUtf8Loader, XlcHead);
+lcInit.c:160: _XlcRemoveLoader(_XlcUtf8Loader);
+lcUTF8Load.c:42:_XlcUtf8Loader(
+Xlcint.h:931:extern XLCd _XlcUtf8Loader(
+
+#### _XlcVaToArgList ####
+lcCharSet.c:154: _XlcVaToArgList(var, num_args, &args);
+lcPubWrap.c:46: _XlcVaToArgList(var, num_args, &args);
+lcWrap.c:560:_XlcVaToArgList(
+OCWrap.c:45: _XlcVaToArgList(var, num_args, &args);
+OCWrap.c:103: _XlcVaToArgList(var, num_args, &args);
+OCWrap.c:129: _XlcVaToArgList(var, num_args, &args);
+OMWrap.c:80: _XlcVaToArgList(var, num_args, &args);
+OMWrap.c:106: _XlcVaToArgList(var, num_args, &args);
+Xlcint.h:844:extern void _XlcVaToArgList(
+
+#### _XlcValidModSyntax ####
+lcWrap.c:101:Bool _XlcValidModSyntax(
+lcWrap.c:139: if (!_XlcValidModSyntax(prog_mods, im_valid))
+lcWrap.c:141: if (!_XlcValidModSyntax(user_mods, im_valid))
+Xlcint.h:769:extern Bool _XlcValidModSyntax(
+
+#### _Xlcmbstoutf8 ####
+imThaiFlt.c:1410: _Xlcmbstoutf8(ic->core.im->core.lcd, &b->utf8[b->tree[ic->private.local.composed].utf8],
+lcStd.c:313:_Xlcmbstoutf8(
+lcStd.c:357: return _Xlcmbstoutf8((XLCd) NULL, ustr, str, len);
+XlcPubI.h:251:_Xlcmbstoutf8(
+
+#### _Xlcmbstowcs ####
+lcStd.c:121:_Xlcmbstowcs(
+lcStd.c:232: return _Xlcmbstowcs((XLCd) NULL, wstr, str, len);
+XlcPubI.h:268:_Xlcmbstowcs(
+
+#### _Xlcmbtowc ####
+lcStd.c:33:_Xlcmbtowc(
+lcStd.c:206: return _Xlcmbtowc((XLCd) NULL, wstr, str, len);
+XlcPubI.h:279:_Xlcmbtowc(
+
+#### _Xlcwcstombs ####
+imThaiFlt.c:1407: _Xlcwcstombs(ic->core.im->core.lcd, &b->mb[b->tree[ic->private.local.composed].mb],
+lcStd.c:160:_Xlcwcstombs(
+lcStd.c:241: return _Xlcwcstombs((XLCd) NULL, str, wstr, len);
+XlcPubI.h:262:_Xlcwcstombs(
+
+#### _Xlcwctomb ####
+imLcLkup.c:65: ret = _Xlcwctomb(ic->core.im->core.lcd, mb, BRL_UC_ROW | pattern);
+lcStd.c:78:_Xlcwctomb(
+lcStd.c:223: return _Xlcwctomb((XLCd) NULL, str, wc);
+XlcPubI.h:285:_Xlcwctomb(
+
+#### _XmbDefaultDrawImageString ####
+omDefault.c:406:_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+omDefault.c:426: _XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, buf, length);
+omDefault.c:445: _XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, buf, length);
+omGeneric.c:1498: _XmbDefaultDrawImageString,
+XDefaultOMIF.c:810:_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+XDefaultOMIF.c:830: _XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, buf, length);
+XDefaultOMIF.c:844: _XmbDefaultDrawImageString,
+XomGeneric.h:220:_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+
+#### _XmbDefaultDrawString ####
+omDefault.c:346:_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+omDefault.c:373: ret = _XmbDefaultDrawString(dpy, d, oc, gc, x, y, buf, length);
+omDefault.c:397: ret = _XmbDefaultDrawString(dpy, d, oc, gc, x, y, buf, length);
+omGeneric.c:1497: _XmbDefaultDrawString,
+XDefaultOMIF.c:776:_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+XDefaultOMIF.c:801: ret = _XmbDefaultDrawString(dpy, d, oc, gc, x, y, buf, length);
+XDefaultOMIF.c:843: _XmbDefaultDrawString,
+XomGeneric.h:211:_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+
+#### _XmbDefaultTextEscapement ####
+omDefault.c:91:_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length)
+omDefault.c:111: ret = _XmbDefaultTextEscapement(oc, buf, length);
+omDefault.c:134: ret = _XmbDefaultTextEscapement(oc, buf, length);
+omGeneric.c:1494: _XmbDefaultTextEscapement,
+XDefaultOMIF.c:604:_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length)
+XDefaultOMIF.c:622: ret = _XmbDefaultTextEscapement(oc, buf, length);
+XDefaultOMIF.c:840: _XmbDefaultTextEscapement,
+XomGeneric.h:175:_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length);
+
+#### _XmbDefaultTextExtents ####
+omDefault.c:143:_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
+omDefault.c:185: ret = _XmbDefaultTextExtents(oc, buf, length, overall_ink, overall_logical);
+omDefault.c:209: ret = _XmbDefaultTextExtents(oc, buf, length, overall_ink, overall_logical);
+omGeneric.c:1495: _XmbDefaultTextExtents,
+XDefaultOMIF.c:631:_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
+XDefaultOMIF.c:671: ret = _XmbDefaultTextExtents(oc, buf, length, overall_ink, overall_logical);
+XDefaultOMIF.c:841: _XmbDefaultTextExtents,
+XomGeneric.h:181:_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
+
+#### _XmbDefaultTextPerCharExtents ####
+omDefault.c:218:_XmbDefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+omDefault.c:306: ret = _XmbDefaultTextPerCharExtents(oc, buf, length, ink_buf, logical_buf,
+omDefault.c:335: ret = _XmbDefaultTextPerCharExtents(oc, buf, length, ink_buf, logical_buf,
+omGeneric.c:1496: _XmbDefaultTextPerCharExtents,
+XDefaultOMIF.c:680:_XmbDefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+XDefaultOMIF.c:765: ret = _XmbDefaultTextPerCharExtents(oc, buf, length, ink_buf, logical_buf,
+XDefaultOMIF.c:842: _XmbDefaultTextPerCharExtents,
+XomGeneric.h:190:_XmbDefaultTextPerCharExtents(
+
+#### _XmbGenericDrawImageString ####
+omGeneric.c:1519: _XmbGenericDrawImageString,
+omImText.c:65:_XmbGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+XomGeneric.h:270:_XmbGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+
+#### _XmbGenericDrawString ####
+omGeneric.c:1518: _XmbGenericDrawString,
+omText.c:349:_XmbGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+XomGeneric.h:273:_XmbGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+
+#### _XmbGenericTextEscapement ####
+omGeneric.c:1515: _XmbGenericTextEscapement,
+omTextEsc.c:284:_XmbGenericTextEscapement(XOC oc, _Xconst char *text, int length)
+XomGeneric.h:230:_XmbGenericTextEscapement(XOC oc, _Xconst char *text, int length);
+
+#### _XmbGenericTextExtents ####
+omGeneric.c:1516: _XmbGenericTextExtents,
+omTextExt.c:114:_XmbGenericTextExtents(XOC oc, _Xconst char *text, int length,
+XomGeneric.h:232:_XmbGenericTextExtents(XOC oc, _Xconst char *text, int length,
+
+#### _XmbGenericTextPerCharExtents ####
+omGeneric.c:1517: _XmbGenericTextPerCharExtents,
+omTextPer.c:166:_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+XomGeneric.h:276:_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+
+#### _XmbTextListToTextProperty ####
+lcPublic.c:55: _XmbTextListToTextProperty,
+lcTxtPr.c:218:_XmbTextListToTextProperty(
+XlcPubI.h:165:extern int _XmbTextListToTextProperty(
+
+#### _XmbTextPropertyToTextList ####
+lcPrTxt.c:245:_XmbTextPropertyToTextList(
+lcPublic.c:52: _XmbTextPropertyToTextList,
+XlcPubI.h:141:extern int _XmbTextPropertyToTextList(
+
+#### _Xmblen ####
+lcStd.c:210:_Xmblen(
+Xlib.h:64:_Xmblen(
+
+#### _Xmbstoutf8 ####
+imLcPrs.c:55:extern int _Xmbstoutf8(
+imLcPrs.c:642: l = _Xmbstoutf8(local_utf8_buf, rhs_string_mb, LOCAL_UTF8_BUFSIZE - 1);
+lcStd.c:352:_Xmbstoutf8(
+XlcPubI.h:246:_Xmbstoutf8(
+
+#### _Xmbstowcs ####
+imLcPrs.c:49:extern int _Xmbstowcs(
+imLcPrs.c:626: l = _Xmbstowcs(local_wc_buf, rhs_string_mb, LOCAL_WC_BUFSIZE - 1);
+lcStd.c:227:_Xmbstowcs(
+XlcPubI.h:257:_Xmbstowcs(
+
+#### _Xmbtowc ####
+lcStd.c:200:_Xmbtowc(
+lcStd.c:215: return _Xmbtowc((wchar_t *) NULL, str, len);
+Xlib.h:4010:extern int _Xmbtowc(
+
+#### _XomConvert ####
+omText.c:317: if (_XomConvert(oc, conv, (XPointer *) &text, &length,
+omTextEsc.c:269: if (_XomConvert(oc, conv, (XPointer *) &text, &length,
+omTextExt.c:66: if (_XomConvert(oc, conv, (XPointer *) &text, &length,
+omTextPer.c:71: if (_XomConvert(oc, conv, (XPointer *) &text, &length,
+omXChar.c:306:_XomConvert(
+XomGeneric.h:163:extern int _XomConvert(
+
+#### _XomGenericDrawString ####
+omImText.c:61: _XomGenericDrawString(dpy, d, oc, gc, x, y, type, text, length);
+omText.c:282:_XomGenericDrawString(
+omText.c:352: return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMMultiByte,
+omText.c:360: return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMWideChar,
+omText.c:368: return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMUtf8String,
+XomGeneric.h:288:_XomGenericDrawString(
+
+#### _XomGenericOpenOM ####
+omGeneric.c:2073:_XomGenericOpenOM(XLCd lcd, Display *dpy, XrmDatabase rdb,
+omGeneric.c:2097: lcd->methods->open_om = _XomGenericOpenOM;
+XomGeneric.h:150:extern XOM _XomGenericOpenOM(
+
+#### _XomGenericTextExtents ####
+omImText.c:55: _XomGenericTextExtents(oc, type, text, length, 0, &extent);
+omTextExt.c:34:_XomGenericTextExtents(
+omTextExt.c:117: return _XomGenericTextExtents(oc, XOMMultiByte, (XPointer) text, length,
+omTextExt.c:125: return _XomGenericTextExtents(oc, XOMWideChar, (XPointer) text, length,
+omTextExt.c:133: return _XomGenericTextExtents(oc, XOMUtf8String, (XPointer) text, length,
+XomGeneric.h:298:_XomGenericTextExtents(
+
+#### _XomGetFontDataFromFontSet ####
+omText.c:184: fd = _XomGetFontDataFromFontSet(fs,
+omText.c:192: * _XomGetFontDataFromFontSet() always seems to return for
+omText.c:223: fd = _XomGetFontDataFromFontSet(fs,
+omText.c:232: fd = _XomGetFontDataFromFontSet(fs,
+omTextEsc.c:149: fd = _XomGetFontDataFromFontSet(font_set, ptr, length, &ptr_len,
+omTextEsc.c:158: * _XomGetFontDataFromFontSet() always seems to return for
+omTextEsc.c:194: fd = _XomGetFontDataFromFontSet(font_set, ptr, length, &ptr_len,
+omTextEsc.c:203: fd = _XomGetFontDataFromFontSet(font_set, ptr, length,
+omXChar.c:116:_XomGetFontDataFromFontSet(
+XomGeneric.h:306:_XomGetFontDataFromFontSet(
+
+#### _XomInitConverter ####
+omDefault.c:54: conv = _XomInitConverter(oc, XOMWideChar);
+omDefault.c:77: conv = _XomInitConverter(oc, XOMUtf8String);
+omText.c:305: conv = _XomInitConverter(oc, type);
+omTextEsc.c:257: conv = _XomInitConverter(oc, type);
+omTextExt.c:52: conv = _XomInitConverter(oc, type);
+omTextPer.c:57: conv = _XomInitConverter(oc, type);
+omXChar.c:360:_XomInitConverter(
+XomGeneric.h:158:extern XlcConv _XomInitConverter(
+
+#### _XrmDefaultInitParseInfo ####
+lcPublic.c:51: _XrmDefaultInitParseInfo,
+lcRM.c:82:/* Frees the state, which was allocated by _XrmDefaultInitParseInfo. */
+lcRM.c:173:/* Frees the state, which was allocated by _XrmDefaultInitParseInfo. */
+lcRM.c:194:_XrmDefaultInitParseInfo(
+Xlcint.h:168: init_parse_info function (default: _XrmDefaultInitParseInfo). */
+XlcPubI.h:136:extern XrmMethods _XrmDefaultInitParseInfo(
+
+#### _XrmInitParseInfo ####
+lcWrap.c:365:_XrmInitParseInfo(
+Xrm.c:503: db->methods = _XrmInitParseInfo(&db->mbstate);
+Xlcint.h:796:extern XrmMethods _XrmInitParseInfo(
+
+#### _XrmInternalStringToQuark ####
+Quarks.c:238:_XrmInternalStringToQuark(
+Quarks.c:286: return _XrmInternalStringToQuark(name, len, sig, permstring);
+Quarks.c:358: return _XrmInternalStringToQuark(name, tname-(char *)name-1, sig, False);
+Quarks.c:374: return _XrmInternalStringToQuark(name, tname-(char *)name-1, sig, True);
+StrKeysym.c:121: names[0] = _XrmInternalStringToQuark(s, p - s - 1, sig, False);
+Xrm.c:377: *quarks++ = _XrmInternalStringToQuark(name,tname - name,
+Xrm.c:389: *quarks++ = _XrmInternalStringToQuark(name, tname - name, sig, False);
+Xrm.c:414: *quarks++ = _XrmInternalStringToQuark(name, tname - name,
+Xrm.c:432: *quarks++ = _XrmInternalStringToQuark(name, tname - name, sig, False);
+Xrm.c:1244: _XrmInternalStringToQuark(lhs, ptr - lhs, sig, False);
+Xresinternal.h:13:extern XrmQuark _XrmInternalStringToQuark(
+
+#### _Xthread_self_fn ####
+locking.c:609: _Xthread_self_fn = _Xthread_self;
+XlibInt.c:100:xthread_t (*_Xthread_self_fn)(void) = NULL;
+XlibInt.c:102:#define XThread_Self() ((*_Xthread_self_fn)())
+locking.h:49:extern xthread_t (*_Xthread_self_fn)( /* in XlibInt.c */
+
+#### _Xutf8DefaultDrawImageString ####
+omDefault.c:433:_Xutf8DefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+omGeneric.c:1508: _Xutf8DefaultDrawImageString
+XomGeneric.h:226:_Xutf8DefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+
+#### _Xutf8DefaultDrawString ####
+omDefault.c:382:_Xutf8DefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+omGeneric.c:1507: _Xutf8DefaultDrawString,
+XomGeneric.h:217:_Xutf8DefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+
+#### _Xutf8DefaultTextEscapement ####
+omDefault.c:120:_Xutf8DefaultTextEscapement(XOC oc, _Xconst char *text, int length)
+omGeneric.c:1504: _Xutf8DefaultTextEscapement,
+XomGeneric.h:179:_Xutf8DefaultTextEscapement(XOC oc, _Xconst char *text, int length);
+
+#### _Xutf8DefaultTextExtents ####
+omDefault.c:194:_Xutf8DefaultTextExtents(XOC oc, _Xconst char *text, int length,
+omGeneric.c:1505: _Xutf8DefaultTextExtents,
+XomGeneric.h:187:_Xutf8DefaultTextExtents(XOC oc, _Xconst char *text, int length,
+
+#### _Xutf8DefaultTextPerCharExtents ####
+omDefault.c:317:_Xutf8DefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+omGeneric.c:1506: _Xutf8DefaultTextPerCharExtents,
+XomGeneric.h:204:_Xutf8DefaultTextPerCharExtents(
+
+#### _Xutf8GenericDrawImageString ####
+omGeneric.c:1529: _Xutf8GenericDrawImageString
+omImText.c:81:_Xutf8GenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+XomGeneric.h:238:_Xutf8GenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+
+#### _Xutf8GenericDrawString ####
+omGeneric.c:1528: _Xutf8GenericDrawString,
+omText.c:365:_Xutf8GenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+XomGeneric.h:235:_Xutf8GenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+
+#### _Xutf8GenericTextEscapement ####
+omGeneric.c:1525: _Xutf8GenericTextEscapement,
+omTextEsc.c:296:_Xutf8GenericTextEscapement(XOC oc, _Xconst char *text, int length)
+XomGeneric.h:251:_Xutf8GenericTextEscapement(XOC oc, _Xconst char *text, int length);
+
+#### _Xutf8GenericTextExtents ####
+omGeneric.c:1526: _Xutf8GenericTextExtents,
+omTextExt.c:130:_Xutf8GenericTextExtents(XOC oc, _Xconst char *text, int length,
+XomGeneric.h:248:_Xutf8GenericTextExtents(XOC oc, _Xconst char *text, int length,
+
+#### _Xutf8GenericTextPerCharExtents ####
+omGeneric.c:1527: _Xutf8GenericTextPerCharExtents,
+omTextPer.c:192:_Xutf8GenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+XomGeneric.h:241:_Xutf8GenericTextPerCharExtents(
+
+#### _Xutf8TextListToTextProperty ####
+lcPublic.c:57: _Xutf8TextListToTextProperty,
+lcTxtPr.c:244:_Xutf8TextListToTextProperty(
+XlcPubI.h:183:extern int _Xutf8TextListToTextProperty(
+
+#### _Xutf8TextPropertyToTextList ####
+lcPrTxt.c:269:_Xutf8TextPropertyToTextList(
+lcPublic.c:54: _Xutf8TextPropertyToTextList,
+XlcPubI.h:157:extern int _Xutf8TextPropertyToTextList(
+
+#### _XwcDefaultDrawImageString ####
+omDefault.c:414:_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+omGeneric.c:1503: _XwcDefaultDrawImageString,
+XDefaultOMIF.c:818:_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+XDefaultOMIF.c:849: _XwcDefaultDrawImageString
+XomGeneric.h:223:_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+
+#### _XwcDefaultDrawString ####
+omDefault.c:358:_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+omGeneric.c:1502: _XwcDefaultDrawString,
+XDefaultOMIF.c:788:_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+XDefaultOMIF.c:848: _XwcDefaultDrawString,
+XomGeneric.h:214:_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+
+#### _XwcDefaultTextEscapement ####
+omDefault.c:97:_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
+omGeneric.c:1499: _XwcDefaultTextEscapement,
+XDefaultOMIF.c:610:_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
+XDefaultOMIF.c:845: _XwcDefaultTextEscapement,
+XomGeneric.h:177:_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length);
+
+#### _XwcDefaultTextExtents ####
+omDefault.c:170:_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
+omGeneric.c:1500: _XwcDefaultTextExtents,
+XDefaultOMIF.c:658:_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
+XDefaultOMIF.c:846: _XwcDefaultTextExtents,
+XomGeneric.h:184:_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
+
+#### _XwcDefaultTextPerCharExtents ####
+omDefault.c:288:_XwcDefaultTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
+omGeneric.c:1501: _XwcDefaultTextPerCharExtents,
+XDefaultOMIF.c:749:_XwcDefaultTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
+XDefaultOMIF.c:847: _XwcDefaultTextPerCharExtents,
+XomGeneric.h:197:_XwcDefaultTextPerCharExtents(
+
+#### _XwcFreeStringList ####
+lcPrTxt.c:281:_XwcFreeStringList(
+lcPublic.c:58: _XwcFreeStringList,
+XlcPubI.h:192:extern void _XwcFreeStringList(
+
+#### _XwcGenericDrawImageString ####
+omGeneric.c:1524: _XwcGenericDrawImageString,
+omImText.c:73:_XwcGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+XomGeneric.h:253:_XwcGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+
+#### _XwcGenericDrawString ####
+omGeneric.c:1523: _XwcGenericDrawString,
+omText.c:357:_XwcGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+XomGeneric.h:256:_XwcGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+
+#### _XwcGenericTextEscapement ####
+omGeneric.c:1520: _XwcGenericTextEscapement,
+omTextEsc.c:290:_XwcGenericTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
+XomGeneric.h:268:_XwcGenericTextEscapement(XOC oc, _Xconst wchar_t *text, int length);
+
+#### _XwcGenericTextExtents ####
+omGeneric.c:1521: _XwcGenericTextExtents,
+omTextExt.c:122:_XwcGenericTextExtents(XOC oc, _Xconst wchar_t *text, int length,
+XomGeneric.h:265:_XwcGenericTextExtents(XOC oc, _Xconst wchar_t *text, int length,
+
+#### _XwcGenericTextPerCharExtents ####
+omGeneric.c:1522: _XwcGenericTextPerCharExtents,
+omTextPer.c:179:_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
+XomGeneric.h:259:_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
+
+#### _XwcTextListToTextProperty ####
+lcPublic.c:56: _XwcTextListToTextProperty,
+lcTxtPr.c:231:_XwcTextListToTextProperty(
+XlcPubI.h:174:extern int _XwcTextListToTextProperty(
+
+#### _XwcTextPropertyToTextList ####
+lcPrTxt.c:257:_XwcTextPropertyToTextList(
+lcPublic.c:53: _XwcTextPropertyToTextList,
+XlcPubI.h:149:extern int _XwcTextPropertyToTextList(
+
+#### _Xwcscmp ####
+lcStd.c:286:_Xwcscmp(
+XlcPublic.h:299:extern int _Xwcscmp(wchar_t *wstr1, wchar_t *wstr2);
+
+#### _Xwcscpy ####
+lcPrTxt.c:87: _Xwcscpy(wstr, wc_text);
+lcStd.c:245:_Xwcscpy(
+XlcPublic.h:293:extern wchar_t *_Xwcscpy(
+
+#### _Xwcslen ####
+imLcLkup.c:157: ret = _Xwcslen(&wc[b[ic->private.local.composed].wc]);
+lcPrTxt.c:89: length = _Xwcslen(wstr) + 1;
+lcStd.c:181: from_left = _Xwcslen(wstr);
+lcStd.c:274:_Xwcslen(
+lcTxtPr.c:52: length += _Xwcslen(*wc_list) + 1;
+lcTxtPr.c:160: from_left = _Xwcslen(*wc_list);
+XlcPublic.h:289:extern int _Xwcslen(
+
+#### _Xwcsncmp ####
+lcStd.c:297:_Xwcsncmp(
+XlcPublic.h:300:extern int _Xwcsncmp(wchar_t *wstr1, wchar_t *wstr2, int len);
+
+#### _Xwcsncpy ####
+lcStd.c:257:_Xwcsncpy(
+XlcPublic.h:298:extern wchar_t *_Xwcsncpy(wchar_t *wstr1, wchar_t *wstr2, int len);
+
+#### _Xwcstombs ####
+lcStd.c:236:_Xwcstombs(
+XlcPubI.h:274:_Xwcstombs(
+
+#### _Xwctomb ####
+lcStd.c:219:_Xwctomb(
+Xlib.h:4016:extern int _Xwctomb(
+
+#### _qfree ####
+globals.c:74:ZEROINIT (_XQEvent *, _qfree, NULL);
+
+#### read_EncodingInfo ####
+omGeneric.c:1820:read_EncodingInfo(
+omGeneric.c:1899: font_set->vmap = read_EncodingInfo(count,value);
+omGeneric.c:1994: font_data = read_EncodingInfo(count,value);
+omGeneric.c:2004: font_data = read_EncodingInfo(count,value);
+omGeneric.c:2016: font_data = read_EncodingInfo(count,value);
+XomGeneric.h:283:read_EncodingInfo(
+
+#### xlocaledir ####
+imLcPrs.c:347: xlocaledir(dir, XLC_BUFSIZE);
+lcFile.c:199:xlocaledir(
+lcFile.c:484: xlocaledir(dir,XLC_BUFSIZE);
+lcFile.c:537: xlocaledir (dir, PATH_MAX);
+lcFile.c:612: xlocaledir(buf, buf_len);
+lcFile.c:637: xlocaledir (dir, PATH_MAX);
+Xlibint.h:1359:extern void xlocaledir(
diff --git a/doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxagent.txt b/doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxagent.txt
new file mode 100644
index 000000000..54b9d24f1
--- /dev/null
+++ b/doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxagent.txt
@@ -0,0 +1,3288 @@
+
+#### KeySymToUcs4 ####
+
+#### XActivateScreenSaver ####
+
+#### XAddConnectionWatch ####
+
+#### XAddExtension ####
+
+#### XAddHost ####
+
+#### XAddHosts ####
+
+#### XAddPixel ####
+
+#### XAddToExtensionList ####
+
+#### XAddToSaveSet ####
+
+#### XAllPlanes ####
+
+#### XAllocClassHint ####
+
+#### XAllocColor ####
+
+#### XAllocColorCells ####
+
+#### XAllocColorPlanes ####
+
+#### XAllocIconSize ####
+
+#### XAllocNamedColor ####
+
+#### XAllocSizeHints ####
+
+#### XAllocStandardColormap ####
+
+#### XAllocWMHints ####
+
+#### XAllowEvents ####
+NXevents.c:310:// * XAllowEvents(nxagentDisplay, stuff -> mode, CurrentTime);
+
+#### XAutoRepeatOff ####
+
+#### XAutoRepeatOn ####
+
+#### XBaseFontNameListOfFontSet ####
+
+#### XBell ####
+Keyboard.c:588: XBell(nxagentDisplay, volume);
+
+#### XBitmapBitOrder ####
+
+#### XBitmapPad ####
+
+#### XBitmapUnit ####
+
+#### XBlackPixel ####
+
+#### XBlackPixelOfScreen ####
+
+#### XCellsOfScreen ####
+
+#### XChangeActivePointerGrab ####
+
+#### XChangeGC ####
+Cursor.c:176: XChangeGC(nxagentDisplay, nxagentBitmapGC, valuemask, &values);
+GC.c:564: XChangeGC(nxagentDisplay, nxagentGC(pGC), mask, &values);
+GC.c:1441: * This is why we call the XChangeGC at the end of
+GC.c:1532: XChangeGC(nxagentDisplay, nxagentGC(pGC), mask, &values);
+GC.c:1561: * lues and to avoid XChangeGC() requests.
+Holder.c:147: XChangeGC(nxagentDisplay, gc, GCForeground | GCLineWidth | GCLineStyle, &value);
+Holder.c:161: XChangeGC(nxagentDisplay, gc, GCForeground | GCLineWidth | GCLineStyle, &value);
+
+#### XChangeKeyboardControl ####
+Keyboard.c:660: XChangeKeyboardControl(nxagentDisplay, value_mask, &values);
+Keyboard.c:675: XChangeKeyboardControl(nxagentDisplay, value_mask, &values);
+
+#### XChangeKeyboardMapping ####
+
+#### XChangePointerControl ####
+Pointer.c:94: XChangePointerControl(nxagentDisplay, True, True,
+
+#### XChangeProperty ####
+Clipboard.c:323: XChangeProperty (nxagentDisplay,
+Clipboard.c:341: XChangeProperty(nxagentDisplay,
+Clipboard.c:957: fprintf (stderr, "SelectionNotify - XChangeProperty failed\n");
+Clipboard.c:963: result = XChangeProperty(nxagentDisplay,
+Rootless.c:76: * a parameter of XChangeProperty().
+Rootless.c:524: * Initialize the structure used in XChangeProperty().
+Rootless.c:747: XChangeProperty(nxagentDisplay, nxagentWindow(pWin), propertyX, typeX,
+Rootless.c:772: XChangeProperty(nxagentDisplay, nxagentWindow(pWin), propertyX,
+Screen.c:1831: XChangeProperty(nxagentDisplay,
+Screen.c:2588: XChangeProperty(nxagentShadowDisplay, DefaultRootWindow(nxagentShadowDisplay),
+
+#### XChangeSaveSet ####
+
+#### XChangeWindowAttributes ####
+Splash.c:159: XChangeWindowAttributes(nxagentDisplay, nxagentSplashWindow, CWOverrideRedirect, &attributes);
+Window.c:808: XChangeWindowAttributes(nxagentDisplay, w, valuemask, &attributes);
+Window.c:943: XChangeWindowAttributes(nxagentDisplay, w, valuemask, &attributes);
+Window.c:1856: XChangeWindowAttributes(nxagentDisplay, nxagentWindow(pWin), mask, &attributes);
+Window.c:3400: XChangeWindowAttributes(nxagentDisplay, nxagentWindow(pWin), mask, &attributes);
+
+#### XCheckIfEvent ####
+Events.h:234: XCheckIfEventNoFlush((display), (event), (predicate), (argument))
+
+#### XCheckIfEventNoFlush ####
+Events.h:234: XCheckIfEventNoFlush((display), (event), (predicate), (argument))
+
+#### XCheckMaskEvent ####
+
+#### XCheckTypedEvent ####
+
+#### XCheckTypedWindowEvent ####
+Events.c:3372: while (XCheckTypedWindowEvent(nxagentDisplay, nxagentDefaultWindows[pScreen -> myNum],
+Screen.c:343: if (XCheckTypedWindowEvent(nxagentDisplay, nxagentFullscreenWindow, ReparentNotify, &e))
+Screen.c:361: while (XCheckTypedWindowEvent(nxagentDisplay, nxagentFullscreenWindow, LeaveNotify, &e));
+Window.c:832: if (XCheckTypedWindowEvent(nxagentDisplay, w, ReparentNotify, &e))
+Window.c:914: XCheckTypedWindowEvent(nxagentDisplay, w, LeaveNotify, &e);
+
+#### XCheckWindowEvent ####
+
+#### XCirculateSubwindows ####
+Rootless.c:242: XCirculateSubwindows(nxagentDisplay, DefaultRootWindow(nxagentDisplay), direction);
+
+#### XCirculateSubwindowsDown ####
+
+#### XCirculateSubwindowsUp ####
+
+#### XClearArea ####
+Drawable.c:72: * If defined, send the XClearArea at the end
+Drawable.c:920: XClearArea(nxagentDisplay, nxagentWindow(owner), scaledx, scaledy, scaledw, scaledh, 0);
+Drawable.c:924: XClearArea(nxagentDisplay, nxagentWindow(owner), x, y, w, h, 0);
+Drawable.c:1051: XClearArea(nxagentDisplay, nxagentWindow(owner), scaledx, scaledy, scaledw, scaledh, 0);
+Drawable.c:1055: XClearArea(nxagentDisplay, nxagentWindow(owner), x, y, w, h, 0);
+Drawable.c:2327: XClearArea(nxagentDisplay, nxagentWindow(pWin), pBox[i].x1, pBox[i].y1,
+Window.c:2004: XClearArea(nxagentDisplay, nxagentWindow(pWin),
+
+#### XClearWindow ####
+Events.c:2519: XClearWindow(nxagentDisplay, nxagentWindowPriv(nxagentRootTileWindow) -> window);
+Pixmap.c:1350: XClearWindow(shadow, win);
+Pixmap.c:1502: XClearWindow(shadow, win);
+Screen.c:1898: XClearWindow(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum]);
+Window.c:481: XClearWindow(nxagentDisplay, nxagentWindowPriv(nxagentRootTileWindow)->window);
+Window.c:652: XClearWindow(nxagentDisplay, nxagentWindowPriv(nxagentRootTileWindow) -> window);
+
+#### XClipBox ####
+
+#### XCloseDisplay ####
+Display.c:1869: XCloseDisplay(nxagentDisplay);
+Display.c:2105: XCloseDisplay(nxagentDisplayBackup);
+Display.c:2164: XCloseDisplay(nxagentDisplay);
+
+#### XCloseIM ####
+
+#### XCloseOM ####
+
+#### XConfigureWindow ####
+Pixmap.c:1541: XConfigureWindow(shadow, win, CWWidth | CWHeight, &values);
+Rootless.c:237: XConfigureWindow(nxagentDisplay, nxagentWindow(pWin), mask, &changes);
+Screen.c:1819: XConfigureWindow(nxagentDisplay, nxagentFullscreenWindow, ch_mask, &ch);
+Screen.c:2932: XConfigureWindow(nxagentDisplay, nxagentWindow(nxagentShadowWindowPtr), mask, &changes);
+Screen.c:2965: XConfigureWindow(nxagentDisplay, nxagentWindow(pWin), mask, &changes);
+Splash.c:157: XConfigureWindow(nxagentDisplay, nxagentSplashWindow, CWStackMode, &values);
+Window.c:1358: XConfigureWindow(nxagentDisplay, nxagentWindow(pWin), valuemask, &values);
+Window.c:1388: XConfigureWindow(nxagentDisplay, nxagentWindow(pSib), valuemask, &values);
+Window.c:1412: XConfigureWindow(nxagentDisplay, nxagentWindow(pSib), valuemask, &values);
+Window.c:1480: * XConfigureWindow(nxagentDisplay, nxagentSplashWindow, valuemask, &values);
+Window.c:3486: XConfigureWindow(nxagentDisplay, nxagentConfiguredSynchroWindow,
+
+#### XConnectionNumber ####
+Display.c:110:int nxagentXConnectionNumber;
+Display.c:1236: nxagentXConnectionNumber = XConnectionNumber(nxagentDisplay);
+Display.c:2937: int fd = XConnectionNumber(nxagentDisplay);
+Display.c:2939: nxagentXConnectionNumber = fd;
+Display.c:2943: "to the device set.\n", nxagentXConnectionNumber);
+Display.c:2946: AddEnabledDevice(nxagentXConnectionNumber);
+Display.c:2953: "from the device set.\n", nxagentXConnectionNumber);
+Display.c:2956: RemoveEnabledDevice(nxagentXConnectionNumber);
+Display.c:2986: nxagentXConnectionNumber);
+Handlers.c:636: if (count > 0 && FD_ISSET(nxagentXConnectionNumber, (fd_set *) mask))
+Handlers.c:649: FD_CLR(nxagentXConnectionNumber, (fd_set *) mask);
+Handlers.c:932: if (count > 0 && FD_ISSET(nxagentXConnectionNumber, (fd_set *) mask))
+Handlers.c:945: FD_CLR(nxagentXConnectionNumber, (fd_set *) mask);
+Screen.c:196:int nxagentShadowXConnectionNumber;
+Screen.c:2773: fd = XConnectionNumber(nxagentShadowDisplay);
+Screen.c:2775: nxagentShadowXConnectionNumber = fd;
+Screen.c:2784: AddEnabledDevice(nxagentShadowXConnectionNumber);
+Display.h:159:extern int nxagentXConnectionNumber;
+Display.h:166:extern int nxagentShadowXConnectionNumber;
+
+#### XContextDependentDrawing ####
+
+#### XContextualDrawing ####
+
+#### XConvertCase ####
+
+#### XConvertSelection ####
+Clipboard.c:401: XConvertSelection(nxagentDisplay, CurrentSelections[i].selection,
+Clipboard.c:406: fprintf(stderr, "nxagentRequestSelection: Sent XConvertSelection.\n");
+Clipboard.c:1353: XConvertSelection(nxagentDisplay, selection, serverUTF8_STRING, serverCutProperty,
+Clipboard.c:1358: XConvertSelection(nxagentDisplay, selection, XA_STRING, serverCutProperty,
+Clipboard.c:1363: fprintf(stderr, "nxagentConvertSelection: Sent XConvertSelection with target=[%s], property [%s]\n",
+
+#### XCopyArea ####
+GCOps.c:276: * XCopyArea request must be skipped.
+GCOps.c:533: XCopyArea(nxagentDisplay, nxagentDrawable(pSrcDrawable), nxagentDrawable(pDstDrawable),
+GCOps.c:824: XCopyArea(nxagentDisplay, nxagentDrawable(pSrcDrawable), nxagentDrawable(pDstDrawable),
+Holder.c:182: XCopyArea(nxagentDisplay, nxagentPlaceholderPixmaps[depth],
+Screen.c:4205: XCopyArea(nxagentDisplay, nxagentWindow(pWin), nxagentPixmap(pPixmap), gc,
+Screen.c:4340: XCopyArea(nxagentDisplay, nxagentPixmap(pPixmap), nxagentWindow(pWin), gc,
+
+#### XCopyColormapAndFree ####
+
+#### XCopyGC ####
+GC.c:587: XCopyGC(nxagentDisplay, nxagentGC(pGCSrc), mask, nxagentGC(pGCDst));
+
+#### XCopyPlane ####
+GCOps.c:1075: XCopyPlane(nxagentDisplay,
+
+#### XCreateBitmapFromData ####
+
+#### XCreateColormap ####
+Colormap.c:106: XCreateColormap(nxagentDisplay,
+Colormap.c:569: XCreateColormap(nxagentDisplay,
+Display.c:1289: nxagentDefaultColormaps[i] = XCreateColormap(nxagentDisplay,
+Display.c:2790: nxagentDefaultColormaps[i] = XCreateColormap(nxagentDisplay,
+
+#### XCreateFontCursor ####
+Events.c:1244: viewportCursor = XCreateFontCursor(nxagentDisplay, XC_fleur);
+
+#### XCreateFontSet ####
+
+#### XCreateGC ####
+Display.c:1372: nxagentBitmapGC = XCreateGC(nxagentDisplay, nxagentDefaultDrawables[1], 0L, NULL);
+Display.c:2892: nxagentBitmapGC = XCreateGC(nxagentDisplay, nxagentDefaultDrawables[1], 0L, NULL);
+Drawable.c:2578: gc = XCreateGC(nxagentDisplay, nxagentWindow(pWin), GCForeground | GCSubwindowMode, &value);
+GC.c:172: nxagentGCPriv(pGC)->gc = XCreateGC(nxagentDisplay,
+GC.c:1144: if ((nxagentGC(pGC) = XCreateGC(nxagentDisplay,
+Holder.c:126: gc = XCreateGC(nxagentDisplay, drawable, GCBackground |
+Pixmap.c:1431: gc = XCreateGC(shadow, win, GCBackground |
+Pixmap.c:1593: gc = XCreateGC(shadow, win, GCBackground |
+Screen.c:2816: gc = XCreateGC(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), GCBackground |
+Screen.c:4133: gc = XCreateGC(nxagentDisplay, nxagentWindow(screenInfo.screens[0]->root), GCSubwindowMode, &values);
+Screen.c:4254: gc = XCreateGC(nxagentDisplay, nxagentWindow(screenInfo.screens[0]->root), GCSubwindowMode, &values);
+Screen.c:4562: gc = XCreateGC(shadow, win, GCBackground |
+Screen.c:4677: gc = XCreateGC(shadow, nxagentWindow(screenInfo.screens[0]->root), GCBackground |
+Splash.c:153: gc = XCreateGC(nxagentDisplay, nxagentSplashWindow, 0, NULL);
+
+#### XCreateGlyphCursor ####
+
+#### XCreateIC ####
+
+#### XCreateImage ####
+Cursor.c:190: image = XCreateImage(nxagentDisplay,
+Cursor.c:216: image = XCreateImage(nxagentDisplay,
+Drawable.c:2162: ximage = XCreateImage(nxagentDisplay, pVisual, depth, format, leftPad, (char *) data,
+Image.c:985: image = XCreateImage(nxagentDisplay, pVisual, depth, ZPixmap,
+Image.c:1098: * XCreateImage is the place where the leftPad should be passed.
+Image.c:1107: * plainImage = XCreateImage(nxagentDisplay, pVisual,
+Image.c:1113: if ((plainImage = XCreateImage(nxagentDisplay, pVisual,
+Image.c:1698: newImage = XCreateImage(nxagentDisplay, NULL, image -> depth, image -> format, 0, NULL,
+Pixmap.c:1407: image = XCreateImage(nxagentDisplay, pVisual,
+Pixmap.c:1415: fprintf(stderr, "nxagentPixmapOnShadowDisplay: XCreateImage failed.\n");
+Pixmap.c:1569: image = XCreateImage(nxagentDisplay, pVisual,
+Pixmap.c:1577: fprintf(stderr, "nxagentFbOnShadowDisplay: XCreateImage failed.\n");
+Screen.c:4660: image = XCreateImage(nxagentDisplay, pVisual,
+
+#### XCreateOC ####
+
+#### XCreatePixmap ####
+Cursor.c:178: source = XCreatePixmap(nxagentDisplay,
+Cursor.c:184: mask = XCreatePixmap(nxagentDisplay,
+Cursor.c:245: XCreatePixmapCursor(nxagentDisplay, source, mask, &fg_color,
+Display.c:1775: XCreatePixmap(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Display.c:1793: XCreatePixmap(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Pixmap.c:219: pPixmapPriv -> id = XCreatePixmap(nxagentDisplay,
+Pixmap.c:898: pPixmapPriv -> id = XCreatePixmap(nxagentDisplay,
+Screen.c:2882: xid = XCreatePixmap(nxagentDisplay, nxagentDefaultWindows[0],
+Screen.c:3560: nxagentPixmap(pPixmap) = XCreatePixmap(nxagentDisplay,
+Screen.c:3574: XCreatePixmap(nxagentDisplay,
+Splash.c:223: nxagentPixmapLogo = XCreatePixmap(nxagentDisplay, win, width, height, nxagentLogoDepth);
+
+#### XCreatePixmapCursor ####
+Cursor.c:245: XCreatePixmapCursor(nxagentDisplay, source, mask, &fg_color,
+
+#### XCreatePixmapFromBitmapData ####
+
+#### XCreateRegion ####
+Render.c:715: reg = XCreateRegion();
+Window.c:2346: reg = XCreateRegion();
+Window.c:2406: reg = XCreateRegion();
+
+#### XCreateSimpleWindow ####
+Pixmap.c:1346: win = XCreateSimpleWindow(shadow, DefaultRootWindow(shadow), 0, 0,
+Pixmap.c:1498: win = XCreateSimpleWindow(shadow, DefaultRootWindow(shadow), 0, 0,
+Screen.c:4493: win = XCreateSimpleWindow(shadow, DefaultRootWindow(shadow), 0, 0,
+Splash.c:140: XCreateSimpleWindow(nxagentDisplay,
+
+#### XCreateWindow ####
+Display.c:1384: nxagentConfineWindow = XCreateWindow(nxagentDisplay,
+Display.c:2898: nxagentConfineWindow = XCreateWindow(nxagentDisplay,
+Screen.c:392: w = XCreateWindow(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Screen.c:1734: XCreateWindow(nxagentDisplay,
+Screen.c:1753: XCreateWindow(nxagentDisplay,
+Window.c:380: nxagentWindowPriv(pWin)->window = XCreateWindow(nxagentDisplay,
+Window.c:2152: nxagentConfiguredSynchroWindow = XCreateWindow(nxagentDisplay, DefaultRootWindow(nxagentDisplay), 0, 0,
+Window.c:2980: nxagentWindow(pWin) = XCreateWindow(nxagentDisplay,
+
+#### XDefaultColormap ####
+
+#### XDefaultColormapOfScreen ####
+
+#### XDefaultDepth ####
+
+#### XDefaultDepthOfScreen ####
+
+#### XDefaultGC ####
+
+#### XDefaultGCOfScreen ####
+
+#### XDefaultRootWindow ####
+
+#### XDefaultScreen ####
+
+#### XDefaultScreenOfDisplay ####
+
+#### XDefaultString ####
+
+#### XDefaultVisual ####
+
+#### XDefaultVisualOfScreen ####
+
+#### XDefineCursor ####
+Cursor.c:139: XDefineCursor(nxagentDisplay,
+Window.c:3167: XDefineCursor(nxagentDisplay,nxagentWindow(pWin),nxagentCursor(pCursor,pScreen));
+
+#### XDeleteContext ####
+
+#### XDeleteModifiermapEntry ####
+
+#### XDeleteProperty ####
+Rootless.c:755: XDeleteProperty(nxagentDisplay, nxagentWindow(pWin), propertyX);
+
+#### XDestroyIC ####
+
+#### XDestroyImage ####
+Drawable.c:2179: XDestroyImage(ximage);
+Image.c:1076: XDestroyImage(image);
+Pixmap.c:1166: XDestroyImage(image);
+Pixmap.c:1442: XDestroyImage(image);
+Pixmap.c:1604: XDestroyImage(image);
+Screen.c:4577: XDestroyImage(image);
+Screen.c:4693: XDestroyImage(image);
+Window.c:3338: XDestroyImage(image);
+
+#### XDestroyOC ####
+
+#### XDestroyRegion ####
+Render.c:749: XDestroyRegion(reg);
+Window.c:2364: XDestroyRegion(reg);
+Window.c:2424: XDestroyRegion(reg);
+
+#### XDestroySubwindows ####
+
+#### XDestroyWindow ####
+Screen.c:4589: XDestroyWindow(shadow, win);
+Splash.c:404: XDestroyWindow(nxagentDisplay, nxagentSplashWindow);
+Window.c:636: XDestroyWindow(nxagentDisplay, nxagentWindow(pWin));
+Window.c:964: XDestroyWindow(nxagentDisplay, nxagentIconWindow);
+
+#### XDirectionalDependentDrawing ####
+
+#### XDisableAccessControl ####
+
+#### XDisplayCells ####
+
+#### XDisplayHeight ####
+
+#### XDisplayHeightMM ####
+
+#### XDisplayKeycodes ####
+Keyboard.c:750: XDisplayKeycodes(nxagentDisplay, &min_keycode, &max_keycode);
+
+#### XDisplayMotionBufferSize ####
+
+#### XDisplayName ####
+Display.c:1206: strncpy(nxagentDisplayName, XDisplayName(NULL), 1023);
+
+#### XDisplayOfIM ####
+
+#### XDisplayOfOM ####
+
+#### XDisplayOfScreen ####
+
+#### XDisplayPlanes ####
+
+#### XDisplayString ####
+
+#### XDisplayWidth ####
+
+#### XDisplayWidthMM ####
+
+#### XDoesBackingStore ####
+Init.c:340: nxagentBackingStore = XDoesBackingStore(DefaultScreenOfDisplay(nxagentDisplay));
+
+#### XDoesSaveUnders ####
+Init.c:347: nxagentSaveUnder = XDoesSaveUnders(DefaultScreenOfDisplay(nxagentDisplay));
+
+#### XDrawArc ####
+GCOps.c:1424: XDrawArcs(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1430: XDrawArcs(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1440: XDrawArcs(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XDrawArcs ####
+GCOps.c:1424: XDrawArcs(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1430: XDrawArcs(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1440: XDrawArcs(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XDrawImageString16 ####
+GCOps.c:2024: XDrawImageString16(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:2030: XDrawImageString16(nxagentDisplay, nxagentDrawable(pDrawable),
+GCOps.c:2040: XDrawImageString16(nxagentDisplay, nxagentDrawable(pDrawable),
+
+#### XDrawImageString ####
+GCOps.c:1967: XDrawImageString(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1973: XDrawImageString(nxagentDisplay, nxagentDrawable(pDrawable),
+GCOps.c:1983: XDrawImageString(nxagentDisplay, nxagentDrawable(pDrawable),
+GCOps.c:2024: XDrawImageString16(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:2030: XDrawImageString16(nxagentDisplay, nxagentDrawable(pDrawable),
+GCOps.c:2040: XDrawImageString16(nxagentDisplay, nxagentDrawable(pDrawable),
+
+#### XDrawLine ####
+GCOps.c:1209: XDrawLines(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1215: XDrawLines(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1225: XDrawLines(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+Holder.c:148: XDrawLines(nxagentDisplay, drawable, gc, points, 3, CoordModeOrigin);
+Holder.c:162: XDrawLines(nxagentDisplay, drawable, gc, points, 3, CoordModeOrigin);
+
+#### XDrawLines ####
+GCOps.c:1209: XDrawLines(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1215: XDrawLines(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1225: XDrawLines(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+Holder.c:148: XDrawLines(nxagentDisplay, drawable, gc, points, 3, CoordModeOrigin);
+Holder.c:162: XDrawLines(nxagentDisplay, drawable, gc, points, 3, CoordModeOrigin);
+
+#### XDrawPoint ####
+GCOps.c:1152: XDrawPoints(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1158: XDrawPoints(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1168: XDrawPoints(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XDrawPoints ####
+GCOps.c:1152: XDrawPoints(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1158: XDrawPoints(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1168: XDrawPoints(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XDrawRectangle ####
+Drawable.c:2598: XDrawRectangle(nxagentDisplay, nxagentWindow(pWin), gc,
+GCOps.c:1359: XDrawRectangles(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1365: XDrawRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1379: XDrawRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XDrawRectangles ####
+GCOps.c:1359: XDrawRectangles(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1365: XDrawRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1379: XDrawRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XDrawSegments ####
+GCOps.c:1282: XDrawSegments(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1288: XDrawSegments(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1300: XDrawSegments(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XDrawString16 ####
+GCOps.c:1908: XDrawString16(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1914: XDrawString16(nxagentDisplay, nxagentDrawable(pDrawable),
+GCOps.c:1924: XDrawString16(nxagentDisplay, nxagentDrawable(pDrawable),
+
+#### XDrawString ####
+GCOps.c:1835: XDrawString(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1841: XDrawString(nxagentDisplay, nxagentDrawable(pDrawable),
+GCOps.c:1851: XDrawString(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1908: XDrawString16(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1914: XDrawString16(nxagentDisplay, nxagentDrawable(pDrawable),
+GCOps.c:1924: XDrawString16(nxagentDisplay, nxagentDrawable(pDrawable),
+
+#### XDrawText16 ####
+
+#### XDrawText ####
+
+#### XEHeadOfExtensionList ####
+
+#### XESetBeforeFlush ####
+
+#### XESetCloseDisplay ####
+
+#### XESetCopyEventCookie ####
+
+#### XESetCopyGC ####
+
+#### XESetCreateFont ####
+
+#### XESetCreateGC ####
+
+#### XESetError ####
+
+#### XESetErrorString ####
+
+#### XESetEventToWire ####
+
+#### XESetFlushGC ####
+
+#### XESetFreeFont ####
+
+#### XESetFreeGC ####
+
+#### XESetPrintErrorValues ####
+
+#### XESetWireToError ####
+
+#### XESetWireToEvent ####
+
+#### XESetWireToEventCookie ####
+
+#### XEmptyRegion ####
+
+#### XEnableAccessControl ####
+
+#### XEqualRegion ####
+
+#### XEventMaskOfScreen ####
+
+#### XEventsQueued ####
+Events.h:231: XEventsQueued((display), QueuedAfterReading)
+
+#### XExtendedMaxRequestSize ####
+
+#### XExtentsOfFontSet ####
+
+#### XFetchBuffer ####
+
+#### XFetchBytes ####
+
+#### XFetchName ####
+Events.c:325: if (!XFetchName(nxagentDisplay, window, &winName))
+
+#### XFillArc ####
+GCOps.c:1756: XFillArcs(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1762: XFillArcs(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1776: XFillArcs(nxagentDisplay, nxagentDrawable(pDrawable),
+
+#### XFillArcs ####
+GCOps.c:1756: XFillArcs(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1762: XFillArcs(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1776: XFillArcs(nxagentDisplay, nxagentDrawable(pDrawable),
+
+#### XFillPolygon ####
+GCOps.c:1520: XFillPolygon(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1526: XFillPolygon(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1538: XFillPolygon(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+Splash.c:230: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:253: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:259: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:273: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:279: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:285: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:291: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:298: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:311: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:317: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:323: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:329: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:335: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:341: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:354: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:360: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:366: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+Splash.c:372: XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+#### XFillRectangle ####
+Drawable.c:2376: XFillRectangle(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+Drawable.c:2395: XFillRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1699: XFillRectangles(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1705: XFillRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1715: XFillRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+Holder.c:129: XFillRectangle(nxagentDisplay, drawable, gc, x, y, w, h);
+Screen.c:2819: XFillRectangle(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), gc, 0, 0,
+
+#### XFillRectangles ####
+Drawable.c:2395: XFillRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1699: XFillRectangles(nxagentDisplay, nxagentDrawable((DrawablePtr) nxagentRealPixmap((PixmapPtr) pDrawable)),
+GCOps.c:1705: XFillRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+GCOps.c:1715: XFillRectangles(nxagentDisplay, nxagentDrawable(pDrawable), nxagentGC(pGC),
+
+#### XFilterEvent ####
+
+#### XFindContext ####
+
+#### XFindOnExtensionList ####
+
+#### XFlush ####
+Client.c:355: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Events.c:3354: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Events.c:4517: NXFlushDisplay(dpy, NXFlushLink);
+Handlers.c:487: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Handlers.c:524: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Handlers.c:838: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Handlers.c:1333: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Reconnect.c:512: XFlush(nxagentDisplay);
+Screen.c:4571: XFlush(shadow);
+Screen.c:4687: XFlush(shadow);
+Split.c:760: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Split.c:874: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Window.c:2493: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+
+#### XFlushGC ####
+
+#### XFontsOfFontSet ####
+
+#### XForceScreenSaver ####
+
+#### XFree ####
+Args.c:2035: * to a standard XFree86 server.
+Atoms.c:763: XFree(string);
+Clipboard.c:315: XFree(strTarget);
+Clipboard.c:701: XFree(pszReturnData);
+Clipboard.c:725: XFree(pszReturnData);
+Clipboard.c:839: XFree(pszReturnData);
+Colormap.c:178: XFreeColormap(nxagentDisplay, nxagentColormap(pCmap));
+Cursor.c:214: XFree(image);
+Cursor.c:232: XFree(image);
+Cursor.c:256: XFreePixmap(nxagentDisplay, source);
+Cursor.c:257: XFreePixmap(nxagentDisplay, mask);
+Cursor.c:273: XFreeCursor(nxagentDisplay, nxagentCursor(pCursor, pScreen));
+Display.c:1603: XFree(viList);
+Display.c:1828: XFree(nxagentVisuals);
+Display.c:1834: XFree(nxagentPixmapFormats);
+Display.c:1837: XFree(nxagentRemotePixmapFormats);
+Display.c:1854: NXFreeCache(nxagentDisplay);
+Display.c:2114: XFreeGC(nxagentDisplayBackup, nxagentBitmapGCBackup);
+Display.c:2136: XFreeGC(nxagentDisplay, nxagentBitmapGC);
+Display.c:2623: XFree(viList);
+Display.c:2822: XFree(nxagentPixmapFormats);
+Display.c:2829: XFree(nxagentRemotePixmapFormats);
+Drawable.c:2603: XFreeGC(nxagentDisplay, gc);
+Events.c:332: XFree(winName);
+Events.c:358: XFreeStringList(list);
+Events.c:481: XFree((char *) childList);
+Events.c:1327: XFreeCursor(nxagentDisplay, viewportCursor);
+Events.c:3181: XFree(children_return);
+Events.c:3543: XFree(children_return);
+Events.c:3575: XFree(children_return);
+Events.c:3647: XFree(childrenReturn);
+Events.c:4040: XFree(pszReturnData);
+Font.c:280: XFreeFontNames(xList);
+Font.c:689: XFreeFont(nxagentDisplay, nxagentFontStruct(pFont));
+Font.c:906: XFreeFont(nxagentDisplay, privFont -> font_struct);
+Font.c:1084: XFree(CACHE_NAME(i));
+Font.c:1361: XFreeFontPath(fontPaths);
+Font.c:1372: XFreeFontPath(fontPaths);
+Font.c:1734: XFree(fs);
+GC.c:608: XFreeGC(nxagentDisplay, nxagentGC(pGC));
+Holder.c:187: XFreeGC(nxagentDisplay, gc);
+Keyboard.c:762: XFreeModifiermap(modifier_keymap);
+Keyboard.c:771: XFree(keymap64);
+Keyboard.c:783: XFreeModifiermap(modifier_keymap);
+Keyboard.c:807: XFreeModifiermap(modifier_keymap);
+Keyboard.c:1153: XFree(keymap);
+Keyboard.c:1753: XFree(data);
+Keyboard.c:1880: XFree(drules);
+NXglxext.c:26:/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.9 2003/09/28 20:15:43 alanh Exp $
+NXglyph.c:27: * $XFree86: xc/programs/Xserver/render/glyph.c,v 1.5 2001/01/30 07:01:22 keithp Exp $
+NXmiglyph.c:27: * $XFree86: xc/programs/Xserver/render/miglyph.c,v 1.4 2000/11/20 07:13:13 keithp Exp $
+NXmitrap.c:27: * $XFree86: xc/programs/Xserver/render/mitrap.c,v 1.8 2002/09/03 19:28:28 keithp Exp $
+NXmitrap.c:29: * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+NXpicture.c:27: * $XFree86: xc/programs/Xserver/render/picture.c,v 1.29 2002/11/23 02:38:15 keithp Exp $
+NXrender.c:27: * $XFree86: xc/programs/Xserver/render/render.c,v 1.27tsi Exp $
+Pixmap.c:490: XFreePixmap(nxagentDisplay, pPixmapPriv -> id);
+Pixmap.c:1438: XFreeGC(shadow, gc);
+Pixmap.c:1600: XFreeGC(shadow, gc);
+Rootless.c:294: XFree(children_return);
+Screen.c:2822: XFreeGC(nxagentDisplay, gc);
+Screen.c:2880: XFreePixmap(nxagentDisplay, nxagentPixmap(nxagentVirtualPixmap(nxagentShadowPixmapPtr)));
+Screen.c:4216: XFreeGC(nxagentDisplay, gc);
+Screen.c:4343: XFreeGC(nxagentDisplay, gc);
+Screen.c:4573: XFreeGC(shadow, gc);
+Screen.c:4689: XFreeGC(shadow, gc);
+Splash.c:160: XFreeGC(nxagentDisplay, gc);
+Splash.c:420: XFreePixmap(nxagentDisplay, nxagentPixmapLogo);
+Split.c:185: NXFreeSplit(nxagentDisplay, pResource -> split);
+Window.c:1448: XFree(children_return);
+NXglyphstr_GlyphRef.h:27: * $XFree86: xc/programs/Xserver/render/glyphstr.h,v 1.3 2000/11/20 07:13:13 keithp Exp $
+NXglyphstr_GlyphSet.h:27: * $XFree86: xc/programs/Xserver/render/glyphstr.h,v 1.3 2000/11/20 07:13:13 keithp Exp $
+Pixels.h:117: te on XFree86 remote server.
+
+#### XFreeColormap ####
+Colormap.c:178: XFreeColormap(nxagentDisplay, nxagentColormap(pCmap));
+
+#### XFreeColors ####
+
+#### XFreeCursor ####
+Cursor.c:273: XFreeCursor(nxagentDisplay, nxagentCursor(pCursor, pScreen));
+Events.c:1327: XFreeCursor(nxagentDisplay, viewportCursor);
+
+#### XFreeEventData ####
+
+#### XFreeExtensionList ####
+
+#### XFreeFont ####
+Font.c:280: XFreeFontNames(xList);
+Font.c:689: XFreeFont(nxagentDisplay, nxagentFontStruct(pFont));
+Font.c:906: XFreeFont(nxagentDisplay, privFont -> font_struct);
+Font.c:1361: XFreeFontPath(fontPaths);
+Font.c:1372: XFreeFontPath(fontPaths);
+
+#### XFreeFontInfo ####
+
+#### XFreeFontNames ####
+Font.c:280: XFreeFontNames(xList);
+
+#### XFreeFontPath ####
+Font.c:1361: XFreeFontPath(fontPaths);
+Font.c:1372: XFreeFontPath(fontPaths);
+
+#### XFreeFontSet ####
+
+#### XFreeGC ####
+Display.c:2114: XFreeGC(nxagentDisplayBackup, nxagentBitmapGCBackup);
+Display.c:2136: XFreeGC(nxagentDisplay, nxagentBitmapGC);
+Drawable.c:2603: XFreeGC(nxagentDisplay, gc);
+GC.c:608: XFreeGC(nxagentDisplay, nxagentGC(pGC));
+Holder.c:187: XFreeGC(nxagentDisplay, gc);
+Pixmap.c:1438: XFreeGC(shadow, gc);
+Pixmap.c:1600: XFreeGC(shadow, gc);
+Screen.c:2822: XFreeGC(nxagentDisplay, gc);
+Screen.c:4216: XFreeGC(nxagentDisplay, gc);
+Screen.c:4343: XFreeGC(nxagentDisplay, gc);
+Screen.c:4573: XFreeGC(shadow, gc);
+Screen.c:4689: XFreeGC(shadow, gc);
+Splash.c:160: XFreeGC(nxagentDisplay, gc);
+
+#### XFreeModifiermap ####
+Keyboard.c:762: XFreeModifiermap(modifier_keymap);
+Keyboard.c:783: XFreeModifiermap(modifier_keymap);
+Keyboard.c:807: XFreeModifiermap(modifier_keymap);
+
+#### XFreePixmap ####
+Cursor.c:256: XFreePixmap(nxagentDisplay, source);
+Cursor.c:257: XFreePixmap(nxagentDisplay, mask);
+Pixmap.c:490: XFreePixmap(nxagentDisplay, pPixmapPriv -> id);
+Screen.c:2880: XFreePixmap(nxagentDisplay, nxagentPixmap(nxagentVirtualPixmap(nxagentShadowPixmapPtr)));
+Splash.c:420: XFreePixmap(nxagentDisplay, nxagentPixmapLogo);
+
+#### XFreeStringList ####
+Events.c:358: XFreeStringList(list);
+
+#### XGContextFromGC ####
+
+#### XGeometry ####
+
+#### XGetAtomName ####
+Atoms.c:748: if ((string = XGetAtomName(nxagentDisplay, remote)))
+Clipboard.c:304: strTarget = XGetAtomName(nxagentDisplay, X->xselectionrequest.target);
+Clipboard.c:1599: validateString(XGetAtomName(nxagentDisplay, nxagentAtoms[10])), iWindow);
+Events.c:925: (int)X.xproperty.atom, validateString(XGetAtomName(nxagentDisplay, X.xproperty.atom)),
+
+#### XGetAtomNames ####
+
+#### XGetClassHint ####
+
+#### XGetCommand ####
+
+#### XGetDefault ####
+
+#### XGetErrorDatabaseText ####
+Error.c:135: XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ);
+Error.c:137: XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d",
+Error.c:142: XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
+Error.c:156: XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d",
+Error.c:163: XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ);
+Error.c:192: XGetErrorDatabaseText(dpy, mtype, buffer, "", mesg, BUFSIZ);
+Error.c:216: XGetErrorDatabaseText(dpy, mtype, "Value", "Value 0x%x",
+Error.c:219: XGetErrorDatabaseText(dpy, mtype, "AtomID", "AtomID 0x%x",
+Error.c:222: XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
+Error.c:228: XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
+Error.c:232: XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d",
+
+#### XGetErrorText ####
+Error.c:134: XGetErrorText(dpy, event->error_code, buffer, BUFSIZ);
+
+#### XGetEventData ####
+
+#### XGetFontPath ####
+Font.c:1304: fontPaths = XGetFontPath(nxagentDisplay, &nPaths);
+NXdixfonts.c:107:static const char *_NXGetFontPath(const char *path)
+NXdixfonts.c:127: fprintf(stderr, "_NXGetFontPath: WARNING! Maximum length of font path exceeded.\n");
+NXdixfonts.c:129: goto _NXGetFontPathError;
+NXdixfonts.c:135: fprintf(stderr, "_NXGetFontPath: Using NX font path [%s].\n", _NXFontPath);
+NXdixfonts.c:141:_NXGetFontPathError:
+NXdixfonts.c:147: fprintf(stderr, "_NXGetFontPath: Using default font path [%s].\n", _NXFontPath);
+NXdixfonts.c:941: len = strlen(_NXGetFontPath(path)) + 1;
+NXdixfonts.c:949: pp = (unsigned char *) _NXGetFontPath(path);
+
+#### XGetFontProperty ####
+
+#### XGetGCValues ####
+
+#### XGetGeometry ####
+
+#### XGetICValues ####
+
+#### XGetIMValues ####
+
+#### XGetIconName ####
+
+#### XGetIconSizes ####
+
+#### XGetImage ####
+Pixmap.c:1086: image = XGetImage(nxagentDisplay, nxagentPixmap(pPixmap), 0, 0,
+Pixmap.c:1090: FatalError("XGetImage: Failed.\n");
+Screen.c:4531: image = XGetImage(nxagentDisplay, nxagentPixmap(pPixmap), x, y,
+Screen.c:4535: image = XGetImage(nxagentDisplay, RootWindow(nxagentDisplay, 0), 0, 0,
+Screen.c:4541: fprintf(stderr, "nxagentShowPixmap: XGetImage failed.\n");
+Screen.c:4625: image = XGetImage(nxagentDisplay, nxagentPixmap(pPixmap), xSrc, ySrc,
+Screen.c:4632: fprintf(stderr, "nxagentFbRestoreArea: XGetImage failed.\n");
+Window.c:3286: image = XGetImage(nxagentDisplay, nxagentWindow(pWin), 0, 0,
+Window.c:3290: fprintf(stderr, "XGetImage: Failed.\n");
+
+#### XGetInputFocus ####
+
+#### XGetKeyboardControl ####
+Keyboard.c:850: XGetKeyboardControl(nxagentDisplay, &values);
+
+#### XGetKeyboardMapping ####
+Keyboard.c:755: keymap64 = XGetKeyboardMapping(nxagentDisplay,
+Keyboard.c:776: keymap = XGetKeyboardMapping(nxagentDisplay,
+
+#### XGetModifierMapping ####
+Keyboard.c:743: modifier_keymap = XGetModifierMapping(nxagentDisplay);
+
+#### XGetMotionEvents ####
+
+#### XGetNormalHints ####
+
+#### XGetOCValues ####
+
+#### XGetOMValues ####
+
+#### XGetPixel ####
+Drawable.c:2177: pixel = XGetPixel(ximage, 0, 0);
+Image.c:1743: val = XGetPixel(image, i - x, j - y);
+
+#### XGetPointerControl ####
+
+#### XGetPointerMapping ####
+Pointer.c:124: nmap = XGetPointerMapping(nxagentDisplay, map, MAXBUTTONS);
+Pointer.c:189: numButtons = XGetPointerMapping(nxagentDisplay, pointerMap, MAXBUTTONS);
+
+#### XGetRGBColormaps ####
+
+#### XGetScreenSaver ####
+
+#### XGetSelectionOwner ####
+Clipboard.c:1117: if (XGetSelectionOwner(nxagentDisplay,pSelection->selection)==serverWindow)
+
+#### XGetSizeHints ####
+
+#### XGetStandardColormap ####
+
+#### XGetSubImage ####
+
+#### XGetTextProperty ####
+
+#### XGetTransientForHint ####
+
+#### XGetVisualInfo ####
+Display.c:1568: viList = XGetVisualInfo(nxagentDisplay, mask, &vi, &viNumList);
+Display.c:2553: viList = XGetVisualInfo(nxagentDisplay, viMask, &viTemplate, &viNumList);
+
+#### XGetWMClientMachine ####
+
+#### XGetWMColormapWindows ####
+
+#### XGetWMHints ####
+
+#### XGetWMIconName ####
+
+#### XGetWMName ####
+Events.c:337: if (XGetWMName(nxagentDisplay, window, &tp) != 0)
+
+#### XGetWMNormalHints ####
+
+#### XGetWMProtocols ####
+
+#### XGetWMSizeHints ####
+
+#### XGetWindowAttributes ####
+Events.c:393: if (XGetWindowAttributes(nxagentDisplay, win, &attributes) == 0)
+Events.c:3609: if ((XGetWindowAttributes(nxagentDisplay, X -> xreparent.window,
+Events.c:3614: "XGetWindowAttributes failed.\n");
+Events.c:3658: if (XGetWindowAttributes(nxagentDisplay, w, &attributes) == 0)
+Events.c:3662: "XGetWindowAttributes failed for parent window.\n");
+Screen.c:1425: XGetWindowAttributes(nxagentDisplay, nxagentParentWindow, &gattributes);
+Splash.c:111: * XGetWindowAttributes(nxagentDisplay, parentWindow, &getAttributes);
+
+#### XGetWindowProperty ####
+Keyboard.c:1740: result = XGetWindowProperty(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Screen.c:3400: iReturn = XGetWindowProperty(nxagentDisplay,
+
+#### XGetZoomHints ####
+
+#### XGrabButton ####
+
+#### XGrabKey ####
+Events.c:3860: result = XGrabKeyboard(nxagentDisplay, nxagentFullscreenWindow,
+Events.c:3891: * XGrabKey(nxagentDisplay, AnyKey, AnyModifier, nxagentFullscreenWindow,
+Screen.c:1904: XGrabKeyboard(nxagentDisplay, nxagentFullscreenWindow, True, GrabModeAsync,
+Screen.c:1923: fprintf(stderr, "nxagentOpenScreen: No window manager, we call XGrabKeyboard.\n");
+Screen.c:1926: XGrabKeyboard(nxagentDisplay, RootWindow (nxagentDisplay, 0), True, GrabModeAsync,
+
+#### XGrabKeyboard ####
+Events.c:3860: result = XGrabKeyboard(nxagentDisplay, nxagentFullscreenWindow,
+Screen.c:1904: XGrabKeyboard(nxagentDisplay, nxagentFullscreenWindow, True, GrabModeAsync,
+Screen.c:1923: fprintf(stderr, "nxagentOpenScreen: No window manager, we call XGrabKeyboard.\n");
+Screen.c:1926: XGrabKeyboard(nxagentDisplay, RootWindow (nxagentDisplay, 0), True, GrabModeAsync,
+
+#### XGrabPointer ####
+
+#### XGrabServer ####
+
+#### XHeightMMOfScreen ####
+
+#### XHeightOfScreen ####
+
+#### XIMOfIC ####
+
+#### XIconifyWindow ####
+Events.c:2144: XIconifyWindow(nxagentDisplay, nxagentDefaultWindows[0],
+Events.c:2759: XIconifyWindow(nxagentDisplay, nxagentIconWindow,
+Screen.c:301: XIconifyWindow(nxagentDisplay, nxagentIconWindow,
+Screen.c:306: XIconifyWindow(nxagentDisplay, nxagentIconWindow,
+Screen.c:358: XIconifyWindow(nxagentDisplay, nxagentIconWindow,
+Window.c:2585: XIconifyWindow(nxagentDisplay, nxagentIconWindow,
+Window.c:3228: XIconifyWindow(nxagentDisplay, nxagentWindow(pWin), pWin -> drawable.pScreen -> myNum);
+
+#### XIfEvent ####
+Split.c:769: * We should better use XIfEvent() instead
+Split.c:883: XIfEvent(nxagentDisplay, &event, nxagentWaitSplitPredicate, NULL);
+
+#### XImageByteOrder ####
+
+#### XInitExtension ####
+
+#### XInitImage ####
+
+#### XInitThreads ####
+
+#### XInsertModifiermapEntry ####
+
+#### XInstallColormap ####
+Colormap.c:363: XInstallColormap(nxagentDisplay, nxagentColormap(pCmap));
+
+#### XInternAtom ####
+Atoms.c:246: * after a reset the XInternAtom could be cached
+Atoms.c:472: ret_value = XInternAtoms(nxagentDisplay, name_list, list_size, False, atom_list);
+Atoms.c:477: fprintf(stderr, "nxagentInitAtomMap: WARNING! XInternAtoms request failed.\n");
+Atoms.c:653: remote = XInternAtom(nxagentDisplay, string, !Makeit);
+Atoms.c:658: fprintf(stderr, "nxagentMakeAtom: WARNING XInternAtom failed.\n");
+Atoms.c:693: remote = XInternAtom(nxagentDisplay, string, False);
+Atoms.c:698: fprintf(stderr, "nxagentLocalToRemoteAtom: WARNING XInternAtom failed.\n");
+Clipboard.c:326: XInternAtom(nxagentDisplay, "ATOM", 0),
+Clipboard.c:1417: * XInternAtom(nxagentDisplay, "CLIPBOARD", 1).
+Keyboard.c:1733: atom = XInternAtom(nxagentDisplay, "_XKB_RULES_NAMES", 1);
+Screen.c:2586: nxagentShadowAtom = XInternAtom(nxagentShadowDisplay, "_NX_SHADOW", False);
+
+#### XInternAtoms ####
+Atoms.c:472: ret_value = XInternAtoms(nxagentDisplay, name_list, list_size, False, atom_list);
+Atoms.c:477: fprintf(stderr, "nxagentInitAtomMap: WARNING! XInternAtoms request failed.\n");
+
+#### XInternalConnectionNumbers ####
+
+#### XIntersectRegion ####
+
+#### XKeycodeToKeysym ####
+Events.c:1104: keysym = XKeycodeToKeysym(nxagentDisplay, X.xkey.keycode, 0);
+Events.c:4642: XKeysymToString(XKeycodeToKeysym(nxagentDisplay, i * 8 + k, 0)));
+Keystroke.c:409: KeySym keysym = XKeycodeToKeysym(nxagentDisplay, X->keycode, 0);
+Keystroke.c:443: sym = XKeycodeToKeysym(nxagentDisplay, X -> keycode, index);
+
+#### XKeysymToKeycode ####
+Keyboard.c:1380: if (keycode == XKeysymToKeycode(nxagentDisplay, XK_Meta_L))
+Keyboard.c:1385: if (keycode == XKeysymToKeycode(nxagentDisplay, XK_Meta_R))
+Keyboard.c:1390: if (keycode == XKeysymToKeycode(nxagentDisplay, XK_Alt_L))
+Keyboard.c:1395: if (keycode == XKeysymToKeycode(nxagentDisplay, XK_Alt_R))
+Keyboard.c:1403: nxagentCapsLockKeycode = XKeysymToKeycode(nxagentDisplay, XK_Caps_Lock);
+Keyboard.c:1405: nxagentNumLockKeycode = XKeysymToKeycode(nxagentDisplay, XK_Num_Lock);
+
+#### XKeysymToString ####
+Events.c:4642: XKeysymToString(XKeycodeToKeysym(nxagentDisplay, i * 8 + k, 0)));
+
+#### XKillClient ####
+
+#### XLastKnownRequestProcessed ####
+
+#### XListDepths ####
+Display.c:1619: nxagentDepths = XListDepths(nxagentDisplay, DefaultScreen(nxagentDisplay),
+
+#### XListExtensions ####
+
+#### XListFonts ####
+Font.c:260: xList = XListFonts(nxagentDisplay, patterns[p], maxNames, &xLen);
+
+#### XListFontsWithInfo ####
+
+#### XListHosts ####
+
+#### XListInstalledColormaps ####
+
+#### XListPixmapFormats ####
+Display.c:1709: nxagentRemotePixmapFormats = XListPixmapFormats(nxagentDisplay, &nxagentRemoteNumPixmapFormats);
+
+#### XListProperties ####
+
+#### XLoadFont ####
+Font.c:1657: fs -> fid = XLoadFont(dpy, name); /* Font id for this font. */
+
+#### XLoadQueryFont ####
+
+#### XLocaleOfFontSet ####
+
+#### XLocaleOfIM ####
+
+#### XLocaleOfOM ####
+
+#### XLockDisplay ####
+
+#### XLookupColor ####
+
+#### XLookupKeysym ####
+
+#### XLookupString ####
+
+#### XLowerWindow ####
+Window.c:1507: XLowerWindow(nxagentDisplay, nxagentWindow(pWin));
+
+#### XMapRaised ####
+Events.c:2757: XMapRaised(nxagentDisplay, nxagentFullscreenWindow);
+Screen.c:356: XMapRaised(nxagentDisplay, nxagentFullscreenWindow);
+Splash.c:155: XMapRaised (nxagentDisplay, nxagentSplashWindow);
+Window.c:912: XMapRaised(nxagentDisplay, w);
+
+#### XMapSubwindows ####
+
+#### XMapWindow ####
+Pixmap.c:1349: XMapWindow(shadow, win);
+Pixmap.c:1501: XMapWindow(shadow, win);
+Screen.c:300: XMapWindow(nxagentDisplay, nxagentIconWindow);
+Screen.c:317: XMapWindow(nxagentDisplay, nxagentFullscreenWindow);
+Screen.c:363: XMapWindow(nxagentDisplay, nxagentIconWindow);
+Screen.c:2805: XMapWindow(nxagentDisplay, nxagentDefaultWindows[0]);
+Screen.c:2957: XMapWindow(nxagentDisplay, nxagentWindow(nxagentShadowWindowPtr));
+Screen.c:4498: XMapWindow(shadow, win);
+Window.c:909: XMapWindow(nxagentDisplay, nxagentIconWindow);
+Window.c:944: XMapWindow(nxagentDisplay, w);
+Window.c:1007: XMapWindow(nxagentDisplay, w);
+Window.c:1538: XMapWindow(nxagentDisplay, nxagentWindow(pWin));
+Window.c:1911: * XMapWindow(nxagentDisplay, nxagentWindow(pWin));
+Window.c:2535: XMapWindow(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum]);
+Window.c:2547: XMapWindow(nxagentDisplay, nxagentInputWindows[pScreen->myNum]);
+Window.c:2581: XMapWindow(nxagentDisplay, nxagentIconWindow);
+Window.c:3216: do anything, leaving this mapped window around. XMapWindow()
+Window.c:3221: XMapWindow(nxagentDisplay, nxagentWindow(pWin));
+Window.c:3240: XMapWindow(nxagentDisplay, nxagentWindow(pWin));
+
+#### XMaskEvent ####
+
+#### XMatchVisualInfo ####
+
+#### XMaxCmapsOfScreen ####
+
+#### XMaxRequestSize ####
+
+#### XMinCmapsOfScreen ####
+
+#### XMoveResizeWindow ####
+Events.c:3420: XMoveResizeWindow(nxagentDisplay, nxagentInputWindows[0], 0, 0,
+Extensions.c:425: XMoveResizeWindow(nxagentDisplay, nxagentInputWindows[0], 0, 0, width,
+Screen.c:2491: XMoveResizeWindow(nxagentDisplay, nxagentInputWindows[0], 0, 0,
+Window.c:890: XMoveResizeWindow(nxagentDisplay, w, nxagentOption(X), nxagentOption(Y),
+Window.c:1001: XMoveResizeWindow(nxagentDisplay, w, nxagentOption(X), nxagentOption(Y),
+Window.c:1013: XMoveResizeWindow(nxagentDisplay, nxagentInputWindows[0], 0, 0,
+
+#### XMoveWindow ####
+Events.c:3441: XMoveWindow(nxagentDisplay, nxagentWindow(pScreen->root),
+Screen.c:2432: XMoveWindow(nxagentDisplay, nxagentWindow(screenInfo.screens[0]->root),
+Window.c:895: XMoveWindow(nxagentDisplay, nxagentWindow(pScreen->root),
+Window.c:1006: XMoveWindow(nxagentDisplay, nxagentWindow(pScreen->root), 0, 0);
+Window.c:1171: XMoveWindow(nxagentDisplay, nxagentWindow(pScreen->root),
+Window.c:2790: XMoveWindow(nxagentDisplay, nxagentWindow(nxagentViewportFrameLeft),
+Window.c:2792: XMoveWindow(nxagentDisplay, nxagentWindow(nxagentViewportFrameRight),
+Window.c:2794: XMoveWindow(nxagentDisplay, nxagentWindow(nxagentViewportFrameAbove),
+Window.c:2796: XMoveWindow(nxagentDisplay, nxagentWindow(nxagentViewportFrameBelow),
+Window.c:3237: XMoveWindow(nxagentDisplay, nxagentWindow(pWin),
+
+#### XNewModifiermap ####
+
+#### XNextEvent ####
+Screen.c:4504: XNextEvent(shadow, &e);
+
+#### XNextRequest ####
+Window.c:1344: nxagentAddStaticResizedWindow(pWin, XNextRequest(nxagentDisplay), offX, offY);
+
+#### XNoOp ####
+
+#### XOMOfOC ####
+
+#### XOffsetRegion ####
+
+#### XOpenDisplay ####
+Display.c:645: newDisplay = XOpenDisplay(display);
+Pixmap.c:1333: shadow = XOpenDisplay("localhost:0");
+Pixmap.c:1482: shadow = XOpenDisplay("localhost:0");
+Screen.c:4477: shadow = XOpenDisplay("localhost:0");
+
+#### XOpenIM ####
+
+#### XOpenOM ####
+
+#### XParseColor ####
+
+#### XParseGeometry ####
+Args.c:632: nxagentUserGeometry.flag = XParseGeometry(argv[i],
+
+#### XPeekEvent ####
+Events.c:4532: XPeekEvent(dpy, &ev);
+
+#### XPeekIfEvent ####
+
+#### XPending ####
+
+#### XPlanesOfScreen ####
+
+#### XPointInRegion ####
+
+#### XPolygonRegion ####
+
+#### XProcessInternalConnection ####
+
+#### XProtocolRevision ####
+
+#### XProtocolVersion ####
+
+#### XPutBackEvent ####
+Events.c:3958: XPutBackEvent(nxagentDisplay, (XEvent*)&X);
+
+#### XPutImage ####
+Cursor.c:211: XPutImage(nxagentDisplay, source, nxagentBitmapGC, image,
+Cursor.c:229: XPutImage(nxagentDisplay, mask, nxagentBitmapGC, image,
+Image.c:1103: * the src_x of XPutImage otherwise the src_x would make Xlib
+Image.c:1545: fprintf(stderr, "nxagentPutSubImage: Calling XPutImage with geometry [%d,%d] and data size [%d].\n",
+Image.c:1552: * XPutImage(nxagentDisplay, nxagentDrawable(pDrawable),
+Image.c:1556: XPutImage(nxagentDisplay, nxagentDrawable(pDrawable),
+Pixmap.c:1355: XPutImage returns a BadMatch. For example this may happens if
+Pixmap.c:1436: XPutImage(shadow, win, gc, image, 0, 0, 0, 0, width, height);
+Pixmap.c:1598: XPutImage(shadow, win, gc, image, 0, 0, 0, 0, width, height);
+Screen.c:4569: XPutImage(shadow, win, gc, image, 0, 0, 0, 0, width, height);
+Screen.c:4682: XPutImage(shadow, nxagentWindow(pWin), gc, image, 0, 0, xDst, yDst, width, height);
+
+#### XPutPixel ####
+Image.c:1770: XPutPixel(newImage, k - x1, l - y1, val);
+
+#### XQLength ####
+Events.c:4458: else if (XQLength(dpy) > 0)
+Events.c:4462: XQLength(dpy));
+Events.h:228: XQLength((display))
+
+#### XQueryBestCursor ####
+
+#### XQueryBestSize ####
+
+#### XQueryBestStipple ####
+
+#### XQueryBestTile ####
+
+#### XQueryColor ####
+Colormap.c:117: XQueryColors(nxagentDisplay, nxagentColormap(pCmap), colors, ncolors);
+Colormap.c:130: XQueryColors(nxagentDisplay, nxagentColormap(pCmap), colors, ncolors);
+Colormap.c:154: XQueryColors(nxagentDisplay, nxagentColormap(pCmap), colors, ncolors);
+
+#### XQueryColors ####
+Colormap.c:117: XQueryColors(nxagentDisplay, nxagentColormap(pCmap), colors, ncolors);
+Colormap.c:130: XQueryColors(nxagentDisplay, nxagentColormap(pCmap), colors, ncolors);
+Colormap.c:154: XQueryColors(nxagentDisplay, nxagentColormap(pCmap), colors, ncolors);
+
+#### XQueryExtension ####
+Clipboard.c:1559: if (XQueryExtension(nxagentDisplay,
+
+#### XQueryFont ####
+
+#### XQueryKeymap ####
+
+#### XQueryPointer ####
+
+#### XQueryTextExtents16 ####
+
+#### XQueryTextExtents ####
+
+#### XQueryTree ####
+Events.c:431: if (!XQueryTree(nxagentDisplay, window, &rootWin, &parentWin, &childList,
+Events.c:434: fprintf(stderr, "nxagentRemoteWindowsTree - XQueryTree failed.\n");
+Events.c:1913: * XQueryTree(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Events.c:3165: result = XQueryTree(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Events.c:3529: result = XQueryTree(nxagentDisplay, w, &root_return,
+Events.c:3559: result = XQueryTree(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Events.c:3637: result = XQueryTree(nxagentDisplay, w, &rootReturn, &parentReturn,
+Rootless.c:258: result = XQueryTree(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+Window.c:1428: result = XQueryTree(nxagentDisplay, DefaultRootWindow(nxagentDisplay),
+
+#### XRaiseWindow ####
+Screen.c:4515: XRaiseWindow(nxagentDisplay, win);
+Window.c:1498: XRaiseWindow(nxagentDisplay, nxagentWindow(pWin));
+Window.c:2557: XRaiseWindow(nxagentDisplay, nxagentInputWindows[pScreen->myNum]);
+Window.c:2742: XRaiseWindow(nxagentDisplay, nxagentInputWindows[i]);
+
+#### XReadBitmapFile ####
+
+#### XReadBitmapFileData ####
+
+#### XRebindKeysym ####
+
+#### XRecolorCursor ####
+Cursor.c:296: XRecolorCursor(nxagentDisplay,
+
+#### XReconfigureWMWindow ####
+
+#### XRectInRegion ####
+
+#### XRefreshKeyboardMapping ####
+
+#### XRegisterIMInstantiateCallback ####
+
+#### XRemoveConnectionWatch ####
+
+#### XRemoveFromSaveSet ####
+
+#### XRemoveHost ####
+
+#### XRemoveHosts ####
+
+#### XReparentWindow ####
+Screen.c:325:FIXME: We'll check for ReparentNotify and LeaveNotify events after XReparentWindow()
+Screen.c:334: XReparentWindow(nxagentDisplay, nxagentFullscreenWindow,
+Window.c:810: XReparentWindow(nxagentDisplay, w, DefaultRootWindow(nxagentDisplay), 0, 0);
+Window.c:1559: XReparentWindow(nxagentDisplay, nxagentWindow(pWin),
+
+#### XResetScreenSaver ####
+
+#### XResizeWindow ####
+Extensions.c:421: XResizeWindow(nxagentDisplay, nxagentDefaultWindows[0], width, height);
+Screen.c:2401: XResizeWindow(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum], width, height);
+Screen.c:2405: XResizeWindow(nxagentDisplay, nxagentInputWindows[pScreen -> myNum], width, height);
+Screen.c:2488: XResizeWindow(nxagentDisplay, nxagentDefaultWindows[0],
+Screen.c:4514: XResizeWindow(nxagentDisplay, win, width, height);
+
+#### XResourceManagerString ####
+
+#### XRestackWindows ####
+Window.c:1521: XRestackWindows(nxagentDisplay, windowList, 2);
+
+#### XRootWindow ####
+
+#### XRootWindowOfScreen ####
+
+#### XRotateBuffers ####
+
+#### XRotateWindowProperties ####
+
+#### XSaveContext ####
+
+#### XScreenCount ####
+
+#### XScreenNumberOfScreen ####
+
+#### XScreenOfDisplay ####
+
+#### XScreenResourceString ####
+
+#### XSelectInput ####
+Atoms.c:130: XSelectInput(nxagentDisplay,
+Atoms.c:157: XSelectInput(nxagentDisplay, RootWindow (nxagentDisplay, 0), 0);
+Events.c:3549: XSelectInput(nxagentDisplay, w, StructureNotifyMask);
+Events.c:3697: XSelectInput(nxagentDisplay, nxagentDefaultWindows[i], mask);
+Events.c:3718: XSelectInput(nxagentDisplay, nxagentDefaultWindows[i], mask);
+Events.c:3737: XSelectInput(nxagentDisplay, nxagentDefaultWindows[i], mask);
+Events.c:3754: XSelectInput(nxagentDisplay, nxagentDefaultWindows[i], mask);
+Screen.c:437: XSelectInput(nxagentDisplay, w, (mask & ~(KeyPressMask |
+Screen.c:1708: XSelectInput(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum], mask);
+Screen.c:1843: XSelectInput(nxagentDisplay, nxagentFullscreenWindow, mask);
+Screen.c:2045: XSelectInput(nxagentDisplay, DefaultRootWindow(nxagentDisplay), StructureNotifyMask);
+Screen.c:3583: XSelectInput(nxagentDisplay, nxagentDefaultWindows[0], mask);
+Screen.c:4496: XSelectInput(shadow, win, StructureNotifyMask);
+
+#### XSendEvent ####
+Clipboard.c:364: XSendEvent(nxagentDisplay,
+Clipboard.c:373: fprintf(stderr, "nxagentRequestSelection: WARNING! XSendEvent failed.\n");
+Clipboard.c:377: fprintf(stderr, "nxagentRequestSelection: XSendEvent sent to window [0x%lx].\n",
+Clipboard.c:481: XSendEvent(nxagentDisplay,
+Clipboard.c:488: fprintf(stderr, "nxagentRequestSelection: Executed XSendEvent with property None.\n");
+Clipboard.c:1007: result = XSendEvent(nxagentDisplay,
+Clipboard.c:1015: fprintf (stderr, "SelectionRequest - XSendEvent failed\n");
+Clipboard.c:1437: result = XSendEvent (nxagentDisplay, x.requestor, False,
+Clipboard.c:1442: fprintf (stderr, "nxagentSendNotify: XSendEvent failed.\n");
+Window.c:762: XSendEvent(nxagentDisplay, DefaultRootWindow(nxagentDisplay), False,
+
+#### XServerVendor ####
+
+#### XSetAccessControl ####
+
+#### XSetAfterFunction ####
+
+#### XSetArcMode ####
+
+#### XSetAuthorization ####
+
+#### XSetBackground ####
+Splash.c:221: XSetBackground(nxagentDisplay, gc, nxagentLogoRed);
+Splash.c:237: XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
+Splash.c:248: XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
+
+#### XSetClassHint ####
+Screen.c:1784: XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
+Screen.c:1800: XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
+
+#### XSetClipMask ####
+GC.c:673: XSetClipMask(nxagentDisplay, nxagentGC(pGC), None);
+GC.c:706: XSetClipMask(nxagentDisplay, nxagentGC(pGC),
+GC.c:814: XSetClipMask(nxagentDisplay, nxagentGC(pGC), None);
+GC.c:1283: XSetClipMask(nxagentDisplay, nxagentGC(pGC), None);
+GC.c:1313: XSetClipMask(nxagentDisplay, nxagentGC(pGC),
+GC.c:1323: XSetClipMask(nxagentDisplay, nxagentGC(pGC),
+
+#### XSetClipOrigin ####
+GC.c:1316: XSetClipOrigin(nxagentDisplay, nxagentGC(pGC), pGC -> clipOrg.x, pGC -> clipOrg.y);
+GC.c:1326: XSetClipOrigin(nxagentDisplay, nxagentGC(pGC), pGC -> clipOrg.x, pGC -> clipOrg.y);
+
+#### XSetClipRectangles ####
+GC.c:695: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC), pGC -> clipOrg.x, pGC -> clipOrg.y,
+GC.c:724: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GC.c:735: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GC.c:746: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GC.c:757: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GC.c:1307: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC), pGC -> clipOrg.x, pGC -> clipOrg.y,
+GC.c:1339: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GC.c:1345: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GC.c:1351: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GC.c:1357: XSetClipRectangles(nxagentDisplay, nxagentGC(pGC),
+GCOps.c:502: * used in the XSetClipRectangles().
+Screen.c:4177: XSetClipRectangles(nxagentDisplay, gc, 0, 0, pRects, nRects, Unsorted);
+Screen.c:4323: XSetClipRectangles(nxagentDisplay, gc, 0, 0, pRects, nRects, Unsorted);
+
+#### XSetCloseDownMode ####
+
+#### XSetCommand ####
+
+#### XSetDashes ####
+GC.c:540: XSetDashes(nxagentDisplay, nxagentGC(pGC),
+
+#### XSetErrorHandler ####
+Atoms.c:122: previousErrorHandler = XSetErrorHandler((XErrorHandler)&catchAndRedirect);
+Atoms.c:137: XSetErrorHandler(previousErrorHandler);
+Display.c:920: XSetErrorHandler(nxagentErrorHandler);
+
+#### XSetFillRule ####
+
+#### XSetFillStyle ####
+Splash.c:219: XSetFillStyle(nxagentDisplay, gc, FillSolid);
+
+#### XSetFont ####
+Font.c:1325: XSetFontPath(nxagentDisplay, newFontPaths, nPaths + 1);
+Font.c:1357: XSetFontPath(nxagentDisplay, fontPaths, nPaths);
+Font.c:1370: XSetFontPath(nxagentDisplay, fontPaths, nPaths);
+
+#### XSetFontPath ####
+Font.c:1325: XSetFontPath(nxagentDisplay, newFontPaths, nPaths + 1);
+Font.c:1357: XSetFontPath(nxagentDisplay, fontPaths, nPaths);
+Font.c:1370: XSetFontPath(nxagentDisplay, fontPaths, nPaths);
+
+#### XSetForeground ####
+Splash.c:220: XSetForeground(nxagentDisplay, gc, nxagentLogoBlack);
+Splash.c:236: XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
+Splash.c:247: XSetForeground(nxagentDisplay, gc, nxagentLogoGray);
+
+#### XSetFunction ####
+Splash.c:218: XSetFunction(nxagentDisplay, gc, GXcopy);
+
+#### XSetGraphicsExposures ####
+
+#### XSetICFocus ####
+
+#### XSetICValues ####
+
+#### XSetIMValues ####
+
+#### XSetIOErrorHandler ####
+Display.c:872: XSetIOErrorHandler(nxagentIOErrorHandler);
+
+#### XSetIconName ####
+
+#### XSetIconSizes ####
+
+#### XSetInputFocus ####
+Events.c:3901: XSetInputFocus(nxagentDisplay, nxagentFullscreenWindow,
+Window.c:913: XSetInputFocus(nxagentDisplay, w, RevertToParent, CurrentTime);
+Window.c:2596: XSetInputFocus(nxagentDisplay, nxagentFullscreenWindow,
+
+#### XSetLineAttributes ####
+
+#### XSetLocaleModifiers ####
+
+#### XSetModifierMapping ####
+
+#### XSetNormalHints ####
+
+#### XSetOCValues ####
+
+#### XSetOMValues ####
+
+#### XSetPlaneMask ####
+
+#### XSetPointerMapping ####
+
+#### XSetRGBColormaps ####
+
+#### XSetRegion ####
+
+#### XSetScreenSaver ####
+Screen.c:1444: XSetScreenSaver(nxagentDisplay, 0, 0, DefaultExposures, DefaultBlanking);
+Screen.c:1693: XSetScreenSaver(nxagentDisplay, 0, 0, DefaultExposures, DefaultBlanking);
+Window.c:903: XSetScreenSaver(nxagentDisplay, 0, 0, DefaultExposures, DefaultBlanking);
+
+#### XSetSelectionOwner ####
+Clipboard.c:1049: XSetSelectionOwner(nxagentDisplay, lastSelectionOwner[i].selection, serverWindow, CurrentTime);
+Clipboard.c:1100: XSetSelectionOwner(nxagentDisplay, lastSelectionOwner[i].selection, serverWindow, CurrentTime);
+Clipboard.c:1557: XSetSelectionOwner(nxagentDisplay, serverCutProperty, iWindow, CurrentTime);
+Clipboard.c:1602: XSetSelectionOwner(nxagentDisplay, nxagentAtoms[10], iWindow, CurrentTime);
+Clipboard.c:1618: XSetSelectionOwner(nxagentDisplay, lastSelectionOwner[i].selection, iWindow, CurrentTime);
+Splash.c:101: XSetSelectionOwner(nxagentDisplay, nxagentWMStart, None, CurrentTime);
+Splash.c:396: XSetSelectionOwner(nxagentDisplay, nxagentWMStart,
+Splash.c:414: XSetSelectionOwner(nxagentDisplay, serverCutProperty,
+Window.c:2566: XSetSelectionOwner(nxagentDisplay, serverCutProperty,
+
+#### XSetSizeHints ####
+
+#### XSetStandardColormap ####
+
+#### XSetStandardProperties ####
+Screen.c:1871: XSetStandardProperties(nxagentDisplay,
+
+#### XSetState ####
+
+#### XSetStipple ####
+
+#### XSetSubwindowMode ####
+
+#### XSetTSOrigin ####
+
+#### XSetTextProperty ####
+
+#### XSetTile ####
+
+#### XSetTransientForHint ####
+
+#### XSetWMClientMachine ####
+
+#### XSetWMColormapWindows ####
+Colormap.c:270: XSetWMColormapWindows(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum],
+Colormap.c:275: XSetWMColormapWindows(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum],
+Colormap.c:334: XSetWMColormapWindows(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum],
+Colormap.c:339: XSetWMColormapWindows(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum],
+
+#### XSetWMHints ####
+Screen.c:1890: XSetWMHints(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum], &wmHints);
+
+#### XSetWMIconName ####
+
+#### XSetWMName ####
+
+#### XSetWMNormalHints ####
+Events.c:599: XSetWMNormalHints(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum],
+Events.c:620: XSetWMNormalHints(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum],
+Events.c:664: XSetWMNormalHints(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum],
+Screen.c:2399: XSetWMNormalHints(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum], &sizeHints);
+Screen.c:4400: XSetWMNormalHints(nxagentDisplay, nxagentDefaultWindows[screen], &sizeHints);
+Screen.c:4422: XSetWMNormalHints(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum], &sizeHints);
+Window.c:3099: XSetWMNormalHints(nxagentDisplay,
+
+#### XSetWMProperties ####
+Screen.c:427: XSetWMProperties(nxagentDisplay, w,
+
+#### XSetWMProtocols ####
+Screen.c:448: XSetWMProtocols(nxagentDisplay, w, &deleteWMAtom, 1);
+Screen.c:1964: XSetWMProtocols(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum], &deleteWMatom, 1);
+Screen.c:1974: XSetWMProtocols(nxagentDisplay, nxagentDefaultWindows[pScreen->myNum], &deleteWMatom, 1);
+Window.c:453: XSetWMProtocols(nxagentDisplay, nxagentWindowPriv(pWin)->window, &atom, 1);
+Window.c:3014: XSetWMProtocols(nxagentDisplay, nxagentWindow(pWin), &atom, 1);
+
+#### XSetWMSizeHints ####
+
+#### XSetWindowBackground ####
+Splash.c:379: XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo);
+
+#### XSetWindowBackgroundPixmap ####
+Splash.c:379: XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo);
+
+#### XSetWindowBorder ####
+
+#### XSetWindowBorderPixmap ####
+
+#### XSetWindowBorderWidth ####
+
+#### XSetWindowColormap ####
+Colormap.c:305: XSetWindowColormap(nxagentDisplay,
+
+#### XSetZoomHints ####
+
+#### XShrinkRegion ####
+
+#### XStoreBuffer ####
+
+#### XStoreBytes ####
+
+#### XStoreColor ####
+Colormap.c:458: XStoreColors(nxagentDisplay, nxagentColormap(pCmap), pColors64, nColors);
+Colormap.c:462: XStoreColors(nxagentDisplay, nxagentColormap(pCmap),
+
+#### XStoreColors ####
+Colormap.c:458: XStoreColors(nxagentDisplay, nxagentColormap(pCmap), pColors64, nColors);
+Colormap.c:462: XStoreColors(nxagentDisplay, nxagentColormap(pCmap),
+
+#### XStoreName ####
+
+#### XStoreNamedColor ####
+
+#### XStringListToTextProperty ####
+Screen.c:409: XStringListToTextProperty(&window_name, 1, &windowName);
+
+#### XStringToKeysym ####
+Keystroke.c:200: new.keysym = XStringToKeysym((char *)attr->children->content);
+
+#### XSubImage ####
+
+#### XSubtractRegion ####
+
+#### XSupportsLocale ####
+
+#### XSync ####
+Atoms.c:168: XSync(nxagentDisplay, 0);
+Atoms.c:261: XSync(nxagentDisplay, 0);
+Display.c:1234: XSynchronize(nxagentDisplay, True);
+Display.c:2991: XSync(nxagentDisplay, 0);
+Events.c:3370: XSync(nxagentDisplay, 0);
+GC.c:1156: XSync(nxagentDisplay, 0);
+Handlers.c:1254: XSync(nxagentDisplay, 0);
+Render.c:540: XSync(nxagentDisplay, 0);
+Render.c:607: XSync(nxagentDisplay, 0);
+Render.c:666: XSync(nxagentDisplay, 0);
+Render.c:699: XSync(nxagentDisplay, 0);
+Render.c:745: XSync(nxagentDisplay, 0);
+Render.c:991: XSync(nxagentDisplay, 0);
+Render.c:1155: XSync(nxagentDisplay, 0);
+Render.c:1653: XSync(nxagentDisplay, 0);
+Render.c:1827: XSync(nxagentDisplay, 0);
+Render.c:1913: XSync(nxagentDisplay, 0);
+Render.c:1991: XSync(nxagentDisplay, 0);
+Render.c:2069: XSync(nxagentDisplay, 0);
+Render.c:2090: XSync(nxagentDisplay, 0);
+Render.c:2098: XSync(nxagentDisplay, 0);
+Render.c:2172: XSync(nxagentDisplay, 0);
+Render.c:2300: XSync(nxagentDisplay, 0);
+Render.c:2537: XSync(nxagentDisplay, 0);
+Render.c:2694: XSync(nxagentDisplay, 0);
+Render.c:2834: XSync(nxagentDisplay, 0);
+Render.c:2902: XSync(nxagentDisplay, 0);
+Render.c:2975: XSync(nxagentDisplay, 0);
+Render.c:3038: XSync(nxagentDisplay, 0);
+Screen.c:348: XSync(nxagentDisplay, 0);
+Screen.c:4565: XSync(shadow, 0);
+Window.c:107:#define MAKE_SYNC_CONFIGURE_WINDOW XSync(nxagentDisplay, 0)
+Window.c:842: XSync(nxagentDisplay, 0);
+Window.c:2717: XSync(nxagentDisplay, 0);
+Window.c:2756: XSync(nxagentDisplay, 0);
+Window.c:2773: XSync(nxagentDisplay, 0);
+
+#### XSynchronize ####
+Display.c:1234: XSynchronize(nxagentDisplay, True);
+
+#### XTextExtents16 ####
+
+#### XTextExtents ####
+
+#### XTextPropertyToStringList ####
+
+#### XTextWidth16 ####
+GCOps.c:1875: width = XTextWidth16(nxagentFontStruct(pGC->font), (XChar2b *)string, count);
+
+#### XTextWidth ####
+GCOps.c:1802: width = XTextWidth(nxagentFontStruct(pGC->font), string, count);
+GCOps.c:1875: width = XTextWidth16(nxagentFontStruct(pGC->font), (XChar2b *)string, count);
+
+#### XTranslateCoordinates ####
+Events.c:3623: XTranslateCoordinates(nxagentDisplay, X -> xreparent.window,
+
+#### XUndefineCursor ####
+
+#### XUngrabButton ####
+
+#### XUngrabKey ####
+Events.c:3928: XUngrabKeyboard(nxagentDisplay, now);
+
+#### XUngrabKeyboard ####
+Events.c:3928: XUngrabKeyboard(nxagentDisplay, now);
+
+#### XUngrabPointer ####
+Events.c:1325: XUngrabPointer(nxagentDisplay, CurrentTime);
+Events.c:3934: XUngrabPointer(nxagentDisplay, now);
+NXevents.c:250: XUngrabPointer(nxagentDisplay, CurrentTime);
+
+#### XUngrabServer ####
+
+#### XUninstallColormap ####
+Colormap.c:381: XUninstallColormap(nxagentDisplay, nxagentColormap(pCmap));
+
+#### XUnionRectWithRegion ####
+Render.c:724: XUnionRectWithRegion(&rectangle, reg, reg);
+Window.c:2356: XUnionRectWithRegion(&rect, reg, reg);
+Window.c:2416: XUnionRectWithRegion(&rect, reg, reg);
+
+#### XUnionRegion ####
+
+#### XUnloadFont ####
+
+#### XUnlockDisplay ####
+
+#### XUnmapSubwindows ####
+
+#### XUnmapWindow ####
+Screen.c:296: XUnmapWindow(nxagentDisplay, nxagentFullscreenWindow);
+Screen.c:315: XUnmapWindow(nxagentDisplay, nxagentIconWindow);
+Screen.c:322: XUnmapWindow(nxagentDisplay, nxagentIconWindow);
+Window.c:807: XUnmapWindow(nxagentDisplay, w);
+Window.c:1948: XUnmapWindow(nxagentDisplay, nxagentWindow(pWin));
+Window.c:2488: XUnmapWindow(nxagentDisplay, nxagentDefaultWindows[i]);
+
+#### XUnregisterIMInstantiateCallback ####
+
+#### XUnsetICFocus ####
+
+#### XVaCreateNestedList ####
+
+#### XVendorRelease ####
+
+#### XVisualIDFromVisual ####
+Display.c:1543: vi.visualid = XVisualIDFromVisual(DefaultVisual(nxagentDisplay,
+
+#### XWMGeometry ####
+
+#### XWarpPointer ####
+
+#### XWhitePixel ####
+
+#### XWhitePixelOfScreen ####
+
+#### XWidthMMOfScreen ####
+
+#### XWidthOfScreen ####
+
+#### XWindowEvent ####
+
+#### XWithdrawWindow ####
+
+#### XWriteBitmapFile ####
+
+#### XXorRegion ####
+
+#### XauDisposeAuth ####
+
+#### XauFileName ####
+
+#### XauGetBestAuthByAddr ####
+
+#### XauReadAuth ####
+
+#### XcmsAddColorSpace ####
+
+#### XcmsAddFunctionSet ####
+
+#### XcmsAllocColor ####
+
+#### XcmsAllocNamedColor ####
+
+#### XcmsCCCOfColormap ####
+
+#### XcmsCIELabClipL ####
+
+#### XcmsCIELabClipLab ####
+
+#### XcmsCIELabClipab ####
+
+#### XcmsCIELabColorSpace ####
+
+#### XcmsCIELabQueryMaxC ####
+
+#### XcmsCIELabQueryMaxL ####
+
+#### XcmsCIELabQueryMaxLC ####
+
+#### XcmsCIELabQueryMinL ####
+
+#### XcmsCIELabToCIEXYZ ####
+
+#### XcmsCIELabWhiteShiftColors ####
+
+#### XcmsCIELuvClipL ####
+
+#### XcmsCIELuvClipLuv ####
+
+#### XcmsCIELuvClipuv ####
+
+#### XcmsCIELuvColorSpace ####
+
+#### XcmsCIELuvQueryMaxC ####
+
+#### XcmsCIELuvQueryMaxL ####
+
+#### XcmsCIELuvQueryMaxLC ####
+
+#### XcmsCIELuvQueryMinL ####
+
+#### XcmsCIELuvToCIEuvY ####
+
+#### XcmsCIELuvWhiteShiftColors ####
+
+#### XcmsCIEXYZColorSpace ####
+
+#### XcmsCIEXYZToCIELab ####
+
+#### XcmsCIEXYZToCIEuvY ####
+
+#### XcmsCIEXYZToCIExyY ####
+
+#### XcmsCIEXYZToRGBi ####
+
+#### XcmsCIEuvYColorSpace ####
+
+#### XcmsCIEuvYToCIELuv ####
+
+#### XcmsCIEuvYToCIEXYZ ####
+
+#### XcmsCIEuvYToTekHVC ####
+
+#### XcmsCIExyYColorSpace ####
+
+#### XcmsCIExyYToCIEXYZ ####
+
+#### XcmsClientWhitePointOfCCC ####
+
+#### XcmsConvertColors ####
+
+#### XcmsCreateCCC ####
+
+#### XcmsDefaultCCC ####
+
+#### XcmsDisplayOfCCC ####
+
+#### XcmsFormatOfPrefix ####
+
+#### XcmsFreeCCC ####
+
+#### XcmsLinearRGBFunctionSet ####
+
+#### XcmsLookupColor ####
+
+#### XcmsPrefixOfFormat ####
+
+#### XcmsQueryBlack ####
+
+#### XcmsQueryBlue ####
+
+#### XcmsQueryColor ####
+
+#### XcmsQueryColors ####
+
+#### XcmsQueryGreen ####
+
+#### XcmsQueryRed ####
+
+#### XcmsQueryWhite ####
+
+#### XcmsRGBColorSpace ####
+
+#### XcmsRGBToRGBi ####
+
+#### XcmsRGBiColorSpace ####
+
+#### XcmsRGBiToCIEXYZ ####
+
+#### XcmsRGBiToRGB ####
+
+#### XcmsScreenNumberOfCCC ####
+
+#### XcmsScreenWhitePointOfCCC ####
+
+#### XcmsSetCCCOfColormap ####
+
+#### XcmsSetCompressionProc ####
+
+#### XcmsSetWhiteAdjustProc ####
+
+#### XcmsSetWhitePoint ####
+
+#### XcmsStoreColor ####
+
+#### XcmsStoreColors ####
+
+#### XcmsTekHVCClipC ####
+
+#### XcmsTekHVCClipV ####
+
+#### XcmsTekHVCClipVC ####
+
+#### XcmsTekHVCColorSpace ####
+
+#### XcmsTekHVCQueryMaxC ####
+
+#### XcmsTekHVCQueryMaxV ####
+
+#### XcmsTekHVCQueryMaxVC ####
+
+#### XcmsTekHVCQueryMaxVSamples ####
+
+#### XcmsTekHVCQueryMinV ####
+
+#### XcmsTekHVCToCIEuvY ####
+
+#### XcmsTekHVCWhiteShiftColors ####
+
+#### XcmsUNDEFINEDColorSpace ####
+
+#### XcmsVisualOfCCC ####
+
+#### XkbAddDeviceLedInfo ####
+
+#### XkbAddGeomColor ####
+
+#### XkbAddGeomDoodad ####
+
+#### XkbAddGeomKey ####
+
+#### XkbAddGeomKeyAlias ####
+
+#### XkbAddGeomOutline ####
+
+#### XkbAddGeomOverlay ####
+
+#### XkbAddGeomOverlayKey ####
+
+#### XkbAddGeomOverlayRow ####
+
+#### XkbAddGeomProperty ####
+
+#### XkbAddGeomRow ####
+
+#### XkbAddGeomSection ####
+
+#### XkbAddGeomShape ####
+
+#### XkbAddKeyType ####
+
+#### XkbAllocClientMap ####
+
+#### XkbAllocCompatMap ####
+
+#### XkbAllocControls ####
+
+#### XkbAllocDeviceInfo ####
+
+#### XkbAllocGeomColors ####
+
+#### XkbAllocGeomDoodads ####
+
+#### XkbAllocGeomKeyAliases ####
+
+#### XkbAllocGeomKeys ####
+
+#### XkbAllocGeomOutlines ####
+
+#### XkbAllocGeomOverlayKeys ####
+
+#### XkbAllocGeomOverlayRows ####
+
+#### XkbAllocGeomOverlays ####
+
+#### XkbAllocGeomPoints ####
+
+#### XkbAllocGeomProps ####
+
+#### XkbAllocGeomRows ####
+
+#### XkbAllocGeomSectionDoodads ####
+
+#### XkbAllocGeomSections ####
+
+#### XkbAllocGeomShapes ####
+
+#### XkbAllocGeometry ####
+
+#### XkbAllocIndicatorMaps ####
+
+#### XkbAllocKeyboard ####
+
+#### XkbAllocNames ####
+
+#### XkbAllocServerMap ####
+
+#### XkbApplyCompatMapToKey ####
+
+#### XkbApplyVirtualModChanges ####
+
+#### XkbBell ####
+
+#### XkbBellEvent ####
+
+#### XkbChangeDeviceInfo ####
+
+#### XkbChangeEnabledControls ####
+
+#### XkbChangeKeycodeRange ####
+
+#### XkbChangeMap ####
+
+#### XkbChangeNames ####
+
+#### XkbChangeTypesOfKey ####
+
+#### XkbComputeEffectiveMap ####
+
+#### XkbComputeRowBounds ####
+
+#### XkbComputeSectionBounds ####
+
+#### XkbComputeShapeBounds ####
+
+#### XkbComputeShapeTop ####
+
+#### XkbCopyKeyType ####
+
+#### XkbCopyKeyTypes ####
+
+#### XkbDeviceBell ####
+
+#### XkbDeviceBellEvent ####
+
+#### XkbFindOverlayForKey ####
+
+#### XkbForceBell ####
+
+#### XkbForceDeviceBell ####
+
+#### XkbFreeClientMap ####
+
+#### XkbFreeCompatMap ####
+
+#### XkbFreeComponentList ####
+
+#### XkbFreeControls ####
+
+#### XkbFreeDeviceInfo ####
+
+#### XkbFreeGeomColors ####
+
+#### XkbFreeGeomDoodads ####
+
+#### XkbFreeGeomKeyAliases ####
+
+#### XkbFreeGeomKeys ####
+
+#### XkbFreeGeomOutlines ####
+
+#### XkbFreeGeomOverlayKeys ####
+
+#### XkbFreeGeomOverlayRows ####
+
+#### XkbFreeGeomOverlays ####
+
+#### XkbFreeGeomPoints ####
+
+#### XkbFreeGeomProperties ####
+
+#### XkbFreeGeomRows ####
+
+#### XkbFreeGeomSections ####
+
+#### XkbFreeGeomShapes ####
+
+#### XkbFreeGeometry ####
+
+#### XkbFreeIndicatorMaps ####
+
+#### XkbFreeKeyboard ####
+Keyboard.c:837: XkbFreeKeyboard(xkb, XkbAllComponentsMask, True);
+Keyboard.c:1128: XkbFreeKeyboard(xkb, XkbAllComponentsMask, True);
+
+#### XkbFreeNames ####
+
+#### XkbFreeServerMap ####
+
+#### XkbGetAutoRepeatRate ####
+
+#### XkbGetAutoResetControls ####
+
+#### XkbGetCompatMap ####
+
+#### XkbGetControls ####
+Keyboard.c:137:extern Status XkbGetControls(
+Keyboard.c:1009: XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb);
+
+#### XkbGetDetectableAutoRepeat ####
+
+#### XkbGetDeviceButtonActions ####
+
+#### XkbGetDeviceInfo ####
+
+#### XkbGetDeviceInfoChanges ####
+
+#### XkbGetDeviceLedInfo ####
+
+#### XkbGetGeometry ####
+
+#### XkbGetIndicatorMap ####
+
+#### XkbGetIndicatorState ####
+Events.c:203: * and XkbGetIndicatorState.
+Events.c:3790: XkbGetIndicatorState(nxagentDisplay, XkbUseCoreKbd, &modifiers);
+
+#### XkbGetKeyActions ####
+
+#### XkbGetKeyBehaviors ####
+
+#### XkbGetKeyExplicitComponents ####
+
+#### XkbGetKeyModifierMap ####
+
+#### XkbGetKeySyms ####
+
+#### XkbGetKeyTypes ####
+
+#### XkbGetKeyVirtualModMap ####
+
+#### XkbGetKeyboard ####
+Keyboard.c:129:extern XkbDescPtr XkbGetKeyboard(
+Keyboard.c:972: xkb = XkbGetKeyboard(nxagentDisplay, XkbGBN_AllComponentsMask, XkbUseCoreKbd);
+
+#### XkbGetKeyboardByName ####
+
+#### XkbGetMap ####
+
+#### XkbGetMapChanges ####
+
+#### XkbGetNamedDeviceIndicator ####
+
+#### XkbGetNamedGeometry ####
+
+#### XkbGetNamedIndicator ####
+
+#### XkbGetNames ####
+Keyboard.c:88:static int nxagentXkbGetNames(char **rules, char **model, char **layout,
+Keyboard.c:1709:static int nxagentXkbGetNames(char **rules, char **model, char **layout,
+Keyboard.c:1804: drulesLen = nxagentXkbGetNames(&drules, &dmodel, &dlayout,
+
+#### XkbGetPerClientControls ####
+
+#### XkbGetState ####
+
+#### XkbGetUpdatedMap ####
+
+#### XkbGetVirtualMods ####
+
+#### XkbGetXlibControls ####
+
+#### XkbIgnoreExtension ####
+
+#### XkbInitCanonicalKeyTypes ####
+
+#### XkbKeyTypesForCoreSymbols ####
+
+#### XkbKeycodeToKeysym ####
+
+#### XkbKeysymToModifiers ####
+
+#### XkbLatchGroup ####
+
+#### XkbLatchModifiers ####
+
+#### XkbLibraryVersion ####
+
+#### XkbListComponents ####
+
+#### XkbLockGroup ####
+
+#### XkbLockModifiers ####
+
+#### XkbLookupKeyBinding ####
+
+#### XkbLookupKeySym ####
+
+#### XkbNoteControlsChanges ####
+
+#### XkbNoteDeviceChanges ####
+
+#### XkbNoteMapChanges ####
+
+#### XkbNoteNameChanges ####
+
+#### XkbOpenDisplay ####
+
+#### XkbQueryExtension ####
+Keyboard.c:118:extern Bool XkbQueryExtension(
+Keyboard.c:960: if (XkbQueryExtension(nxagentDisplay,
+Keyboard.c:1889: result = XkbQueryExtension(nxagentDisplay, &info.Opcode, &info.EventBase,
+
+#### XkbRefreshKeyboardMapping ####
+
+#### XkbResizeDeviceButtonActions ####
+
+#### XkbResizeKeyActions ####
+
+#### XkbResizeKeySyms ####
+
+#### XkbResizeKeyType ####
+
+#### XkbSelectEventDetails ####
+
+#### XkbSelectEvents ####
+Events.c:3700: XkbSelectEvents(nxagentDisplay, XkbUseCoreKbd,
+Events.c:3721: XkbSelectEvents(nxagentDisplay, XkbUseCoreKbd, 0x0, 0x0);
+
+#### XkbSetAtomFuncs ####
+
+#### XkbSetAutoRepeatRate ####
+
+#### XkbSetAutoResetControls ####
+
+#### XkbSetCompatMap ####
+
+#### XkbSetControls ####
+
+#### XkbSetDebuggingFlags ####
+
+#### XkbSetDetectableAutoRepeat ####
+
+#### XkbSetDeviceButtonActions ####
+
+#### XkbSetDeviceInfo ####
+
+#### XkbSetDeviceLedInfo ####
+
+#### XkbSetGeometry ####
+
+#### XkbSetIgnoreLockMods ####
+
+#### XkbSetIndicatorMap ####
+
+#### XkbSetMap ####
+
+#### XkbSetNamedDeviceIndicator ####
+
+#### XkbSetNamedIndicator ####
+
+#### XkbSetNames ####
+
+#### XkbSetPerClientControls ####
+
+#### XkbSetServerInternalMods ####
+
+#### XkbSetXlibControls ####
+
+#### XkbToControl ####
+
+#### XkbTranslateKey ####
+
+#### XkbTranslateKeyCode ####
+
+#### XkbTranslateKeySym ####
+
+#### XkbUpdateActionVirtualMods ####
+
+#### XkbUpdateKeyTypeVirtualMods ####
+
+#### XkbUpdateMapFromCore ####
+
+#### XkbUseExtension ####
+
+#### XkbVirtualModsToReal ####
+
+#### XkbXlibControlsImplemented ####
+
+#### XmbDrawImageString ####
+
+#### XmbDrawString ####
+
+#### XmbDrawText ####
+
+#### XmbLookupString ####
+
+#### XmbResetIC ####
+
+#### XmbSetWMProperties ####
+
+#### XmbTextEscapement ####
+
+#### XmbTextExtents ####
+
+#### XmbTextListToTextProperty ####
+
+#### XmbTextPerCharExtents ####
+
+#### XmbTextPropertyToTextList ####
+Events.c:349: ret = XmbTextPropertyToTextList(nxagentDisplay, &tp, &list, &count);
+
+#### Xpermalloc ####
+
+#### XrmCombineDatabase ####
+
+#### XrmCombineFileDatabase ####
+
+#### XrmDestroyDatabase ####
+
+#### XrmEnumerateDatabase ####
+
+#### XrmGetDatabase ####
+
+#### XrmGetFileDatabase ####
+
+#### XrmGetResource ####
+
+#### XrmGetStringDatabase ####
+
+#### XrmInitialize ####
+
+#### XrmLocaleOfDatabase ####
+
+#### XrmMergeDatabases ####
+
+#### XrmParseCommand ####
+
+#### XrmPermStringToQuark ####
+
+#### XrmPutFileDatabase ####
+
+#### XrmPutLineResource ####
+
+#### XrmPutResource ####
+
+#### XrmPutStringResource ####
+
+#### XrmQGetResource ####
+
+#### XrmQGetSearchList ####
+
+#### XrmQGetSearchResource ####
+
+#### XrmQPutResource ####
+
+#### XrmQPutStringResource ####
+
+#### XrmQuarkToString ####
+
+#### XrmSetDatabase ####
+
+#### XrmStringToBindingQuarkList ####
+
+#### XrmStringToQuark ####
+
+#### XrmStringToQuarkList ####
+
+#### XrmUniqueQuark ####
+
+#### Xutf8DrawImageString ####
+
+#### Xutf8DrawString ####
+
+#### Xutf8DrawText ####
+
+#### Xutf8LookupString ####
+
+#### Xutf8ResetIC ####
+
+#### Xutf8SetWMProperties ####
+
+#### Xutf8TextEscapement ####
+
+#### Xutf8TextExtents ####
+
+#### Xutf8TextListToTextProperty ####
+
+#### Xutf8TextPerCharExtents ####
+
+#### Xutf8TextPropertyToTextList ####
+
+#### XwcDrawImageString ####
+
+#### XwcDrawString ####
+
+#### XwcDrawText ####
+
+#### XwcFreeStringList ####
+
+#### XwcLookupString ####
+
+#### XwcResetIC ####
+
+#### XwcTextEscapement ####
+
+#### XwcTextExtents ####
+
+#### XwcTextListToTextProperty ####
+
+#### XwcTextPerCharExtents ####
+
+#### XwcTextPropertyToTextList ####
+
+#### _Utf8GetConvByName ####
+
+#### _X11TransBytesReadable ####
+
+#### _X11TransClose ####
+
+#### _X11TransCloseForCloning ####
+
+#### _X11TransConnect ####
+
+#### _X11TransConnectDisplay ####
+
+#### _X11TransConvertAddress ####
+
+#### _X11TransDisconnect ####
+
+#### _X11TransFreeConnInfo ####
+
+#### _X11TransGetConnectionNumber ####
+
+#### _X11TransGetHostname ####
+
+#### _X11TransGetMyAddr ####
+
+#### _X11TransGetPeerAddr ####
+
+#### _X11TransIsLocal ####
+
+#### _X11TransOpenCOTSClient ####
+
+#### _X11TransRead ####
+
+#### _X11TransReadv ####
+
+#### _X11TransSetOption ####
+
+#### _X11TransSocketINET6Funcs ####
+
+#### _X11TransSocketINETFuncs ####
+
+#### _X11TransSocketLocalFuncs ####
+
+#### _X11TransSocketProxyConnInfo ####
+
+#### _X11TransSocketTCPFuncs ####
+
+#### _X11TransSocketUNIXFuncs ####
+
+#### _X11TransWrite ####
+
+#### _X11TransWritev ####
+
+#### _XAllocID ####
+
+#### _XAllocIDs ####
+
+#### _XAllocScratch ####
+
+#### _XAllocTemp ####
+
+#### _XAsyncErrorHandler ####
+
+#### _XCloseLC ####
+
+#### _XColor_to_XcmsRGB ####
+
+#### _XConnectDisplay ####
+
+#### _XCopyEventCookie ####
+
+#### _XCopyToArg ####
+
+#### _XCreateMutex_fn ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XData32 ####
+
+#### _XDefaultError ####
+
+#### _XDefaultIOError ####
+
+#### _XDefaultWireError ####
+
+#### _XDeq ####
+Events.c:4206: _XDeq(nxagentDisplay, prev, qelt);
+Events.c:4215: _XDeq(nxagentDisplay, prevKeyRelease, qeltKeyRelease);
+
+#### _XDeqAsyncHandler ####
+
+#### _XDisconnectDisplay ####
+
+#### _XEatData ####
+
+#### _XEatDataWords ####
+
+#### _XEnq ####
+
+#### _XError ####
+
+#### _XErrorFunction ####
+
+#### _XEventToWire ####
+
+#### _XEventsQueued ####
+
+#### _XF86BigfontFreeFontMetrics ####
+Font.c:1723: _XF86BigfontFreeFontMetrics(fs);
+
+#### _XF86LoadQueryLocaleFont ####
+
+#### _XFetchEventCookie ####
+
+#### _XFlush ####
+
+#### _XFlushGCCache ####
+
+#### _XFreeAtomTable ####
+
+#### _XFreeDisplayLock_fn ####
+
+#### _XFreeDisplayStructure ####
+
+#### _XFreeEventCookies ####
+
+#### _XFreeExtData ####
+
+#### _XFreeMutex_fn ####
+
+#### _XFreeTemp ####
+
+#### _XGetAsyncData ####
+
+#### _XGetAsyncReply ####
+
+#### _XGetBitsPerPixel ####
+Args.c:122:extern int _XGetBitsPerPixel(Display *dpy, int depth);
+
+#### _XGetHostname ####
+
+#### _XGetLCValues ####
+
+#### _XGetRequest ####
+
+#### _XGetScanlinePad ####
+
+#### _XGetWindowAttributes ####
+
+#### _XHeadOfDisplayList ####
+
+#### _XIMCompileResourceList ####
+
+#### _XIOError ####
+
+#### _XIOErrorFunction ####
+
+#### _XInitDisplayLock_fn ####
+
+#### _XInitIM ####
+
+#### _XInitImageFuncPtrs ####
+
+#### _XInitKeysymDB ####
+
+#### _XInitOM ####
+
+#### _XIsEventCookie ####
+
+#### _XKeyInitialize ####
+
+#### _XKeycodeToKeysym ####
+
+#### _XKeysymToKeycode ####
+
+#### _XKeysymToModifiers ####
+
+#### _XLockMutex_fn ####
+
+#### _XLookupKeysym ####
+
+#### _XLookupString ####
+
+#### _XNoticeCreateBitmap ####
+
+#### _XNoticePutBitmap ####
+
+#### _XOpenLC ####
+
+#### _XParseBaseFontNameList ####
+
+#### _XPollfdCacheAdd ####
+
+#### _XPollfdCacheDel ####
+
+#### _XPollfdCacheInit ####
+
+#### _XProcessInternalConnection ####
+
+#### _XProcessWindowAttributes ####
+
+#### _XPutBackEvent ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XRead32 ####
+
+#### _XRead ####
+
+#### _XReadEvents ####
+
+#### _XReadPad ####
+
+#### _XRefreshKeyboardMapping ####
+
+#### _XRegisterFilterByMask ####
+
+#### _XRegisterFilterByType ####
+
+#### _XRegisterInternalConnection ####
+
+#### _XReply ####
+
+#### _XReverse_Bytes ####
+
+#### _XScreenOfWindow ####
+
+#### _XSelect ####
+
+#### _XSend ####
+
+#### _XSendClientPrefix ####
+
+#### _XSetClipRectangles ####
+
+#### _XSetImage ####
+
+#### _XSetLastRequestRead ####
+
+#### _XStoreEventCookie ####
+
+#### _XTextHeight16 ####
+
+#### _XTextHeight ####
+
+#### _XTranslateKey ####
+
+#### _XTranslateKeySym ####
+
+#### _XTryShapeBitmapCursor ####
+
+#### _XUnknownCopyEventCookie ####
+
+#### _XUnknownNativeEvent ####
+
+#### _XUnknownWireEvent ####
+
+#### _XUnknownWireEventCookie ####
+
+#### _XUnlockMutex_fn ####
+
+#### _XUnregisterFilter ####
+
+#### _XUnregisterInternalConnection ####
+
+#### _XUnresolveColor ####
+
+#### _XUpdateAtomCache ####
+
+#### _XUpdateGCCache ####
+
+#### _XVIDtoVisual ####
+
+#### _XWireToEvent ####
+
+#### _XcmsAddCmapRec ####
+
+#### _XcmsArcTangent ####
+
+#### _XcmsCIELabQueryMaxLCRGB ####
+
+#### _XcmsCIELab_prefix ####
+
+#### _XcmsCIELuvQueryMaxLCRGB ####
+
+#### _XcmsCIELuv_prefix ####
+
+#### _XcmsCIEXYZ_ValidSpec ####
+
+#### _XcmsCIEXYZ_prefix ####
+
+#### _XcmsCIEuvY_ValidSpec ####
+
+#### _XcmsCIEuvY_prefix ####
+
+#### _XcmsCIExyY_prefix ####
+
+#### _XcmsConvertColorsWithWhitePt ####
+
+#### _XcmsCopyCmapRecAndFree ####
+
+#### _XcmsCopyISOLatin1Lowered ####
+
+#### _XcmsCopyPointerArray ####
+
+#### _XcmsCosine ####
+
+#### _XcmsCubeRoot ####
+
+#### _XcmsDDColorSpaces ####
+
+#### _XcmsDDColorSpacesInit ####
+
+#### _XcmsDDConvertColors ####
+
+#### _XcmsDIColorSpaces ####
+
+#### _XcmsDIColorSpacesInit ####
+
+#### _XcmsDIConvertColors ####
+
+#### _XcmsDeleteCmapRec ####
+
+#### _XcmsEqualWhitePts ####
+
+#### _XcmsFreeIntensityMaps ####
+
+#### _XcmsFreePointerArray ####
+
+#### _XcmsGetElement ####
+
+#### _XcmsGetIntensityMap ####
+
+#### _XcmsGetProperty ####
+
+#### _XcmsInitDefaultCCCs ####
+
+#### _XcmsInitScrnInfo ####
+
+#### _XcmsLRGB_InitScrnDefault ####
+
+#### _XcmsPushPointerArray ####
+
+#### _XcmsRGB_prefix ####
+
+#### _XcmsRGB_to_XColor ####
+
+#### _XcmsRGBi_prefix ####
+
+#### _XcmsRegColorSpaces ####
+
+#### _XcmsRegFormatOfPrefix ####
+
+#### _XcmsResolveColor ####
+
+#### _XcmsResolveColorString ####
+
+#### _XcmsSCCFuncSets ####
+
+#### _XcmsSCCFuncSetsInit ####
+
+#### _XcmsSetGetColor ####
+
+#### _XcmsSetGetColors ####
+
+#### _XcmsSine ####
+
+#### _XcmsSquareRoot ####
+
+#### _XcmsTekHVCQueryMaxVCRGB ####
+
+#### _XcmsTekHVC_CheckModify ####
+
+#### _XcmsTekHVC_prefix ####
+
+#### _XcmsUnresolveColor ####
+
+#### _Xdebug ####
+
+#### _Xevent_to_mask ####
+
+#### _Xglobal_lock ####
+
+#### _Xi18n_lock ####
+
+#### _XimCbDispatch ####
+
+#### _XimCheckCreateICValues ####
+
+#### _XimCheckDataSize ####
+
+#### _XimCheckICMode ####
+
+#### _XimCheckIMMode ####
+
+#### _XimCheckIfLocalProcessing ####
+
+#### _XimCheckIfThaiProcessing ####
+
+#### _XimCheckLocalInputStyle ####
+
+#### _XimCommitCallback ####
+
+#### _XimConnect ####
+
+#### _XimDecodeICATTRIBUTE ####
+
+#### _XimDecodeIMATTRIBUTE ####
+
+#### _XimDecodeLocalICAttr ####
+
+#### _XimDecodeLocalIMAttr ####
+
+#### _XimDestroyIMStructureList ####
+
+#### _XimDispatchInit ####
+
+#### _XimEncodeICATTRIBUTE ####
+
+#### _XimEncodeIMATTRIBUTE ####
+
+#### _XimEncodeLocalICAttr ####
+
+#### _XimEncodeLocalIMAttr ####
+
+#### _XimError ####
+
+#### _XimErrorCallback ####
+
+#### _XimExtension ####
+
+#### _XimFilterWaitEvent ####
+
+#### _XimFlush ####
+
+#### _XimForwardEvent ####
+
+#### _XimForwardEventCallback ####
+
+#### _XimFreeCommitInfo ####
+
+#### _XimFreeProtoIntrCallback ####
+
+#### _XimFreeTransIntrCallback ####
+
+#### _XimGetAttributeID ####
+
+#### _XimGetCharCode ####
+
+#### _XimGetCurrentICValues ####
+
+#### _XimGetCurrentIMValues ####
+
+#### _XimGetICValueData ####
+
+#### _XimGetIMValueData ####
+
+#### _XimGetLocaleCode ####
+
+#### _XimGetMyEndian ####
+
+#### _XimGetResourceListRec ####
+
+#### _XimGetResourceListRecByQuark ####
+
+#### _XimGetWindowEventmask ####
+
+#### _XimICOfXICID ####
+
+#### _XimImSportRec ####
+
+#### _XimInitialResourceInfo ####
+
+#### _XimLcctstombs ####
+
+#### _XimLcctstoutf8 ####
+
+#### _XimLcctstowcs ####
+
+#### _XimLocalCreateIC ####
+
+#### _XimLocalFilter ####
+
+#### _XimLocalGetICValues ####
+
+#### _XimLocalGetIMValues ####
+
+#### _XimLocalIMFree ####
+
+#### _XimLocalMbLookupString ####
+
+#### _XimLocalOpenIM ####
+
+#### _XimLocalSetICValues ####
+
+#### _XimLocalSetIMValues ####
+
+#### _XimLocalUtf8LookupString ####
+
+#### _XimLocalWcLookupString ####
+
+#### _XimLookupMBText ####
+
+#### _XimLookupUTF8Text ####
+
+#### _XimLookupWCText ####
+
+#### _XimMakeICAttrIDList ####
+
+#### _XimMakeIMAttrIDList ####
+
+#### _XimOpenIM ####
+
+#### _XimParseStringFile ####
+
+#### _XimProcError ####
+
+#### _XimProcSyncReply ####
+
+#### _XimProtoCreateIC ####
+
+#### _XimProtoEventToWire ####
+
+#### _XimProtoIMFree ####
+
+#### _XimProtoMbLookupString ####
+
+#### _XimProtoOpenIM ####
+
+#### _XimProtoUtf8LookupString ####
+
+#### _XimProtoWcLookupString ####
+
+#### _XimProtoWireToEvent ####
+
+#### _XimRead ####
+
+#### _XimRegProtoIntrCallback ####
+
+#### _XimRegisterDispatcher ####
+
+#### _XimRegisterFilter ####
+
+#### _XimRegisterIMInstantiateCallback ####
+
+#### _XimRegisterServerFilter ####
+
+#### _XimRegisterTriggerKeysCallback ####
+
+#### _XimReregisterFilter ####
+
+#### _XimResetIMInstantiateCallback ####
+
+#### _XimRespSyncReply ####
+
+#### _XimServerDestroy ####
+
+#### _XimSetCurrentICValues ####
+
+#### _XimSetCurrentIMValues ####
+
+#### _XimSetEventMaskCallback ####
+
+#### _XimSetHeader ####
+
+#### _XimSetICDefaults ####
+
+#### _XimSetICMode ####
+
+#### _XimSetICResourceList ####
+
+#### _XimSetICValueData ####
+
+#### _XimSetIMMode ####
+
+#### _XimSetIMResourceList ####
+
+#### _XimSetIMValueData ####
+
+#### _XimSetInnerICResourceList ####
+
+#### _XimSetInnerIMResourceList ####
+
+#### _XimSetLocalIMDefaults ####
+
+#### _XimShutdown ####
+
+#### _XimSync ####
+
+#### _XimSyncCallback ####
+
+#### _XimThaiCloseIM ####
+
+#### _XimThaiCreateIC ####
+
+#### _XimThaiFilter ####
+
+#### _XimThaiIMFree ####
+
+#### _XimThaiOpenIM ####
+
+#### _XimTransCallDispatcher ####
+
+#### _XimTransConf ####
+
+#### _XimTransFilterWaitEvent ####
+
+#### _XimTransFlush ####
+
+#### _XimTransInternalConnection ####
+
+#### _XimTransRead ####
+
+#### _XimTransRegisterDispatcher ####
+
+#### _XimTransWrite ####
+
+#### _XimTransportRec ####
+
+#### _XimTriggerNotify ####
+
+#### _XimUnRegisterIMInstantiateCallback ####
+
+#### _XimUnregisterFilter ####
+
+#### _XimUnregisterServerFilter ####
+
+#### _XimWrite ####
+
+#### _XimXConf ####
+
+#### _XimXTransBytesReadable ####
+
+#### _XimXTransClose ####
+
+#### _XimXTransCloseForCloning ####
+
+#### _XimXTransConnect ####
+
+#### _XimXTransDisconnect ####
+
+#### _XimXTransFreeConnInfo ####
+
+#### _XimXTransGetConnectionNumber ####
+
+#### _XimXTransGetHostname ####
+
+#### _XimXTransGetPeerAddr ####
+
+#### _XimXTransIsLocal ####
+
+#### _XimXTransOpenCOTSClient ####
+
+#### _XimXTransRead ####
+
+#### _XimXTransReadv ####
+
+#### _XimXTransSetOption ####
+
+#### _XimXTransSocketINET6Funcs ####
+
+#### _XimXTransSocketINETFuncs ####
+
+#### _XimXTransSocketLocalFuncs ####
+
+#### _XimXTransSocketTCPFuncs ####
+
+#### _XimXTransSocketUNIXFuncs ####
+
+#### _XimXTransWrite ####
+
+#### _XimXTransWritev ####
+
+#### _Ximctstombs ####
+
+#### _Ximctstoutf8 ####
+
+#### _Ximctstowcs ####
+
+#### _XkbCopyFromReadBuffer ####
+
+#### _XkbFreeReadBuffer ####
+
+#### _XkbGetAtomNameFunc ####
+
+#### _XkbGetCharset ####
+
+#### _XkbGetConverters ####
+
+#### _XkbGetReadBufferCountedString ####
+
+#### _XkbGetReadBufferPtr ####
+
+#### _XkbInitReadBuffer ####
+
+#### _XkbInternAtomFunc ####
+
+#### _XkbNoteCoreMapChanges ####
+
+#### _XkbPeekAtReadBuffer ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbReadBufferCopy32 ####
+
+#### _XkbReadBufferCopyKeySyms ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbReadCopyData32 ####
+
+#### _XkbReadCopyKeySyms ####
+
+#### _XkbReadGetCompatMapReply ####
+
+#### _XkbReadGetGeometryReply ####
+
+#### _XkbReadGetIndicatorMapReply ####
+
+#### _XkbReadGetMapReply ####
+
+#### _XkbReadGetNamesReply ####
+
+#### _XkbReloadDpy ####
+
+#### _XkbSkipReadBufferData ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbWriteCopyData32 ####
+
+#### _XkbWriteCopyKeySyms ####
+
+#### _XkeyTable ####
+
+#### _XlcAddCT ####
+
+#### _XlcAddCharSet ####
+
+#### _XlcAddGB18030LocaleConverters ####
+
+#### _XlcAddLoader ####
+
+#### _XlcAddUtf8Converters ####
+
+#### _XlcAddUtf8LocaleConverters ####
+
+#### _XlcCloseConverter ####
+
+#### _XlcCompareISOLatin1 ####
+
+#### _XlcCompileResourceList ####
+
+#### _XlcConvert ####
+
+#### _XlcCopyFromArg ####
+
+#### _XlcCopyToArg ####
+
+#### _XlcCountVaList ####
+
+#### _XlcCreateDefaultCharSet ####
+
+#### _XlcCreateLC ####
+
+#### _XlcCreateLocaleDataBase ####
+
+#### _XlcCurrentLC ####
+
+#### _XlcDbg_printValue ####
+
+#### _XlcDeInitLoader ####
+
+#### _XlcDefaultLoader ####
+
+#### _XlcDefaultMapModifiers ####
+
+#### _XlcDestroyLC ####
+
+#### _XlcDestroyLocaleDataBase ####
+
+#### _XlcFileName ####
+
+#### _XlcGenericLoader ####
+
+#### _XlcGenericMethods ####
+
+#### _XlcGetCSValues ####
+
+#### _XlcGetCharSet ####
+
+#### _XlcGetCharSetWithSide ####
+
+#### _XlcGetLocaleDataBase ####
+
+#### _XlcGetResource ####
+
+#### _XlcGetValues ####
+
+#### _XlcInitCTInfo ####
+
+#### _XlcInitLoader ####
+
+#### _XlcLocaleDirName ####
+
+#### _XlcLocaleLibDirName ####
+
+#### _XlcMapOSLocaleName ####
+
+#### _XlcNCompareISOLatin1 ####
+
+#### _XlcOpenConverter ####
+
+#### _XlcParseCharSet ####
+
+#### _XlcParse_scopemaps ####
+
+#### _XlcPublicMethods ####
+
+#### _XlcRemoveLoader ####
+
+#### _XlcResetConverter ####
+
+#### _XlcResolveI18NPath ####
+
+#### _XlcResolveLocaleName ####
+
+#### _XlcSetConverter ####
+
+#### _XlcSetValues ####
+
+#### _XlcUtf8Loader ####
+
+#### _XlcVaToArgList ####
+
+#### _XlcValidModSyntax ####
+
+#### _Xlcmbstoutf8 ####
+
+#### _Xlcmbstowcs ####
+
+#### _Xlcmbtowc ####
+
+#### _Xlcwcstombs ####
+
+#### _Xlcwctomb ####
+
+#### _XmbDefaultDrawImageString ####
+
+#### _XmbDefaultDrawString ####
+
+#### _XmbDefaultTextEscapement ####
+
+#### _XmbDefaultTextExtents ####
+
+#### _XmbDefaultTextPerCharExtents ####
+
+#### _XmbGenericDrawImageString ####
+
+#### _XmbGenericDrawString ####
+
+#### _XmbGenericTextEscapement ####
+
+#### _XmbGenericTextExtents ####
+
+#### _XmbGenericTextPerCharExtents ####
+
+#### _XmbTextListToTextProperty ####
+
+#### _XmbTextPropertyToTextList ####
+
+#### _Xmblen ####
+
+#### _Xmbstoutf8 ####
+
+#### _Xmbstowcs ####
+
+#### _Xmbtowc ####
+
+#### _XomConvert ####
+
+#### _XomGenericDrawString ####
+
+#### _XomGenericOpenOM ####
+
+#### _XomGenericTextExtents ####
+
+#### _XomGetFontDataFromFontSet ####
+
+#### _XomInitConverter ####
+
+#### _XrmDefaultInitParseInfo ####
+
+#### _XrmInitParseInfo ####
+
+#### _XrmInternalStringToQuark ####
+
+#### _Xthread_self_fn ####
+
+#### _Xutf8DefaultDrawImageString ####
+
+#### _Xutf8DefaultDrawString ####
+
+#### _Xutf8DefaultTextEscapement ####
+
+#### _Xutf8DefaultTextExtents ####
+
+#### _Xutf8DefaultTextPerCharExtents ####
+
+#### _Xutf8GenericDrawImageString ####
+
+#### _Xutf8GenericDrawString ####
+
+#### _Xutf8GenericTextEscapement ####
+
+#### _Xutf8GenericTextExtents ####
+
+#### _Xutf8GenericTextPerCharExtents ####
+
+#### _Xutf8TextListToTextProperty ####
+
+#### _Xutf8TextPropertyToTextList ####
+
+#### _XwcDefaultDrawImageString ####
+
+#### _XwcDefaultDrawString ####
+
+#### _XwcDefaultTextEscapement ####
+
+#### _XwcDefaultTextExtents ####
+
+#### _XwcDefaultTextPerCharExtents ####
+
+#### _XwcFreeStringList ####
+
+#### _XwcGenericDrawImageString ####
+
+#### _XwcGenericDrawString ####
+
+#### _XwcGenericTextEscapement ####
+
+#### _XwcGenericTextExtents ####
+
+#### _XwcGenericTextPerCharExtents ####
+
+#### _XwcTextListToTextProperty ####
+
+#### _XwcTextPropertyToTextList ####
+
+#### _Xwcscmp ####
+
+#### _Xwcscpy ####
+
+#### _Xwcslen ####
+
+#### _Xwcsncmp ####
+
+#### _Xwcsncpy ####
+
+#### _Xwcstombs ####
+
+#### _Xwctomb ####
+
+#### _qfree ####
+
+#### read_EncodingInfo ####
+
+#### xlocaledir ####
diff --git a/doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxcompext.txt b/doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxcompext.txt
new file mode 100644
index 000000000..3666d9b21
--- /dev/null
+++ b/doc/libNX_X11/symbols/libNX_X11::symbol-usage_nxcompext.txt
@@ -0,0 +1,2613 @@
+
+#### KeySymToUcs4 ####
+
+#### XActivateScreenSaver ####
+
+#### XAddConnectionWatch ####
+
+#### XAddExtension ####
+
+#### XAddHost ####
+
+#### XAddHosts ####
+
+#### XAddPixel ####
+
+#### XAddToExtensionList ####
+
+#### XAddToSaveSet ####
+
+#### XAllPlanes ####
+
+#### XAllocClassHint ####
+
+#### XAllocColor ####
+Compext.c:2574:int NXAllocColors(Display *dpy, Colormap colormap, unsigned int entries,
+Compext.h:668:extern int NXAllocColors(
+
+#### XAllocColorCells ####
+
+#### XAllocColorPlanes ####
+
+#### XAllocIconSize ####
+
+#### XAllocNamedColor ####
+
+#### XAllocSizeHints ####
+
+#### XAllocStandardColormap ####
+
+#### XAllocWMHints ####
+
+#### XAllowEvents ####
+
+#### XAutoRepeatOff ####
+
+#### XAutoRepeatOn ####
+
+#### XBaseFontNameListOfFontSet ####
+
+#### XBell ####
+
+#### XBitmapBitOrder ####
+
+#### XBitmapPad ####
+
+#### XBitmapUnit ####
+
+#### XBlackPixel ####
+
+#### XBlackPixelOfScreen ####
+
+#### XCellsOfScreen ####
+
+#### XChangeActivePointerGrab ####
+
+#### XChangeGC ####
+
+#### XChangeKeyboardControl ####
+
+#### XChangeKeyboardMapping ####
+
+#### XChangePointerControl ####
+
+#### XChangeProperty ####
+
+#### XChangeSaveSet ####
+
+#### XChangeWindowAttributes ####
+
+#### XCheckIfEvent ####
+
+#### XCheckIfEventNoFlush ####
+
+#### XCheckMaskEvent ####
+
+#### XCheckTypedEvent ####
+
+#### XCheckTypedWindowEvent ####
+
+#### XCheckWindowEvent ####
+
+#### XCirculateSubwindows ####
+
+#### XCirculateSubwindowsDown ####
+
+#### XCirculateSubwindowsUp ####
+
+#### XClearArea ####
+
+#### XClearWindow ####
+
+#### XClipBox ####
+
+#### XCloseDisplay ####
+
+#### XCloseIM ####
+
+#### XCloseOM ####
+
+#### XConfigureWindow ####
+
+#### XConnectionNumber ####
+
+#### XContextDependentDrawing ####
+
+#### XContextualDrawing ####
+
+#### XConvertCase ####
+
+#### XConvertSelection ####
+
+#### XCopyArea ####
+
+#### XCopyColormapAndFree ####
+
+#### XCopyGC ####
+
+#### XCopyPlane ####
+
+#### XCreateBitmapFromData ####
+
+#### XCreateColormap ####
+
+#### XCreateFontCursor ####
+
+#### XCreateFontSet ####
+
+#### XCreateGC ####
+
+#### XCreateGlyphCursor ####
+
+#### XCreateIC ####
+
+#### XCreateImage ####
+Compext.c:2044: * Wrapper of XCreateImage(). Note that we use offset
+Compext.c:2058: image = XCreateImage(dpy, visual, depth, format, 0, data,
+Compext.c:3603: state -> image = XCreateImage(dpy, _XVIDtoVisual(dpy, async_rep -> visual),
+Compext.c:3609: state -> image = XCreateImage(dpy, _XVIDtoVisual(dpy, async_rep -> visual),
+
+#### XCreateOC ####
+
+#### XCreatePixmap ####
+
+#### XCreatePixmapCursor ####
+
+#### XCreatePixmapFromBitmapData ####
+
+#### XCreateRegion ####
+
+#### XCreateSimpleWindow ####
+
+#### XCreateWindow ####
+
+#### XDefaultColormap ####
+
+#### XDefaultColormapOfScreen ####
+
+#### XDefaultDepth ####
+
+#### XDefaultDepthOfScreen ####
+
+#### XDefaultGC ####
+
+#### XDefaultGCOfScreen ####
+
+#### XDefaultRootWindow ####
+
+#### XDefaultScreen ####
+
+#### XDefaultScreenOfDisplay ####
+
+#### XDefaultString ####
+
+#### XDefaultVisual ####
+
+#### XDefaultVisualOfScreen ####
+
+#### XDefineCursor ####
+
+#### XDeleteContext ####
+
+#### XDeleteModifiermapEntry ####
+
+#### XDeleteProperty ####
+
+#### XDestroyIC ####
+
+#### XDestroyImage ####
+Compext.c:347: XDestroyImage(_NXCollectedImages[i] -> image);
+Compext.c:2070: * Wrapper of XDestroyImage().
+Compext.c:2075: return XDestroyImage((XImage *) image);
+Compext.c:3705: XDestroyImage(state -> image);
+
+#### XDestroyOC ####
+
+#### XDestroyRegion ####
+
+#### XDestroySubwindows ####
+
+#### XDestroyWindow ####
+
+#### XDirectionalDependentDrawing ####
+
+#### XDisableAccessControl ####
+
+#### XDisplayCells ####
+
+#### XDisplayHeight ####
+
+#### XDisplayHeightMM ####
+
+#### XDisplayKeycodes ####
+
+#### XDisplayMotionBufferSize ####
+
+#### XDisplayName ####
+
+#### XDisplayOfIM ####
+
+#### XDisplayOfOM ####
+
+#### XDisplayOfScreen ####
+
+#### XDisplayPlanes ####
+
+#### XDisplayString ####
+
+#### XDisplayWidth ####
+
+#### XDisplayWidthMM ####
+
+#### XDoesBackingStore ####
+
+#### XDoesSaveUnders ####
+
+#### XDrawArc ####
+
+#### XDrawArcs ####
+
+#### XDrawImageString16 ####
+
+#### XDrawImageString ####
+
+#### XDrawLine ####
+
+#### XDrawLines ####
+
+#### XDrawPoint ####
+
+#### XDrawPoints ####
+
+#### XDrawRectangle ####
+
+#### XDrawRectangles ####
+
+#### XDrawSegments ####
+
+#### XDrawString16 ####
+
+#### XDrawString ####
+
+#### XDrawText16 ####
+
+#### XDrawText ####
+
+#### XEHeadOfExtensionList ####
+
+#### XESetBeforeFlush ####
+
+#### XESetCloseDisplay ####
+
+#### XESetCopyEventCookie ####
+
+#### XESetCopyGC ####
+
+#### XESetCreateFont ####
+
+#### XESetCreateGC ####
+
+#### XESetError ####
+
+#### XESetErrorString ####
+
+#### XESetEventToWire ####
+
+#### XESetFlushGC ####
+
+#### XESetFreeFont ####
+
+#### XESetFreeGC ####
+
+#### XESetPrintErrorValues ####
+
+#### XESetWireToError ####
+
+#### XESetWireToEvent ####
+
+#### XESetWireToEventCookie ####
+
+#### XEmptyRegion ####
+
+#### XEnableAccessControl ####
+
+#### XEqualRegion ####
+
+#### XEventMaskOfScreen ####
+
+#### XEventsQueued ####
+
+#### XExtendedMaxRequestSize ####
+
+#### XExtentsOfFontSet ####
+
+#### XFetchBuffer ####
+
+#### XFetchBytes ####
+
+#### XFetchName ####
+
+#### XFillArc ####
+
+#### XFillArcs ####
+
+#### XFillPolygon ####
+
+#### XFillRectangle ####
+
+#### XFillRectangles ####
+
+#### XFilterEvent ####
+
+#### XFindContext ####
+
+#### XFindOnExtensionList ####
+
+#### XFlush ####
+Compext.c:457: XFlush(dpy);
+Compext.c:663:int NXFlushDisplay(Display *dpy, int what)
+Compext.c:669: fprintf(stderr, "******NXFlushDisplay: Writing with [%d] bytes in the buffer.\n",
+Compext.c:673: XFlush(dpy);
+Compext.c:676: if (what == NXFlushBuffer)
+Compext.c:682: fprintf(stderr, "******NXFlushDisplay: Flushing with [%d] bytes in the NX transport.\n",
+Compext.h:90: * be either NXFlushDeferred or NXFlushImmediate.
+Compext.h:204:extern int NXFlushDisplay(
+
+#### XFlushGC ####
+
+#### XFontsOfFontSet ####
+
+#### XForceScreenSaver ####
+
+#### XFree ####
+Compext.c:1462:int NXFreeSplit(Display *dpy, unsigned int resource)
+Compext.c:1464: register xNXFreeSplitReq *req;
+Compext.c:1470: GetReq(NXFreeSplit, req);
+Compext.c:1473: fprintf(stderr, "******NXFreeSplit: Sending message opcode [%d] with resource [%u].\n",
+Compext.c:1474: X_NXFreeSplit, resource);
+Compext.c:1484: fprintf(stderr, "******NXFreeSplit: Making the resource [%u] newly available.\n",
+Compext.c:1493: fprintf(stderr, "******NXFreeSplit: Nothing to do for resource [%u].\n",
+Compext.c:2004:int NXFreeUnpack(Display *dpy, unsigned int resource)
+Compext.c:2006: register xNXFreeUnpackReq *req;
+Compext.c:2012: GetReq(NXFreeUnpack, req);
+Compext.c:2015: fprintf(stderr, "******NXFreeUnpack: Sending message opcode [%d] with resource [%u].\n",
+Compext.c:2016: X_NXFreeUnpack, resource);
+Compext.c:2026: fprintf(stderr, "******NXFreeUnpack: Making the resource [%u] newly available.\n",
+Compext.c:2035: fprintf(stderr, "******NXFreeUnpack: Nothing to do for resource [%u].\n",
+Compext.c:3375:void NXFreeCache(Display *dpy)
+Compext.c:3382: fprintf(stderr, "******NXFreeCache: Nothing to do with a null image cache.\n");
+Compext.c:3389: fprintf(stderr, "******NXFreeCache: Freeing the cache with [%d] entries.\n",
+Compext.h:505:extern int NXFreeSplit(
+Compext.h:586:extern int NXFreeUnpack(
+Compext.h:775:extern void NXFreeCache(
+
+#### XFreeColormap ####
+
+#### XFreeColors ####
+
+#### XFreeCursor ####
+
+#### XFreeEventData ####
+
+#### XFreeExtensionList ####
+
+#### XFreeFont ####
+
+#### XFreeFontInfo ####
+
+#### XFreeFontNames ####
+
+#### XFreeFontPath ####
+
+#### XFreeFontSet ####
+
+#### XFreeGC ####
+
+#### XFreeModifiermap ####
+
+#### XFreePixmap ####
+
+#### XFreeStringList ####
+
+#### XGContextFromGC ####
+
+#### XGeometry ####
+
+#### XGetAtomName ####
+
+#### XGetAtomNames ####
+
+#### XGetClassHint ####
+
+#### XGetCommand ####
+
+#### XGetDefault ####
+
+#### XGetErrorDatabaseText ####
+
+#### XGetErrorText ####
+
+#### XGetEventData ####
+
+#### XGetFontPath ####
+
+#### XGetFontProperty ####
+
+#### XGetGCValues ####
+
+#### XGetGeometry ####
+
+#### XGetICValues ####
+
+#### XGetIMValues ####
+
+#### XGetIconName ####
+
+#### XGetIconSizes ####
+
+#### XGetImage ####
+
+#### XGetInputFocus ####
+
+#### XGetKeyboardControl ####
+
+#### XGetKeyboardMapping ####
+
+#### XGetModifierMapping ####
+
+#### XGetMotionEvents ####
+
+#### XGetNormalHints ####
+
+#### XGetOCValues ####
+
+#### XGetOMValues ####
+
+#### XGetPixel ####
+Compext.c:2905: pixel = XGetPixel(src_image, x, y);
+
+#### XGetPointerControl ####
+
+#### XGetPointerMapping ####
+
+#### XGetRGBColormaps ####
+
+#### XGetScreenSaver ####
+
+#### XGetSelectionOwner ####
+
+#### XGetSizeHints ####
+
+#### XGetStandardColormap ####
+
+#### XGetSubImage ####
+
+#### XGetTextProperty ####
+
+#### XGetTransientForHint ####
+
+#### XGetVisualInfo ####
+
+#### XGetWMClientMachine ####
+
+#### XGetWMColormapWindows ####
+
+#### XGetWMHints ####
+
+#### XGetWMIconName ####
+
+#### XGetWMName ####
+
+#### XGetWMNormalHints ####
+
+#### XGetWMProtocols ####
+
+#### XGetWMSizeHints ####
+
+#### XGetWindowAttributes ####
+
+#### XGetWindowProperty ####
+
+#### XGetZoomHints ####
+
+#### XGrabButton ####
+
+#### XGrabKey ####
+
+#### XGrabKeyboard ####
+
+#### XGrabPointer ####
+
+#### XGrabServer ####
+
+#### XHeightMMOfScreen ####
+
+#### XHeightOfScreen ####
+
+#### XIMOfIC ####
+
+#### XIconifyWindow ####
+
+#### XIfEvent ####
+
+#### XImageByteOrder ####
+
+#### XInitExtension ####
+
+#### XInitImage ####
+
+#### XInitThreads ####
+
+#### XInsertModifiermapEntry ####
+
+#### XInstallColormap ####
+
+#### XInternAtom ####
+
+#### XInternAtoms ####
+
+#### XInternalConnectionNumbers ####
+
+#### XIntersectRegion ####
+
+#### XKeycodeToKeysym ####
+
+#### XKeysymToKeycode ####
+
+#### XKeysymToString ####
+
+#### XKillClient ####
+
+#### XLastKnownRequestProcessed ####
+
+#### XListDepths ####
+
+#### XListExtensions ####
+
+#### XListFonts ####
+
+#### XListFontsWithInfo ####
+
+#### XListHosts ####
+
+#### XListInstalledColormaps ####
+
+#### XListPixmapFormats ####
+
+#### XListProperties ####
+
+#### XLoadFont ####
+
+#### XLoadQueryFont ####
+
+#### XLocaleOfFontSet ####
+
+#### XLocaleOfIM ####
+
+#### XLocaleOfOM ####
+
+#### XLockDisplay ####
+
+#### XLookupColor ####
+
+#### XLookupKeysym ####
+
+#### XLookupString ####
+
+#### XLowerWindow ####
+
+#### XMapRaised ####
+
+#### XMapSubwindows ####
+
+#### XMapWindow ####
+
+#### XMaskEvent ####
+
+#### XMatchVisualInfo ####
+
+#### XMaxCmapsOfScreen ####
+
+#### XMaxRequestSize ####
+
+#### XMinCmapsOfScreen ####
+
+#### XMoveResizeWindow ####
+
+#### XMoveWindow ####
+
+#### XNewModifiermap ####
+
+#### XNextEvent ####
+
+#### XNextRequest ####
+
+#### XNoOp ####
+
+#### XOMOfOC ####
+
+#### XOffsetRegion ####
+
+#### XOpenDisplay ####
+
+#### XOpenIM ####
+
+#### XOpenOM ####
+
+#### XParseColor ####
+
+#### XParseGeometry ####
+
+#### XPeekEvent ####
+
+#### XPeekIfEvent ####
+
+#### XPending ####
+
+#### XPlanesOfScreen ####
+
+#### XPointInRegion ####
+
+#### XPolygonRegion ####
+
+#### XProcessInternalConnection ####
+
+#### XProtocolRevision ####
+
+#### XProtocolVersion ####
+
+#### XPutBackEvent ####
+Compext.c:3445: XPutBackEvent(dpy, &async_event);
+Compext.c:3838: XPutBackEvent(dpy, &async_event);
+Compext.c:4208: XPutBackEvent(dpy, &async_event);
+Compext.c:4492: XPutBackEvent(dpy, &async_event);
+
+#### XPutImage ####
+
+#### XPutPixel ####
+
+#### XQLength ####
+
+#### XQueryBestCursor ####
+
+#### XQueryBestSize ####
+
+#### XQueryBestStipple ####
+
+#### XQueryBestTile ####
+
+#### XQueryColor ####
+
+#### XQueryColors ####
+
+#### XQueryExtension ####
+
+#### XQueryFont ####
+
+#### XQueryKeymap ####
+
+#### XQueryPointer ####
+
+#### XQueryTextExtents16 ####
+
+#### XQueryTextExtents ####
+
+#### XQueryTree ####
+
+#### XRaiseWindow ####
+
+#### XReadBitmapFile ####
+
+#### XReadBitmapFileData ####
+
+#### XRebindKeysym ####
+
+#### XRecolorCursor ####
+
+#### XReconfigureWMWindow ####
+
+#### XRectInRegion ####
+
+#### XRefreshKeyboardMapping ####
+
+#### XRegisterIMInstantiateCallback ####
+
+#### XRemoveConnectionWatch ####
+
+#### XRemoveFromSaveSet ####
+
+#### XRemoveHost ####
+
+#### XRemoveHosts ####
+
+#### XReparentWindow ####
+
+#### XResetScreenSaver ####
+
+#### XResizeWindow ####
+
+#### XResourceManagerString ####
+
+#### XRestackWindows ####
+
+#### XRootWindow ####
+
+#### XRootWindowOfScreen ####
+
+#### XRotateBuffers ####
+
+#### XRotateWindowProperties ####
+
+#### XSaveContext ####
+
+#### XScreenCount ####
+
+#### XScreenNumberOfScreen ####
+
+#### XScreenOfDisplay ####
+
+#### XScreenResourceString ####
+
+#### XSelectInput ####
+
+#### XSendEvent ####
+
+#### XServerVendor ####
+
+#### XSetAccessControl ####
+
+#### XSetAfterFunction ####
+
+#### XSetArcMode ####
+
+#### XSetAuthorization ####
+
+#### XSetBackground ####
+
+#### XSetClassHint ####
+
+#### XSetClipMask ####
+
+#### XSetClipOrigin ####
+
+#### XSetClipRectangles ####
+
+#### XSetCloseDownMode ####
+
+#### XSetCommand ####
+
+#### XSetDashes ####
+
+#### XSetErrorHandler ####
+
+#### XSetFillRule ####
+
+#### XSetFillStyle ####
+
+#### XSetFont ####
+
+#### XSetFontPath ####
+
+#### XSetForeground ####
+
+#### XSetFunction ####
+
+#### XSetGraphicsExposures ####
+
+#### XSetICFocus ####
+
+#### XSetICValues ####
+
+#### XSetIMValues ####
+
+#### XSetIOErrorHandler ####
+
+#### XSetIconName ####
+
+#### XSetIconSizes ####
+
+#### XSetInputFocus ####
+
+#### XSetLineAttributes ####
+
+#### XSetLocaleModifiers ####
+
+#### XSetModifierMapping ####
+
+#### XSetNormalHints ####
+
+#### XSetOCValues ####
+
+#### XSetOMValues ####
+
+#### XSetPlaneMask ####
+
+#### XSetPointerMapping ####
+
+#### XSetRGBColormaps ####
+
+#### XSetRegion ####
+
+#### XSetScreenSaver ####
+
+#### XSetSelectionOwner ####
+
+#### XSetSizeHints ####
+
+#### XSetStandardColormap ####
+
+#### XSetStandardProperties ####
+
+#### XSetState ####
+
+#### XSetStipple ####
+
+#### XSetSubwindowMode ####
+
+#### XSetTSOrigin ####
+
+#### XSetTextProperty ####
+
+#### XSetTile ####
+
+#### XSetTransientForHint ####
+
+#### XSetWMClientMachine ####
+
+#### XSetWMColormapWindows ####
+
+#### XSetWMHints ####
+
+#### XSetWMIconName ####
+
+#### XSetWMName ####
+
+#### XSetWMNormalHints ####
+
+#### XSetWMProperties ####
+
+#### XSetWMProtocols ####
+
+#### XSetWMSizeHints ####
+
+#### XSetWindowBackground ####
+
+#### XSetWindowBackgroundPixmap ####
+
+#### XSetWindowBorder ####
+
+#### XSetWindowBorderPixmap ####
+
+#### XSetWindowBorderWidth ####
+
+#### XSetWindowColormap ####
+
+#### XSetZoomHints ####
+
+#### XShrinkRegion ####
+
+#### XStoreBuffer ####
+
+#### XStoreBytes ####
+
+#### XStoreColor ####
+
+#### XStoreColors ####
+
+#### XStoreName ####
+
+#### XStoreNamedColor ####
+
+#### XStringListToTextProperty ####
+
+#### XStringToKeysym ####
+
+#### XSubImage ####
+
+#### XSubtractRegion ####
+
+#### XSupportsLocale ####
+
+#### XSync ####
+
+#### XSynchronize ####
+
+#### XTextExtents16 ####
+
+#### XTextExtents ####
+
+#### XTextPropertyToStringList ####
+
+#### XTextWidth16 ####
+
+#### XTextWidth ####
+
+#### XTranslateCoordinates ####
+
+#### XUndefineCursor ####
+
+#### XUngrabButton ####
+
+#### XUngrabKey ####
+
+#### XUngrabKeyboard ####
+
+#### XUngrabPointer ####
+
+#### XUngrabServer ####
+
+#### XUninstallColormap ####
+
+#### XUnionRectWithRegion ####
+
+#### XUnionRegion ####
+
+#### XUnloadFont ####
+
+#### XUnlockDisplay ####
+
+#### XUnmapSubwindows ####
+
+#### XUnmapWindow ####
+
+#### XUnregisterIMInstantiateCallback ####
+
+#### XUnsetICFocus ####
+
+#### XVaCreateNestedList ####
+
+#### XVendorRelease ####
+
+#### XVisualIDFromVisual ####
+
+#### XWMGeometry ####
+
+#### XWarpPointer ####
+
+#### XWhitePixel ####
+
+#### XWhitePixelOfScreen ####
+
+#### XWidthMMOfScreen ####
+
+#### XWidthOfScreen ####
+
+#### XWindowEvent ####
+
+#### XWithdrawWindow ####
+
+#### XWriteBitmapFile ####
+
+#### XXorRegion ####
+
+#### XauDisposeAuth ####
+
+#### XauFileName ####
+
+#### XauGetBestAuthByAddr ####
+
+#### XauReadAuth ####
+
+#### XcmsAddColorSpace ####
+
+#### XcmsAddFunctionSet ####
+
+#### XcmsAllocColor ####
+
+#### XcmsAllocNamedColor ####
+
+#### XcmsCCCOfColormap ####
+
+#### XcmsCIELabClipL ####
+
+#### XcmsCIELabClipLab ####
+
+#### XcmsCIELabClipab ####
+
+#### XcmsCIELabColorSpace ####
+
+#### XcmsCIELabQueryMaxC ####
+
+#### XcmsCIELabQueryMaxL ####
+
+#### XcmsCIELabQueryMaxLC ####
+
+#### XcmsCIELabQueryMinL ####
+
+#### XcmsCIELabToCIEXYZ ####
+
+#### XcmsCIELabWhiteShiftColors ####
+
+#### XcmsCIELuvClipL ####
+
+#### XcmsCIELuvClipLuv ####
+
+#### XcmsCIELuvClipuv ####
+
+#### XcmsCIELuvColorSpace ####
+
+#### XcmsCIELuvQueryMaxC ####
+
+#### XcmsCIELuvQueryMaxL ####
+
+#### XcmsCIELuvQueryMaxLC ####
+
+#### XcmsCIELuvQueryMinL ####
+
+#### XcmsCIELuvToCIEuvY ####
+
+#### XcmsCIELuvWhiteShiftColors ####
+
+#### XcmsCIEXYZColorSpace ####
+
+#### XcmsCIEXYZToCIELab ####
+
+#### XcmsCIEXYZToCIEuvY ####
+
+#### XcmsCIEXYZToCIExyY ####
+
+#### XcmsCIEXYZToRGBi ####
+
+#### XcmsCIEuvYColorSpace ####
+
+#### XcmsCIEuvYToCIELuv ####
+
+#### XcmsCIEuvYToCIEXYZ ####
+
+#### XcmsCIEuvYToTekHVC ####
+
+#### XcmsCIExyYColorSpace ####
+
+#### XcmsCIExyYToCIEXYZ ####
+
+#### XcmsClientWhitePointOfCCC ####
+
+#### XcmsConvertColors ####
+
+#### XcmsCreateCCC ####
+
+#### XcmsDefaultCCC ####
+
+#### XcmsDisplayOfCCC ####
+
+#### XcmsFormatOfPrefix ####
+
+#### XcmsFreeCCC ####
+
+#### XcmsLinearRGBFunctionSet ####
+
+#### XcmsLookupColor ####
+
+#### XcmsPrefixOfFormat ####
+
+#### XcmsQueryBlack ####
+
+#### XcmsQueryBlue ####
+
+#### XcmsQueryColor ####
+
+#### XcmsQueryColors ####
+
+#### XcmsQueryGreen ####
+
+#### XcmsQueryRed ####
+
+#### XcmsQueryWhite ####
+
+#### XcmsRGBColorSpace ####
+
+#### XcmsRGBToRGBi ####
+
+#### XcmsRGBiColorSpace ####
+
+#### XcmsRGBiToCIEXYZ ####
+
+#### XcmsRGBiToRGB ####
+
+#### XcmsScreenNumberOfCCC ####
+
+#### XcmsScreenWhitePointOfCCC ####
+
+#### XcmsSetCCCOfColormap ####
+
+#### XcmsSetCompressionProc ####
+
+#### XcmsSetWhiteAdjustProc ####
+
+#### XcmsSetWhitePoint ####
+
+#### XcmsStoreColor ####
+
+#### XcmsStoreColors ####
+
+#### XcmsTekHVCClipC ####
+
+#### XcmsTekHVCClipV ####
+
+#### XcmsTekHVCClipVC ####
+
+#### XcmsTekHVCColorSpace ####
+
+#### XcmsTekHVCQueryMaxC ####
+
+#### XcmsTekHVCQueryMaxV ####
+
+#### XcmsTekHVCQueryMaxVC ####
+
+#### XcmsTekHVCQueryMaxVSamples ####
+
+#### XcmsTekHVCQueryMinV ####
+
+#### XcmsTekHVCToCIEuvY ####
+
+#### XcmsTekHVCWhiteShiftColors ####
+
+#### XcmsUNDEFINEDColorSpace ####
+
+#### XcmsVisualOfCCC ####
+
+#### XkbAddDeviceLedInfo ####
+
+#### XkbAddGeomColor ####
+
+#### XkbAddGeomDoodad ####
+
+#### XkbAddGeomKey ####
+
+#### XkbAddGeomKeyAlias ####
+
+#### XkbAddGeomOutline ####
+
+#### XkbAddGeomOverlay ####
+
+#### XkbAddGeomOverlayKey ####
+
+#### XkbAddGeomOverlayRow ####
+
+#### XkbAddGeomProperty ####
+
+#### XkbAddGeomRow ####
+
+#### XkbAddGeomSection ####
+
+#### XkbAddGeomShape ####
+
+#### XkbAddKeyType ####
+
+#### XkbAllocClientMap ####
+
+#### XkbAllocCompatMap ####
+
+#### XkbAllocControls ####
+
+#### XkbAllocDeviceInfo ####
+
+#### XkbAllocGeomColors ####
+
+#### XkbAllocGeomDoodads ####
+
+#### XkbAllocGeomKeyAliases ####
+
+#### XkbAllocGeomKeys ####
+
+#### XkbAllocGeomOutlines ####
+
+#### XkbAllocGeomOverlayKeys ####
+
+#### XkbAllocGeomOverlayRows ####
+
+#### XkbAllocGeomOverlays ####
+
+#### XkbAllocGeomPoints ####
+
+#### XkbAllocGeomProps ####
+
+#### XkbAllocGeomRows ####
+
+#### XkbAllocGeomSectionDoodads ####
+
+#### XkbAllocGeomSections ####
+
+#### XkbAllocGeomShapes ####
+
+#### XkbAllocGeometry ####
+
+#### XkbAllocIndicatorMaps ####
+
+#### XkbAllocKeyboard ####
+
+#### XkbAllocNames ####
+
+#### XkbAllocServerMap ####
+
+#### XkbApplyCompatMapToKey ####
+
+#### XkbApplyVirtualModChanges ####
+
+#### XkbBell ####
+
+#### XkbBellEvent ####
+
+#### XkbChangeDeviceInfo ####
+
+#### XkbChangeEnabledControls ####
+
+#### XkbChangeKeycodeRange ####
+
+#### XkbChangeMap ####
+
+#### XkbChangeNames ####
+
+#### XkbChangeTypesOfKey ####
+
+#### XkbComputeEffectiveMap ####
+
+#### XkbComputeRowBounds ####
+
+#### XkbComputeSectionBounds ####
+
+#### XkbComputeShapeBounds ####
+
+#### XkbComputeShapeTop ####
+
+#### XkbCopyKeyType ####
+
+#### XkbCopyKeyTypes ####
+
+#### XkbDeviceBell ####
+
+#### XkbDeviceBellEvent ####
+
+#### XkbFindOverlayForKey ####
+
+#### XkbForceBell ####
+
+#### XkbForceDeviceBell ####
+
+#### XkbFreeClientMap ####
+
+#### XkbFreeCompatMap ####
+
+#### XkbFreeComponentList ####
+
+#### XkbFreeControls ####
+
+#### XkbFreeDeviceInfo ####
+
+#### XkbFreeGeomColors ####
+
+#### XkbFreeGeomDoodads ####
+
+#### XkbFreeGeomKeyAliases ####
+
+#### XkbFreeGeomKeys ####
+
+#### XkbFreeGeomOutlines ####
+
+#### XkbFreeGeomOverlayKeys ####
+
+#### XkbFreeGeomOverlayRows ####
+
+#### XkbFreeGeomOverlays ####
+
+#### XkbFreeGeomPoints ####
+
+#### XkbFreeGeomProperties ####
+
+#### XkbFreeGeomRows ####
+
+#### XkbFreeGeomSections ####
+
+#### XkbFreeGeomShapes ####
+
+#### XkbFreeGeometry ####
+
+#### XkbFreeIndicatorMaps ####
+
+#### XkbFreeKeyboard ####
+
+#### XkbFreeNames ####
+
+#### XkbFreeServerMap ####
+
+#### XkbGetAutoRepeatRate ####
+
+#### XkbGetAutoResetControls ####
+
+#### XkbGetCompatMap ####
+
+#### XkbGetControls ####
+
+#### XkbGetDetectableAutoRepeat ####
+
+#### XkbGetDeviceButtonActions ####
+
+#### XkbGetDeviceInfo ####
+
+#### XkbGetDeviceInfoChanges ####
+
+#### XkbGetDeviceLedInfo ####
+
+#### XkbGetGeometry ####
+
+#### XkbGetIndicatorMap ####
+
+#### XkbGetIndicatorState ####
+
+#### XkbGetKeyActions ####
+
+#### XkbGetKeyBehaviors ####
+
+#### XkbGetKeyExplicitComponents ####
+
+#### XkbGetKeyModifierMap ####
+
+#### XkbGetKeySyms ####
+
+#### XkbGetKeyTypes ####
+
+#### XkbGetKeyVirtualModMap ####
+
+#### XkbGetKeyboard ####
+
+#### XkbGetKeyboardByName ####
+
+#### XkbGetMap ####
+
+#### XkbGetMapChanges ####
+
+#### XkbGetNamedDeviceIndicator ####
+
+#### XkbGetNamedGeometry ####
+
+#### XkbGetNamedIndicator ####
+
+#### XkbGetNames ####
+
+#### XkbGetPerClientControls ####
+
+#### XkbGetState ####
+
+#### XkbGetUpdatedMap ####
+
+#### XkbGetVirtualMods ####
+
+#### XkbGetXlibControls ####
+
+#### XkbIgnoreExtension ####
+
+#### XkbInitCanonicalKeyTypes ####
+
+#### XkbKeyTypesForCoreSymbols ####
+
+#### XkbKeycodeToKeysym ####
+
+#### XkbKeysymToModifiers ####
+
+#### XkbLatchGroup ####
+
+#### XkbLatchModifiers ####
+
+#### XkbLibraryVersion ####
+
+#### XkbListComponents ####
+
+#### XkbLockGroup ####
+
+#### XkbLockModifiers ####
+
+#### XkbLookupKeyBinding ####
+
+#### XkbLookupKeySym ####
+
+#### XkbNoteControlsChanges ####
+
+#### XkbNoteDeviceChanges ####
+
+#### XkbNoteMapChanges ####
+
+#### XkbNoteNameChanges ####
+
+#### XkbOpenDisplay ####
+
+#### XkbQueryExtension ####
+
+#### XkbRefreshKeyboardMapping ####
+
+#### XkbResizeDeviceButtonActions ####
+
+#### XkbResizeKeyActions ####
+
+#### XkbResizeKeySyms ####
+
+#### XkbResizeKeyType ####
+
+#### XkbSelectEventDetails ####
+
+#### XkbSelectEvents ####
+
+#### XkbSetAtomFuncs ####
+
+#### XkbSetAutoRepeatRate ####
+
+#### XkbSetAutoResetControls ####
+
+#### XkbSetCompatMap ####
+
+#### XkbSetControls ####
+
+#### XkbSetDebuggingFlags ####
+
+#### XkbSetDetectableAutoRepeat ####
+
+#### XkbSetDeviceButtonActions ####
+
+#### XkbSetDeviceInfo ####
+
+#### XkbSetDeviceLedInfo ####
+
+#### XkbSetGeometry ####
+
+#### XkbSetIgnoreLockMods ####
+
+#### XkbSetIndicatorMap ####
+
+#### XkbSetMap ####
+
+#### XkbSetNamedDeviceIndicator ####
+
+#### XkbSetNamedIndicator ####
+
+#### XkbSetNames ####
+
+#### XkbSetPerClientControls ####
+
+#### XkbSetServerInternalMods ####
+
+#### XkbSetXlibControls ####
+
+#### XkbToControl ####
+
+#### XkbTranslateKey ####
+
+#### XkbTranslateKeyCode ####
+
+#### XkbTranslateKeySym ####
+
+#### XkbUpdateActionVirtualMods ####
+
+#### XkbUpdateKeyTypeVirtualMods ####
+
+#### XkbUpdateMapFromCore ####
+
+#### XkbUseExtension ####
+
+#### XkbVirtualModsToReal ####
+
+#### XkbXlibControlsImplemented ####
+
+#### XmbDrawImageString ####
+
+#### XmbDrawString ####
+
+#### XmbDrawText ####
+
+#### XmbLookupString ####
+
+#### XmbResetIC ####
+
+#### XmbSetWMProperties ####
+
+#### XmbTextEscapement ####
+
+#### XmbTextExtents ####
+
+#### XmbTextListToTextProperty ####
+
+#### XmbTextPerCharExtents ####
+
+#### XmbTextPropertyToTextList ####
+
+#### Xpermalloc ####
+
+#### XrmCombineDatabase ####
+
+#### XrmCombineFileDatabase ####
+
+#### XrmDestroyDatabase ####
+
+#### XrmEnumerateDatabase ####
+
+#### XrmGetDatabase ####
+
+#### XrmGetFileDatabase ####
+
+#### XrmGetResource ####
+
+#### XrmGetStringDatabase ####
+
+#### XrmInitialize ####
+
+#### XrmLocaleOfDatabase ####
+
+#### XrmMergeDatabases ####
+
+#### XrmParseCommand ####
+
+#### XrmPermStringToQuark ####
+
+#### XrmPutFileDatabase ####
+
+#### XrmPutLineResource ####
+
+#### XrmPutResource ####
+
+#### XrmPutStringResource ####
+
+#### XrmQGetResource ####
+
+#### XrmQGetSearchList ####
+
+#### XrmQGetSearchResource ####
+
+#### XrmQPutResource ####
+
+#### XrmQPutStringResource ####
+
+#### XrmQuarkToString ####
+
+#### XrmSetDatabase ####
+
+#### XrmStringToBindingQuarkList ####
+
+#### XrmStringToQuark ####
+
+#### XrmStringToQuarkList ####
+
+#### XrmUniqueQuark ####
+
+#### Xutf8DrawImageString ####
+
+#### Xutf8DrawString ####
+
+#### Xutf8DrawText ####
+
+#### Xutf8LookupString ####
+
+#### Xutf8ResetIC ####
+
+#### Xutf8SetWMProperties ####
+
+#### Xutf8TextEscapement ####
+
+#### Xutf8TextExtents ####
+
+#### Xutf8TextListToTextProperty ####
+
+#### Xutf8TextPerCharExtents ####
+
+#### Xutf8TextPropertyToTextList ####
+
+#### XwcDrawImageString ####
+
+#### XwcDrawString ####
+
+#### XwcDrawText ####
+
+#### XwcFreeStringList ####
+
+#### XwcLookupString ####
+
+#### XwcResetIC ####
+
+#### XwcTextEscapement ####
+
+#### XwcTextExtents ####
+
+#### XwcTextListToTextProperty ####
+
+#### XwcTextPerCharExtents ####
+
+#### XwcTextPropertyToTextList ####
+
+#### _Utf8GetConvByName ####
+
+#### _X11TransBytesReadable ####
+
+#### _X11TransClose ####
+
+#### _X11TransCloseForCloning ####
+
+#### _X11TransConnect ####
+
+#### _X11TransConnectDisplay ####
+
+#### _X11TransConvertAddress ####
+
+#### _X11TransDisconnect ####
+
+#### _X11TransFreeConnInfo ####
+
+#### _X11TransGetConnectionNumber ####
+
+#### _X11TransGetHostname ####
+
+#### _X11TransGetMyAddr ####
+
+#### _X11TransGetPeerAddr ####
+
+#### _X11TransIsLocal ####
+
+#### _X11TransOpenCOTSClient ####
+
+#### _X11TransRead ####
+
+#### _X11TransReadv ####
+
+#### _X11TransSetOption ####
+
+#### _X11TransSocketINET6Funcs ####
+
+#### _X11TransSocketINETFuncs ####
+
+#### _X11TransSocketLocalFuncs ####
+
+#### _X11TransSocketProxyConnInfo ####
+
+#### _X11TransSocketTCPFuncs ####
+
+#### _X11TransSocketUNIXFuncs ####
+
+#### _X11TransWrite ####
+
+#### _X11TransWritev ####
+
+#### _XAllocID ####
+
+#### _XAllocIDs ####
+
+#### _XAllocScratch ####
+Compext.c:1852: if ((dst_data = _XAllocScratch(dpy, dst_data_length)) == NULL)
+Compext.c:1947: if ((dst_data = _XAllocScratch(dpy, dst_data_length)) == NULL)
+
+#### _XAllocTemp ####
+
+#### _XAsyncErrorHandler ####
+
+#### _XCloseLC ####
+
+#### _XColor_to_XcmsRGB ####
+
+#### _XConnectDisplay ####
+
+#### _XCopyEventCookie ####
+
+#### _XCopyToArg ####
+
+#### _XCreateMutex_fn ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XData32 ####
+
+#### _XDefaultError ####
+
+#### _XDefaultIOError ####
+
+#### _XDefaultWireError ####
+
+#### _XDeq ####
+
+#### _XDeqAsyncHandler ####
+
+#### _XDisconnectDisplay ####
+
+#### _XEatData ####
+Compext.c:968: _XEatData(dpy, (unsigned long) n);
+Compext.c:1222: _XEatData(dpy, (unsigned long) n);
+
+#### _XEatDataWords ####
+
+#### _XEnq ####
+
+#### _XError ####
+Compext.c:1036: int (*handler)(Display *, XErrorEvent *) = _XErrorFunction;
+Compext.c:1053: _XErrorFunction = _NXInternalReplyErrorFunction;
+Compext.c:1115: _XErrorFunction = handler;
+Compext.c:1144: _XErrorFunction = handler;
+
+#### _XErrorFunction ####
+Compext.c:1036: int (*handler)(Display *, XErrorEvent *) = _XErrorFunction;
+Compext.c:1053: _XErrorFunction = _NXInternalReplyErrorFunction;
+Compext.c:1115: _XErrorFunction = handler;
+Compext.c:1144: _XErrorFunction = handler;
+
+#### _XEventToWire ####
+
+#### _XEventsQueued ####
+
+#### _XF86BigfontFreeFontMetrics ####
+
+#### _XF86LoadQueryLocaleFont ####
+
+#### _XFetchEventCookie ####
+
+#### _XFlush ####
+
+#### _XFlushGCCache ####
+
+#### _XFreeAtomTable ####
+
+#### _XFreeDisplayLock_fn ####
+
+#### _XFreeDisplayStructure ####
+
+#### _XFreeEventCookies ####
+
+#### _XFreeExtData ####
+
+#### _XFreeMutex_fn ####
+
+#### _XFreeTemp ####
+
+#### _XGetAsyncData ####
+Compext.c:3591: _XGetAsyncData(dpy, async_data, buf, len, SIZEOF(xGetImageReply), async_size, async_size);
+Compext.c:3992: _XGetAsyncData(dpy, async_data, buf, len, SIZEOF(xGetPropertyReply), async_size, async_size);
+
+#### _XGetAsyncReply ####
+Compext.c:3537: async_rep = (xGetImageReply *) _XGetAsyncReply(dpy, async_head, rep, buf, len, 0, False);
+Compext.c:3930: async_rep = (xGetPropertyReply *) _XGetAsyncReply(dpy, async_head, rep, buf, len, 0, False);
+Compext.c:4292: async_rep = (xGrabPointerReply *) _XGetAsyncReply(dpy, async_head, rep, buf, len, 0, False);
+Compext.c:4576: async_rep = (xGetInputFocusReply *) _XGetAsyncReply(dpy, async_head, rep, buf, len, 0, False);
+
+#### _XGetBitsPerPixel ####
+Compext.c:231:extern int _XGetBitsPerPixel(Display *dpy, int depth);
+Compext.c:1624: req -> depth1Bpp = _XGetBitsPerPixel(dpy, 1);
+Compext.c:1625: req -> depth4Bpp = _XGetBitsPerPixel(dpy, 4);
+Compext.c:1626: req -> depth8Bpp = _XGetBitsPerPixel(dpy, 8);
+Compext.c:1627: req -> depth16Bpp = _XGetBitsPerPixel(dpy, 16);
+Compext.c:1628: req -> depth24Bpp = _XGetBitsPerPixel(dpy, 24);
+Compext.c:1629: req -> depth32Bpp = _XGetBitsPerPixel(dpy, 32);
+
+#### _XGetHostname ####
+
+#### _XGetLCValues ####
+
+#### _XGetRequest ####
+
+#### _XGetScanlinePad ####
+Compext.c:232:extern int _XGetScanlinePad(Display *dpy, int depth);
+Compext.c:3611: state -> height, _XGetScanlinePad(dpy, async_rep -> depth), 0);
+
+#### _XGetWindowAttributes ####
+
+#### _XHeadOfDisplayList ####
+
+#### _XIMCompileResourceList ####
+
+#### _XIOError ####
+Compext.c:560: _XIOError(dpy);
+
+#### _XIOErrorFunction ####
+
+#### _XInitDisplayLock_fn ####
+
+#### _XInitIM ####
+
+#### _XInitImageFuncPtrs ####
+
+#### _XInitKeysymDB ####
+
+#### _XInitOM ####
+
+#### _XIsEventCookie ####
+
+#### _XKeyInitialize ####
+
+#### _XKeycodeToKeysym ####
+
+#### _XKeysymToKeycode ####
+
+#### _XKeysymToModifiers ####
+
+#### _XLockMutex_fn ####
+
+#### _XLookupKeysym ####
+
+#### _XLookupString ####
+
+#### _XNoticeCreateBitmap ####
+
+#### _XNoticePutBitmap ####
+
+#### _XOpenLC ####
+
+#### _XParseBaseFontNameList ####
+
+#### _XPollfdCacheAdd ####
+
+#### _XPollfdCacheDel ####
+
+#### _XPollfdCacheInit ####
+
+#### _XProcessInternalConnection ####
+
+#### _XProcessWindowAttributes ####
+
+#### _XPutBackEvent ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XRead32 ####
+
+#### _XRead ####
+Compext.c:983: _XReadPad(dpy, (char *) supported_methods, n);
+Compext.c:1235: _XReadPad(dpy, (char *) path_data, n);
+
+#### _XReadEvents ####
+
+#### _XReadPad ####
+Compext.c:983: _XReadPad(dpy, (char *) supported_methods, n);
+Compext.c:1235: _XReadPad(dpy, (char *) path_data, n);
+
+#### _XRefreshKeyboardMapping ####
+
+#### _XRegisterFilterByMask ####
+
+#### _XRegisterFilterByType ####
+
+#### _XRegisterInternalConnection ####
+
+#### _XReply ####
+Compext.c:835: if (_XReply(dpy, (xReply *) &rep, 0, xTrue) == xFalse)
+Compext.c:948: if (_XReply(dpy, (xReply *) &rep, 0, xFalse) == xFalse || rep.length == 0)
+Compext.c:1109: if (_XReply(dpy, (xReply *) &rep, 0, xTrue) == xFalse)
+Compext.c:1202: if (_XReply(dpy, (xReply *) &rep, 0, xFalse) == xFalse || rep.length == 0)
+Compext.c:2600: result = _XReply(dpy, (xReply *) &rep, 0, xTrue);
+
+#### _XReverse_Bytes ####
+
+#### _XScreenOfWindow ####
+
+#### _XSelect ####
+
+#### _XSend ####
+Compext.c:204: * _XSend or Data.
+Compext.c:1715: * The _XSend() will pad the request for us.
+Compext.c:1718: _XSend(dpy, data, data_length);
+Compext.c:1778: * The _XSend() will pad the request for us.
+Compext.c:1781: _XSend(dpy, data, data_length);
+Compext.c:1886: _XSend(dpy, dst_data, dst_data_length);
+Compext.c:1986: _XSend(dpy, dst_data, dst_data_length);
+Compext.c:2560: * The _XSend() will pad the request for us.
+Compext.c:2563: _XSend(dpy, image -> data, src_data_length);
+
+#### _XSendClientPrefix ####
+
+#### _XSetClipRectangles ####
+
+#### _XSetImage ####
+
+#### _XSetLastRequestRead ####
+
+#### _XStoreEventCookie ####
+
+#### _XTextHeight16 ####
+
+#### _XTextHeight ####
+
+#### _XTranslateKey ####
+
+#### _XTranslateKeySym ####
+
+#### _XTryShapeBitmapCursor ####
+
+#### _XUnknownCopyEventCookie ####
+
+#### _XUnknownNativeEvent ####
+
+#### _XUnknownWireEvent ####
+
+#### _XUnknownWireEventCookie ####
+
+#### _XUnlockMutex_fn ####
+
+#### _XUnregisterFilter ####
+
+#### _XUnregisterInternalConnection ####
+
+#### _XUnresolveColor ####
+
+#### _XUpdateAtomCache ####
+
+#### _XUpdateGCCache ####
+
+#### _XVIDtoVisual ####
+Compext.c:3603: state -> image = XCreateImage(dpy, _XVIDtoVisual(dpy, async_rep -> visual),
+Compext.c:3609: state -> image = XCreateImage(dpy, _XVIDtoVisual(dpy, async_rep -> visual),
+
+#### _XWireToEvent ####
+
+#### _XcmsAddCmapRec ####
+
+#### _XcmsArcTangent ####
+
+#### _XcmsCIELabQueryMaxLCRGB ####
+
+#### _XcmsCIELab_prefix ####
+
+#### _XcmsCIELuvQueryMaxLCRGB ####
+
+#### _XcmsCIELuv_prefix ####
+
+#### _XcmsCIEXYZ_ValidSpec ####
+
+#### _XcmsCIEXYZ_prefix ####
+
+#### _XcmsCIEuvY_ValidSpec ####
+
+#### _XcmsCIEuvY_prefix ####
+
+#### _XcmsCIExyY_prefix ####
+
+#### _XcmsConvertColorsWithWhitePt ####
+
+#### _XcmsCopyCmapRecAndFree ####
+
+#### _XcmsCopyISOLatin1Lowered ####
+
+#### _XcmsCopyPointerArray ####
+
+#### _XcmsCosine ####
+
+#### _XcmsCubeRoot ####
+
+#### _XcmsDDColorSpaces ####
+
+#### _XcmsDDColorSpacesInit ####
+
+#### _XcmsDDConvertColors ####
+
+#### _XcmsDIColorSpaces ####
+
+#### _XcmsDIColorSpacesInit ####
+
+#### _XcmsDIConvertColors ####
+
+#### _XcmsDeleteCmapRec ####
+
+#### _XcmsEqualWhitePts ####
+
+#### _XcmsFreeIntensityMaps ####
+
+#### _XcmsFreePointerArray ####
+
+#### _XcmsGetElement ####
+
+#### _XcmsGetIntensityMap ####
+
+#### _XcmsGetProperty ####
+
+#### _XcmsInitDefaultCCCs ####
+
+#### _XcmsInitScrnInfo ####
+
+#### _XcmsLRGB_InitScrnDefault ####
+
+#### _XcmsPushPointerArray ####
+
+#### _XcmsRGB_prefix ####
+
+#### _XcmsRGB_to_XColor ####
+
+#### _XcmsRGBi_prefix ####
+
+#### _XcmsRegColorSpaces ####
+
+#### _XcmsRegFormatOfPrefix ####
+
+#### _XcmsResolveColor ####
+
+#### _XcmsResolveColorString ####
+
+#### _XcmsSCCFuncSets ####
+
+#### _XcmsSCCFuncSetsInit ####
+
+#### _XcmsSetGetColor ####
+
+#### _XcmsSetGetColors ####
+
+#### _XcmsSine ####
+
+#### _XcmsSquareRoot ####
+
+#### _XcmsTekHVCQueryMaxVCRGB ####
+
+#### _XcmsTekHVC_CheckModify ####
+
+#### _XcmsTekHVC_prefix ####
+
+#### _XcmsUnresolveColor ####
+
+#### _Xdebug ####
+
+#### _Xevent_to_mask ####
+
+#### _Xglobal_lock ####
+
+#### _Xi18n_lock ####
+
+#### _XimCbDispatch ####
+
+#### _XimCheckCreateICValues ####
+
+#### _XimCheckDataSize ####
+
+#### _XimCheckICMode ####
+
+#### _XimCheckIMMode ####
+
+#### _XimCheckIfLocalProcessing ####
+
+#### _XimCheckIfThaiProcessing ####
+
+#### _XimCheckLocalInputStyle ####
+
+#### _XimCommitCallback ####
+
+#### _XimConnect ####
+
+#### _XimDecodeICATTRIBUTE ####
+
+#### _XimDecodeIMATTRIBUTE ####
+
+#### _XimDecodeLocalICAttr ####
+
+#### _XimDecodeLocalIMAttr ####
+
+#### _XimDestroyIMStructureList ####
+
+#### _XimDispatchInit ####
+
+#### _XimEncodeICATTRIBUTE ####
+
+#### _XimEncodeIMATTRIBUTE ####
+
+#### _XimEncodeLocalICAttr ####
+
+#### _XimEncodeLocalIMAttr ####
+
+#### _XimError ####
+
+#### _XimErrorCallback ####
+
+#### _XimExtension ####
+
+#### _XimFilterWaitEvent ####
+
+#### _XimFlush ####
+
+#### _XimForwardEvent ####
+
+#### _XimForwardEventCallback ####
+
+#### _XimFreeCommitInfo ####
+
+#### _XimFreeProtoIntrCallback ####
+
+#### _XimFreeTransIntrCallback ####
+
+#### _XimGetAttributeID ####
+
+#### _XimGetCharCode ####
+
+#### _XimGetCurrentICValues ####
+
+#### _XimGetCurrentIMValues ####
+
+#### _XimGetICValueData ####
+
+#### _XimGetIMValueData ####
+
+#### _XimGetLocaleCode ####
+
+#### _XimGetMyEndian ####
+
+#### _XimGetResourceListRec ####
+
+#### _XimGetResourceListRecByQuark ####
+
+#### _XimGetWindowEventmask ####
+
+#### _XimICOfXICID ####
+
+#### _XimImSportRec ####
+
+#### _XimInitialResourceInfo ####
+
+#### _XimLcctstombs ####
+
+#### _XimLcctstoutf8 ####
+
+#### _XimLcctstowcs ####
+
+#### _XimLocalCreateIC ####
+
+#### _XimLocalFilter ####
+
+#### _XimLocalGetICValues ####
+
+#### _XimLocalGetIMValues ####
+
+#### _XimLocalIMFree ####
+
+#### _XimLocalMbLookupString ####
+
+#### _XimLocalOpenIM ####
+
+#### _XimLocalSetICValues ####
+
+#### _XimLocalSetIMValues ####
+
+#### _XimLocalUtf8LookupString ####
+
+#### _XimLocalWcLookupString ####
+
+#### _XimLookupMBText ####
+
+#### _XimLookupUTF8Text ####
+
+#### _XimLookupWCText ####
+
+#### _XimMakeICAttrIDList ####
+
+#### _XimMakeIMAttrIDList ####
+
+#### _XimOpenIM ####
+
+#### _XimParseStringFile ####
+
+#### _XimProcError ####
+
+#### _XimProcSyncReply ####
+
+#### _XimProtoCreateIC ####
+
+#### _XimProtoEventToWire ####
+
+#### _XimProtoIMFree ####
+
+#### _XimProtoMbLookupString ####
+
+#### _XimProtoOpenIM ####
+
+#### _XimProtoUtf8LookupString ####
+
+#### _XimProtoWcLookupString ####
+
+#### _XimProtoWireToEvent ####
+
+#### _XimRead ####
+
+#### _XimRegProtoIntrCallback ####
+
+#### _XimRegisterDispatcher ####
+
+#### _XimRegisterFilter ####
+
+#### _XimRegisterIMInstantiateCallback ####
+
+#### _XimRegisterServerFilter ####
+
+#### _XimRegisterTriggerKeysCallback ####
+
+#### _XimReregisterFilter ####
+
+#### _XimResetIMInstantiateCallback ####
+
+#### _XimRespSyncReply ####
+
+#### _XimServerDestroy ####
+
+#### _XimSetCurrentICValues ####
+
+#### _XimSetCurrentIMValues ####
+
+#### _XimSetEventMaskCallback ####
+
+#### _XimSetHeader ####
+
+#### _XimSetICDefaults ####
+
+#### _XimSetICMode ####
+
+#### _XimSetICResourceList ####
+
+#### _XimSetICValueData ####
+
+#### _XimSetIMMode ####
+
+#### _XimSetIMResourceList ####
+
+#### _XimSetIMValueData ####
+
+#### _XimSetInnerICResourceList ####
+
+#### _XimSetInnerIMResourceList ####
+
+#### _XimSetLocalIMDefaults ####
+
+#### _XimShutdown ####
+
+#### _XimSync ####
+
+#### _XimSyncCallback ####
+
+#### _XimThaiCloseIM ####
+
+#### _XimThaiCreateIC ####
+
+#### _XimThaiFilter ####
+
+#### _XimThaiIMFree ####
+
+#### _XimThaiOpenIM ####
+
+#### _XimTransCallDispatcher ####
+
+#### _XimTransConf ####
+
+#### _XimTransFilterWaitEvent ####
+
+#### _XimTransFlush ####
+
+#### _XimTransInternalConnection ####
+
+#### _XimTransRead ####
+
+#### _XimTransRegisterDispatcher ####
+
+#### _XimTransWrite ####
+
+#### _XimTransportRec ####
+
+#### _XimTriggerNotify ####
+
+#### _XimUnRegisterIMInstantiateCallback ####
+
+#### _XimUnregisterFilter ####
+
+#### _XimUnregisterServerFilter ####
+
+#### _XimWrite ####
+
+#### _XimXConf ####
+
+#### _XimXTransBytesReadable ####
+
+#### _XimXTransClose ####
+
+#### _XimXTransCloseForCloning ####
+
+#### _XimXTransConnect ####
+
+#### _XimXTransDisconnect ####
+
+#### _XimXTransFreeConnInfo ####
+
+#### _XimXTransGetConnectionNumber ####
+
+#### _XimXTransGetHostname ####
+
+#### _XimXTransGetPeerAddr ####
+
+#### _XimXTransIsLocal ####
+
+#### _XimXTransOpenCOTSClient ####
+
+#### _XimXTransRead ####
+
+#### _XimXTransReadv ####
+
+#### _XimXTransSetOption ####
+
+#### _XimXTransSocketINET6Funcs ####
+
+#### _XimXTransSocketINETFuncs ####
+
+#### _XimXTransSocketLocalFuncs ####
+
+#### _XimXTransSocketTCPFuncs ####
+
+#### _XimXTransSocketUNIXFuncs ####
+
+#### _XimXTransWrite ####
+
+#### _XimXTransWritev ####
+
+#### _Ximctstombs ####
+
+#### _Ximctstoutf8 ####
+
+#### _Ximctstowcs ####
+
+#### _XkbCopyFromReadBuffer ####
+
+#### _XkbFreeReadBuffer ####
+
+#### _XkbGetAtomNameFunc ####
+
+#### _XkbGetCharset ####
+
+#### _XkbGetConverters ####
+
+#### _XkbGetReadBufferCountedString ####
+
+#### _XkbGetReadBufferPtr ####
+
+#### _XkbInitReadBuffer ####
+
+#### _XkbInternAtomFunc ####
+
+#### _XkbNoteCoreMapChanges ####
+
+#### _XkbPeekAtReadBuffer ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbReadBufferCopy32 ####
+
+#### _XkbReadBufferCopyKeySyms ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbReadCopyData32 ####
+
+#### _XkbReadCopyKeySyms ####
+
+#### _XkbReadGetCompatMapReply ####
+
+#### _XkbReadGetGeometryReply ####
+
+#### _XkbReadGetIndicatorMapReply ####
+
+#### _XkbReadGetMapReply ####
+
+#### _XkbReadGetNamesReply ####
+
+#### _XkbReloadDpy ####
+
+#### _XkbSkipReadBufferData ####
+
+#### (arch=amd64 ia64 alpha ppc64 arm64)_XkbWriteCopyData32 ####
+
+#### _XkbWriteCopyKeySyms ####
+
+#### _XkeyTable ####
+
+#### _XlcAddCT ####
+
+#### _XlcAddCharSet ####
+
+#### _XlcAddGB18030LocaleConverters ####
+
+#### _XlcAddLoader ####
+
+#### _XlcAddUtf8Converters ####
+
+#### _XlcAddUtf8LocaleConverters ####
+
+#### _XlcCloseConverter ####
+
+#### _XlcCompareISOLatin1 ####
+
+#### _XlcCompileResourceList ####
+
+#### _XlcConvert ####
+
+#### _XlcCopyFromArg ####
+
+#### _XlcCopyToArg ####
+
+#### _XlcCountVaList ####
+
+#### _XlcCreateDefaultCharSet ####
+
+#### _XlcCreateLC ####
+
+#### _XlcCreateLocaleDataBase ####
+
+#### _XlcCurrentLC ####
+
+#### _XlcDbg_printValue ####
+
+#### _XlcDeInitLoader ####
+
+#### _XlcDefaultLoader ####
+
+#### _XlcDefaultMapModifiers ####
+
+#### _XlcDestroyLC ####
+
+#### _XlcDestroyLocaleDataBase ####
+
+#### _XlcFileName ####
+
+#### _XlcGenericLoader ####
+
+#### _XlcGenericMethods ####
+
+#### _XlcGetCSValues ####
+
+#### _XlcGetCharSet ####
+
+#### _XlcGetCharSetWithSide ####
+
+#### _XlcGetLocaleDataBase ####
+
+#### _XlcGetResource ####
+
+#### _XlcGetValues ####
+
+#### _XlcInitCTInfo ####
+
+#### _XlcInitLoader ####
+
+#### _XlcLocaleDirName ####
+
+#### _XlcLocaleLibDirName ####
+
+#### _XlcMapOSLocaleName ####
+
+#### _XlcNCompareISOLatin1 ####
+
+#### _XlcOpenConverter ####
+
+#### _XlcParseCharSet ####
+
+#### _XlcParse_scopemaps ####
+
+#### _XlcPublicMethods ####
+
+#### _XlcRemoveLoader ####
+
+#### _XlcResetConverter ####
+
+#### _XlcResolveI18NPath ####
+
+#### _XlcResolveLocaleName ####
+
+#### _XlcSetConverter ####
+
+#### _XlcSetValues ####
+
+#### _XlcUtf8Loader ####
+
+#### _XlcVaToArgList ####
+
+#### _XlcValidModSyntax ####
+
+#### _Xlcmbstoutf8 ####
+
+#### _Xlcmbstowcs ####
+
+#### _Xlcmbtowc ####
+
+#### _Xlcwcstombs ####
+
+#### _Xlcwctomb ####
+
+#### _XmbDefaultDrawImageString ####
+
+#### _XmbDefaultDrawString ####
+
+#### _XmbDefaultTextEscapement ####
+
+#### _XmbDefaultTextExtents ####
+
+#### _XmbDefaultTextPerCharExtents ####
+
+#### _XmbGenericDrawImageString ####
+
+#### _XmbGenericDrawString ####
+
+#### _XmbGenericTextEscapement ####
+
+#### _XmbGenericTextExtents ####
+
+#### _XmbGenericTextPerCharExtents ####
+
+#### _XmbTextListToTextProperty ####
+
+#### _XmbTextPropertyToTextList ####
+
+#### _Xmblen ####
+
+#### _Xmbstoutf8 ####
+
+#### _Xmbstowcs ####
+
+#### _Xmbtowc ####
+
+#### _XomConvert ####
+
+#### _XomGenericDrawString ####
+
+#### _XomGenericOpenOM ####
+
+#### _XomGenericTextExtents ####
+
+#### _XomGetFontDataFromFontSet ####
+
+#### _XomInitConverter ####
+
+#### _XrmDefaultInitParseInfo ####
+
+#### _XrmInitParseInfo ####
+
+#### _XrmInternalStringToQuark ####
+
+#### _Xthread_self_fn ####
+
+#### _Xutf8DefaultDrawImageString ####
+
+#### _Xutf8DefaultDrawString ####
+
+#### _Xutf8DefaultTextEscapement ####
+
+#### _Xutf8DefaultTextExtents ####
+
+#### _Xutf8DefaultTextPerCharExtents ####
+
+#### _Xutf8GenericDrawImageString ####
+
+#### _Xutf8GenericDrawString ####
+
+#### _Xutf8GenericTextEscapement ####
+
+#### _Xutf8GenericTextExtents ####
+
+#### _Xutf8GenericTextPerCharExtents ####
+
+#### _Xutf8TextListToTextProperty ####
+
+#### _Xutf8TextPropertyToTextList ####
+
+#### _XwcDefaultDrawImageString ####
+
+#### _XwcDefaultDrawString ####
+
+#### _XwcDefaultTextEscapement ####
+
+#### _XwcDefaultTextExtents ####
+
+#### _XwcDefaultTextPerCharExtents ####
+
+#### _XwcFreeStringList ####
+
+#### _XwcGenericDrawImageString ####
+
+#### _XwcGenericDrawString ####
+
+#### _XwcGenericTextEscapement ####
+
+#### _XwcGenericTextExtents ####
+
+#### _XwcGenericTextPerCharExtents ####
+
+#### _XwcTextListToTextProperty ####
+
+#### _XwcTextPropertyToTextList ####
+
+#### _Xwcscmp ####
+
+#### _Xwcscpy ####
+
+#### _Xwcslen ####
+
+#### _Xwcsncmp ####
+
+#### _Xwcsncpy ####
+
+#### _Xwcstombs ####
+
+#### _Xwctomb ####
+
+#### _qfree ####
+
+#### read_EncodingInfo ####
+
+#### xlocaledir ####
diff --git a/doc/libNX_X11/symbols/libNX_X11::symbols.txt b/doc/libNX_X11/symbols/libNX_X11::symbols.txt
new file mode 100644
index 000000000..c67d6165b
--- /dev/null
+++ b/doc/libNX_X11/symbols/libNX_X11::symbols.txt
@@ -0,0 +1,1263 @@
+### as found in libNX_X11 (rebased against libX11 1.6.4) (20161115)
+###
+KeySymToUcs4
+XActivateScreenSaver
+XAddConnectionWatch
+XAddExtension
+XAddHost
+XAddHosts
+XAddPixel
+XAddToExtensionList
+XAddToSaveSet
+XAllPlanes
+XAllocClassHint
+XAllocColor
+XAllocColorCells
+XAllocColorPlanes
+XAllocIconSize
+XAllocNamedColor
+XAllocSizeHints
+XAllocStandardColormap
+XAllocWMHints
+XAllowEvents
+XAutoRepeatOff
+XAutoRepeatOn
+XBaseFontNameListOfFontSet
+XBell
+XBitmapBitOrder
+XBitmapPad
+XBitmapUnit
+XBlackPixel
+XBlackPixelOfScreen
+XCellsOfScreen
+XChangeActivePointerGrab
+XChangeGC
+XChangeKeyboardControl
+XChangeKeyboardMapping
+XChangePointerControl
+XChangeProperty
+XChangeSaveSet
+XChangeWindowAttributes
+XCheckIfEvent
+XCheckIfEventNoFlush
+XCheckMaskEvent
+XCheckTypedEvent
+XCheckTypedWindowEvent
+XCheckWindowEvent
+XCirculateSubwindows
+XCirculateSubwindowsDown
+XCirculateSubwindowsUp
+XClearArea
+XClearWindow
+XClipBox
+XCloseDisplay
+XCloseIM
+XCloseOM
+XConfigureWindow
+XConnectionNumber
+XContextDependentDrawing
+XContextualDrawing
+XConvertCase
+XConvertSelection
+XCopyArea
+XCopyColormapAndFree
+XCopyGC
+XCopyPlane
+XCreateBitmapFromData
+XCreateColormap
+XCreateFontCursor
+XCreateFontSet
+XCreateGC
+XCreateGlyphCursor
+XCreateIC
+XCreateImage
+XCreateOC
+XCreatePixmap
+XCreatePixmapCursor
+XCreatePixmapFromBitmapData
+XCreateRegion
+XCreateSimpleWindow
+XCreateWindow
+XDefaultColormap
+XDefaultColormapOfScreen
+XDefaultDepth
+XDefaultDepthOfScreen
+XDefaultGC
+XDefaultGCOfScreen
+XDefaultRootWindow
+XDefaultScreen
+XDefaultScreenOfDisplay
+XDefaultString
+XDefaultVisual
+XDefaultVisualOfScreen
+XDefineCursor
+XDeleteContext
+XDeleteModifiermapEntry
+XDeleteProperty
+XDestroyIC
+XDestroyImage
+XDestroyOC
+XDestroyRegion
+XDestroySubwindows
+XDestroyWindow
+XDirectionalDependentDrawing
+XDisableAccessControl
+XDisplayCells
+XDisplayHeight
+XDisplayHeightMM
+XDisplayKeycodes
+XDisplayMotionBufferSize
+XDisplayName
+XDisplayOfIM
+XDisplayOfOM
+XDisplayOfScreen
+XDisplayPlanes
+XDisplayString
+XDisplayWidth
+XDisplayWidthMM
+XDoesBackingStore
+XDoesSaveUnders
+XDrawArc
+XDrawArcs
+XDrawImageString16
+XDrawImageString
+XDrawLine
+XDrawLines
+XDrawPoint
+XDrawPoints
+XDrawRectangle
+XDrawRectangles
+XDrawSegments
+XDrawString16
+XDrawString
+XDrawText16
+XDrawText
+XEHeadOfExtensionList
+XESetBeforeFlush
+XESetCloseDisplay
+XESetCopyEventCookie
+XESetCopyGC
+XESetCreateFont
+XESetCreateGC
+XESetError
+XESetErrorString
+XESetEventToWire
+XESetFlushGC
+XESetFreeFont
+XESetFreeGC
+XESetPrintErrorValues
+XESetWireToError
+XESetWireToEvent
+XESetWireToEventCookie
+XEmptyRegion
+XEnableAccessControl
+XEqualRegion
+XEventMaskOfScreen
+XEventsQueued
+XExtendedMaxRequestSize
+XExtentsOfFontSet
+XFetchBuffer
+XFetchBytes
+XFetchName
+XFillArc
+XFillArcs
+XFillPolygon
+XFillRectangle
+XFillRectangles
+XFilterEvent
+XFindContext
+XFindOnExtensionList
+XFlush
+XFlushGC
+XFontsOfFontSet
+XForceScreenSaver
+XFree
+XFreeColormap
+XFreeColors
+XFreeCursor
+XFreeEventData
+XFreeExtensionList
+XFreeFont
+XFreeFontInfo
+XFreeFontNames
+XFreeFontPath
+XFreeFontSet
+XFreeGC
+XFreeModifiermap
+XFreePixmap
+XFreeStringList
+XGContextFromGC
+XGeometry
+XGetAtomName
+XGetAtomNames
+XGetClassHint
+XGetCommand
+XGetDefault
+XGetErrorDatabaseText
+XGetErrorText
+XGetEventData
+XGetFontPath
+XGetFontProperty
+XGetGCValues
+XGetGeometry
+XGetICValues
+XGetIMValues
+XGetIconName
+XGetIconSizes
+XGetImage
+XGetInputFocus
+XGetKeyboardControl
+XGetKeyboardMapping
+XGetModifierMapping
+XGetMotionEvents
+XGetNormalHints
+XGetOCValues
+XGetOMValues
+XGetPixel
+XGetPointerControl
+XGetPointerMapping
+XGetRGBColormaps
+XGetScreenSaver
+XGetSelectionOwner
+XGetSizeHints
+XGetStandardColormap
+XGetSubImage
+XGetTextProperty
+XGetTransientForHint
+XGetVisualInfo
+XGetWMClientMachine
+XGetWMColormapWindows
+XGetWMHints
+XGetWMIconName
+XGetWMName
+XGetWMNormalHints
+XGetWMProtocols
+XGetWMSizeHints
+XGetWindowAttributes
+XGetWindowProperty
+XGetZoomHints
+XGrabButton
+XGrabKey
+XGrabKeyboard
+XGrabPointer
+XGrabServer
+XHeightMMOfScreen
+XHeightOfScreen
+XIMOfIC
+XIconifyWindow
+XIfEvent
+XImageByteOrder
+XInitExtension
+XInitImage
+XInitThreads
+XInsertModifiermapEntry
+XInstallColormap
+XInternAtom
+XInternAtoms
+XInternalConnectionNumbers
+XIntersectRegion
+XKeycodeToKeysym
+XKeysymToKeycode
+XKeysymToString
+XKillClient
+XLastKnownRequestProcessed
+XListDepths
+XListExtensions
+XListFonts
+XListFontsWithInfo
+XListHosts
+XListInstalledColormaps
+XListPixmapFormats
+XListProperties
+XLoadFont
+XLoadQueryFont
+XLocaleOfFontSet
+XLocaleOfIM
+XLocaleOfOM
+XLockDisplay
+XLookupColor
+XLookupKeysym
+XLookupString
+XLowerWindow
+XMapRaised
+XMapSubwindows
+XMapWindow
+XMaskEvent
+XMatchVisualInfo
+XMaxCmapsOfScreen
+XMaxRequestSize
+XMinCmapsOfScreen
+XMoveResizeWindow
+XMoveWindow
+XNewModifiermap
+XNextEvent
+XNextRequest
+XNoOp
+XOMOfOC
+XOffsetRegion
+XOpenDisplay
+XOpenIM
+XOpenOM
+XParseColor
+XParseGeometry
+XPeekEvent
+XPeekIfEvent
+XPending
+XPlanesOfScreen
+XPointInRegion
+XPolygonRegion
+XProcessInternalConnection
+XProtocolRevision
+XProtocolVersion
+XPutBackEvent
+XPutImage
+XPutPixel
+XQLength
+XQueryBestCursor
+XQueryBestSize
+XQueryBestStipple
+XQueryBestTile
+XQueryColor
+XQueryColors
+XQueryExtension
+XQueryFont
+XQueryKeymap
+XQueryPointer
+XQueryTextExtents16
+XQueryTextExtents
+XQueryTree
+XRaiseWindow
+XReadBitmapFile
+XReadBitmapFileData
+XRebindKeysym
+XRecolorCursor
+XReconfigureWMWindow
+XRectInRegion
+XRefreshKeyboardMapping
+XRegisterIMInstantiateCallback
+XRemoveConnectionWatch
+XRemoveFromSaveSet
+XRemoveHost
+XRemoveHosts
+XReparentWindow
+XResetScreenSaver
+XResizeWindow
+XResourceManagerString
+XRestackWindows
+XRootWindow
+XRootWindowOfScreen
+XRotateBuffers
+XRotateWindowProperties
+XSaveContext
+XScreenCount
+XScreenNumberOfScreen
+XScreenOfDisplay
+XScreenResourceString
+XSelectInput
+XSendEvent
+XServerVendor
+XSetAccessControl
+XSetAfterFunction
+XSetArcMode
+XSetAuthorization
+XSetBackground
+XSetClassHint
+XSetClipMask
+XSetClipOrigin
+XSetClipRectangles
+XSetCloseDownMode
+XSetCommand
+XSetDashes
+XSetErrorHandler
+XSetFillRule
+XSetFillStyle
+XSetFont
+XSetFontPath
+XSetForeground
+XSetFunction
+XSetGraphicsExposures
+XSetICFocus
+XSetICValues
+XSetIMValues
+XSetIOErrorHandler
+XSetIconName
+XSetIconSizes
+XSetInputFocus
+XSetLineAttributes
+XSetLocaleModifiers
+XSetModifierMapping
+XSetNormalHints
+XSetOCValues
+XSetOMValues
+XSetPlaneMask
+XSetPointerMapping
+XSetRGBColormaps
+XSetRegion
+XSetScreenSaver
+XSetSelectionOwner
+XSetSizeHints
+XSetStandardColormap
+XSetStandardProperties
+XSetState
+XSetStipple
+XSetSubwindowMode
+XSetTSOrigin
+XSetTextProperty
+XSetTile
+XSetTransientForHint
+XSetWMClientMachine
+XSetWMColormapWindows
+XSetWMHints
+XSetWMIconName
+XSetWMName
+XSetWMNormalHints
+XSetWMProperties
+XSetWMProtocols
+XSetWMSizeHints
+XSetWindowBackground
+XSetWindowBackgroundPixmap
+XSetWindowBorder
+XSetWindowBorderPixmap
+XSetWindowBorderWidth
+XSetWindowColormap
+XSetZoomHints
+XShrinkRegion
+XStoreBuffer
+XStoreBytes
+XStoreColor
+XStoreColors
+XStoreName
+XStoreNamedColor
+XStringListToTextProperty
+XStringToKeysym
+XSubImage
+XSubtractRegion
+XSupportsLocale
+XSync
+XSynchronize
+XTextExtents16
+XTextExtents
+XTextPropertyToStringList
+XTextWidth16
+XTextWidth
+XTranslateCoordinates
+XUndefineCursor
+XUngrabButton
+XUngrabKey
+XUngrabKeyboard
+XUngrabPointer
+XUngrabServer
+XUninstallColormap
+XUnionRectWithRegion
+XUnionRegion
+XUnloadFont
+XUnlockDisplay
+XUnmapSubwindows
+XUnmapWindow
+XUnregisterIMInstantiateCallback
+XUnsetICFocus
+XVaCreateNestedList
+XVendorRelease
+XVisualIDFromVisual
+XWMGeometry
+XWarpPointer
+XWhitePixel
+XWhitePixelOfScreen
+XWidthMMOfScreen
+XWidthOfScreen
+XWindowEvent
+XWithdrawWindow
+XWriteBitmapFile
+XXorRegion
+XauDisposeAuth
+XauFileName
+XauGetBestAuthByAddr
+XauReadAuth
+XcmsAddColorSpace
+XcmsAddFunctionSet
+XcmsAllocColor
+XcmsAllocNamedColor
+XcmsCCCOfColormap
+XcmsCIELabClipL
+XcmsCIELabClipLab
+XcmsCIELabClipab
+XcmsCIELabColorSpace
+XcmsCIELabQueryMaxC
+XcmsCIELabQueryMaxL
+XcmsCIELabQueryMaxLC
+XcmsCIELabQueryMinL
+XcmsCIELabToCIEXYZ
+XcmsCIELabWhiteShiftColors
+XcmsCIELuvClipL
+XcmsCIELuvClipLuv
+XcmsCIELuvClipuv
+XcmsCIELuvColorSpace
+XcmsCIELuvQueryMaxC
+XcmsCIELuvQueryMaxL
+XcmsCIELuvQueryMaxLC
+XcmsCIELuvQueryMinL
+XcmsCIELuvToCIEuvY
+XcmsCIELuvWhiteShiftColors
+XcmsCIEXYZColorSpace
+XcmsCIEXYZToCIELab
+XcmsCIEXYZToCIEuvY
+XcmsCIEXYZToCIExyY
+XcmsCIEXYZToRGBi
+XcmsCIEuvYColorSpace
+XcmsCIEuvYToCIELuv
+XcmsCIEuvYToCIEXYZ
+XcmsCIEuvYToTekHVC
+XcmsCIExyYColorSpace
+XcmsCIExyYToCIEXYZ
+XcmsClientWhitePointOfCCC
+XcmsConvertColors
+XcmsCreateCCC
+XcmsDefaultCCC
+XcmsDisplayOfCCC
+XcmsFormatOfPrefix
+XcmsFreeCCC
+XcmsLinearRGBFunctionSet
+XcmsLookupColor
+XcmsPrefixOfFormat
+XcmsQueryBlack
+XcmsQueryBlue
+XcmsQueryColor
+XcmsQueryColors
+XcmsQueryGreen
+XcmsQueryRed
+XcmsQueryWhite
+XcmsRGBColorSpace
+XcmsRGBToRGBi
+XcmsRGBiColorSpace
+XcmsRGBiToCIEXYZ
+XcmsRGBiToRGB
+XcmsScreenNumberOfCCC
+XcmsScreenWhitePointOfCCC
+XcmsSetCCCOfColormap
+XcmsSetCompressionProc
+XcmsSetWhiteAdjustProc
+XcmsSetWhitePoint
+XcmsStoreColor
+XcmsStoreColors
+XcmsTekHVCClipC
+XcmsTekHVCClipV
+XcmsTekHVCClipVC
+XcmsTekHVCColorSpace
+XcmsTekHVCQueryMaxC
+XcmsTekHVCQueryMaxV
+XcmsTekHVCQueryMaxVC
+XcmsTekHVCQueryMaxVSamples
+XcmsTekHVCQueryMinV
+XcmsTekHVCToCIEuvY
+XcmsTekHVCWhiteShiftColors
+XcmsUNDEFINEDColorSpace
+XcmsVisualOfCCC
+XkbAddDeviceLedInfo
+XkbAddGeomColor
+XkbAddGeomDoodad
+XkbAddGeomKey
+XkbAddGeomKeyAlias
+XkbAddGeomOutline
+XkbAddGeomOverlay
+XkbAddGeomOverlayKey
+XkbAddGeomOverlayRow
+XkbAddGeomProperty
+XkbAddGeomRow
+XkbAddGeomSection
+XkbAddGeomShape
+XkbAddKeyType
+XkbAllocClientMap
+XkbAllocCompatMap
+XkbAllocControls
+XkbAllocDeviceInfo
+XkbAllocGeomColors
+XkbAllocGeomDoodads
+XkbAllocGeomKeyAliases
+XkbAllocGeomKeys
+XkbAllocGeomOutlines
+XkbAllocGeomOverlayKeys
+XkbAllocGeomOverlayRows
+XkbAllocGeomOverlays
+XkbAllocGeomPoints
+XkbAllocGeomProps
+XkbAllocGeomRows
+XkbAllocGeomSectionDoodads
+XkbAllocGeomSections
+XkbAllocGeomShapes
+XkbAllocGeometry
+XkbAllocIndicatorMaps
+XkbAllocKeyboard
+XkbAllocNames
+XkbAllocServerMap
+XkbApplyCompatMapToKey
+XkbApplyVirtualModChanges
+XkbBell
+XkbBellEvent
+XkbChangeDeviceInfo
+XkbChangeEnabledControls
+XkbChangeKeycodeRange
+XkbChangeMap
+XkbChangeNames
+XkbChangeTypesOfKey
+XkbComputeEffectiveMap
+XkbComputeRowBounds
+XkbComputeSectionBounds
+XkbComputeShapeBounds
+XkbComputeShapeTop
+XkbCopyKeyType
+XkbCopyKeyTypes
+XkbDeviceBell
+XkbDeviceBellEvent
+XkbFindOverlayForKey
+XkbForceBell
+XkbForceDeviceBell
+XkbFreeClientMap
+XkbFreeCompatMap
+XkbFreeComponentList
+XkbFreeControls
+XkbFreeDeviceInfo
+XkbFreeGeomColors
+XkbFreeGeomDoodads
+XkbFreeGeomKeyAliases
+XkbFreeGeomKeys
+XkbFreeGeomOutlines
+XkbFreeGeomOverlayKeys
+XkbFreeGeomOverlayRows
+XkbFreeGeomOverlays
+XkbFreeGeomPoints
+XkbFreeGeomProperties
+XkbFreeGeomRows
+XkbFreeGeomSections
+XkbFreeGeomShapes
+XkbFreeGeometry
+XkbFreeIndicatorMaps
+XkbFreeKeyboard
+XkbFreeNames
+XkbFreeServerMap
+XkbGetAutoRepeatRate
+XkbGetAutoResetControls
+XkbGetCompatMap
+XkbGetControls
+XkbGetDetectableAutoRepeat
+XkbGetDeviceButtonActions
+XkbGetDeviceInfo
+XkbGetDeviceInfoChanges
+XkbGetDeviceLedInfo
+XkbGetGeometry
+XkbGetIndicatorMap
+XkbGetIndicatorState
+XkbGetKeyActions
+XkbGetKeyBehaviors
+XkbGetKeyExplicitComponents
+XkbGetKeyModifierMap
+XkbGetKeySyms
+XkbGetKeyTypes
+XkbGetKeyVirtualModMap
+XkbGetKeyboard
+XkbGetKeyboardByName
+XkbGetMap
+XkbGetMapChanges
+XkbGetNamedDeviceIndicator
+XkbGetNamedGeometry
+XkbGetNamedIndicator
+XkbGetNames
+XkbGetPerClientControls
+XkbGetState
+XkbGetUpdatedMap
+XkbGetVirtualMods
+XkbGetXlibControls
+XkbIgnoreExtension
+XkbInitCanonicalKeyTypes
+XkbKeyTypesForCoreSymbols
+XkbKeycodeToKeysym
+XkbKeysymToModifiers
+XkbLatchGroup
+XkbLatchModifiers
+XkbLibraryVersion
+XkbListComponents
+XkbLockGroup
+XkbLockModifiers
+XkbLookupKeyBinding
+XkbLookupKeySym
+XkbNoteControlsChanges
+XkbNoteDeviceChanges
+XkbNoteMapChanges
+XkbNoteNameChanges
+XkbOpenDisplay
+XkbQueryExtension
+XkbRefreshKeyboardMapping
+XkbResizeDeviceButtonActions
+XkbResizeKeyActions
+XkbResizeKeySyms
+XkbResizeKeyType
+XkbSelectEventDetails
+XkbSelectEvents
+XkbSetAtomFuncs
+XkbSetAutoRepeatRate
+XkbSetAutoResetControls
+XkbSetCompatMap
+XkbSetControls
+XkbSetDebuggingFlags
+XkbSetDetectableAutoRepeat
+XkbSetDeviceButtonActions
+XkbSetDeviceInfo
+XkbSetDeviceLedInfo
+XkbSetGeometry
+XkbSetIgnoreLockMods
+XkbSetIndicatorMap
+XkbSetMap
+XkbSetNamedDeviceIndicator
+XkbSetNamedIndicator
+XkbSetNames
+XkbSetPerClientControls
+XkbSetServerInternalMods
+XkbSetXlibControls
+XkbToControl
+XkbTranslateKey
+XkbTranslateKeyCode
+XkbTranslateKeySym
+XkbUpdateActionVirtualMods
+XkbUpdateKeyTypeVirtualMods
+XkbUpdateMapFromCore
+XkbUseExtension
+XkbVirtualModsToReal
+XkbXlibControlsImplemented
+XmbDrawImageString
+XmbDrawString
+XmbDrawText
+XmbLookupString
+XmbResetIC
+XmbSetWMProperties
+XmbTextEscapement
+XmbTextExtents
+XmbTextListToTextProperty
+XmbTextPerCharExtents
+XmbTextPropertyToTextList
+Xpermalloc
+XrmCombineDatabase
+XrmCombineFileDatabase
+XrmDestroyDatabase
+XrmEnumerateDatabase
+XrmGetDatabase
+XrmGetFileDatabase
+XrmGetResource
+XrmGetStringDatabase
+XrmInitialize
+XrmLocaleOfDatabase
+XrmMergeDatabases
+XrmParseCommand
+XrmPermStringToQuark
+XrmPutFileDatabase
+XrmPutLineResource
+XrmPutResource
+XrmPutStringResource
+XrmQGetResource
+XrmQGetSearchList
+XrmQGetSearchResource
+XrmQPutResource
+XrmQPutStringResource
+XrmQuarkToString
+XrmSetDatabase
+XrmStringToBindingQuarkList
+XrmStringToQuark
+XrmStringToQuarkList
+XrmUniqueQuark
+Xutf8DrawImageString
+Xutf8DrawString
+Xutf8DrawText
+Xutf8LookupString
+Xutf8ResetIC
+Xutf8SetWMProperties
+Xutf8TextEscapement
+Xutf8TextExtents
+Xutf8TextListToTextProperty
+Xutf8TextPerCharExtents
+Xutf8TextPropertyToTextList
+XwcDrawImageString
+XwcDrawString
+XwcDrawText
+XwcFreeStringList
+XwcLookupString
+XwcResetIC
+XwcTextEscapement
+XwcTextExtents
+XwcTextListToTextProperty
+XwcTextPerCharExtents
+XwcTextPropertyToTextList
+_Utf8GetConvByName
+_X11TransBytesReadable
+_X11TransClose
+_X11TransCloseForCloning
+_X11TransConnect
+_X11TransConnectDisplay
+_X11TransConvertAddress
+_X11TransDisconnect
+_X11TransFreeConnInfo
+_X11TransGetConnectionNumber
+_X11TransGetHostname
+_X11TransGetMyAddr
+_X11TransGetPeerAddr
+_X11TransIsLocal
+_X11TransOpenCOTSClient
+_X11TransRead
+_X11TransReadv
+_X11TransSetOption
+_X11TransSocketINET6Funcs
+_X11TransSocketINETFuncs
+_X11TransSocketLocalFuncs
+_X11TransSocketProxyConnInfo
+_X11TransSocketTCPFuncs
+_X11TransSocketUNIXFuncs
+_X11TransWrite
+_X11TransWritev
+_XAllocID
+_XAllocIDs
+_XAllocScratch
+_XAllocTemp
+_XAsyncErrorHandler
+_XCloseLC
+_XColor_to_XcmsRGB
+_XConnectDisplay
+_XCopyEventCookie
+_XCopyToArg
+_XCreateMutex_fn
+ (arch=amd64 ia64 alpha ppc64 arm64)_XData32
+_XDefaultError
+_XDefaultIOError
+_XDefaultWireError
+_XDeq
+_XDeqAsyncHandler
+_XDisconnectDisplay
+_XEatData
+_XEatDataWords
+_XEnq
+_XError
+_XErrorFunction
+_XEventToWire
+_XEventsQueued
+_XF86BigfontFreeFontMetrics
+_XF86LoadQueryLocaleFont
+_XFetchEventCookie
+_XFlush
+_XFlushGCCache
+_XFreeAtomTable
+_XFreeDisplayLock_fn
+_XFreeDisplayStructure
+_XFreeEventCookies
+_XFreeExtData
+_XFreeMutex_fn
+_XFreeTemp
+_XGetAsyncData
+_XGetAsyncReply
+_XGetBitsPerPixel
+_XGetHostname
+_XGetLCValues
+_XGetRequest
+_XGetScanlinePad
+_XGetWindowAttributes
+_XHeadOfDisplayList
+_XIMCompileResourceList
+_XIOError
+_XIOErrorFunction
+_XInitDisplayLock_fn
+_XInitIM
+_XInitImageFuncPtrs
+_XInitKeysymDB
+_XInitOM
+_XIsEventCookie
+_XKeyInitialize
+_XKeycodeToKeysym
+_XKeysymToKeycode
+_XKeysymToModifiers
+_XLockMutex_fn
+_XLookupKeysym
+_XLookupString
+_XNoticeCreateBitmap
+_XNoticePutBitmap
+_XOpenLC
+_XParseBaseFontNameList
+_XPollfdCacheAdd
+_XPollfdCacheDel
+_XPollfdCacheInit
+_XProcessInternalConnection
+_XProcessWindowAttributes
+_XPutBackEvent
+(arch=amd64 ia64 alpha ppc64 arm64)_XRead32
+_XRead
+_XReadEvents
+_XReadPad
+_XRefreshKeyboardMapping
+_XRegisterFilterByMask
+_XRegisterFilterByType
+_XRegisterInternalConnection
+_XReply
+_XReverse_Bytes
+_XScreenOfWindow
+_XSelect
+_XSend
+_XSendClientPrefix
+_XSetClipRectangles
+_XSetImage
+_XSetLastRequestRead
+_XStoreEventCookie
+_XTextHeight16
+_XTextHeight
+_XTranslateKey
+_XTranslateKeySym
+_XTryShapeBitmapCursor
+_XUnknownCopyEventCookie
+_XUnknownNativeEvent
+_XUnknownWireEvent
+_XUnknownWireEventCookie
+_XUnlockMutex_fn
+_XUnregisterFilter
+_XUnregisterInternalConnection
+_XUnresolveColor
+_XUpdateAtomCache
+_XUpdateGCCache
+_XVIDtoVisual
+_XWireToEvent
+_XcmsAddCmapRec
+_XcmsArcTangent
+_XcmsCIELabQueryMaxLCRGB
+_XcmsCIELab_prefix
+_XcmsCIELuvQueryMaxLCRGB
+_XcmsCIELuv_prefix
+_XcmsCIEXYZ_ValidSpec
+_XcmsCIEXYZ_prefix
+_XcmsCIEuvY_ValidSpec
+_XcmsCIEuvY_prefix
+_XcmsCIExyY_prefix
+_XcmsConvertColorsWithWhitePt
+_XcmsCopyCmapRecAndFree
+_XcmsCopyISOLatin1Lowered
+_XcmsCopyPointerArray
+_XcmsCosine
+_XcmsCubeRoot
+_XcmsDDColorSpaces
+_XcmsDDColorSpacesInit
+_XcmsDDConvertColors
+_XcmsDIColorSpaces
+_XcmsDIColorSpacesInit
+_XcmsDIConvertColors
+_XcmsDeleteCmapRec
+_XcmsEqualWhitePts
+_XcmsFreeIntensityMaps
+_XcmsFreePointerArray
+_XcmsGetElement
+_XcmsGetIntensityMap
+_XcmsGetProperty
+_XcmsInitDefaultCCCs
+_XcmsInitScrnInfo
+_XcmsLRGB_InitScrnDefault
+_XcmsPushPointerArray
+_XcmsRGB_prefix
+_XcmsRGB_to_XColor
+_XcmsRGBi_prefix
+_XcmsRegColorSpaces
+_XcmsRegFormatOfPrefix
+_XcmsResolveColor
+_XcmsResolveColorString
+_XcmsSCCFuncSets
+_XcmsSCCFuncSetsInit
+_XcmsSetGetColor
+_XcmsSetGetColors
+_XcmsSine
+_XcmsSquareRoot
+_XcmsTekHVCQueryMaxVCRGB
+_XcmsTekHVC_CheckModify
+_XcmsTekHVC_prefix
+_XcmsUnresolveColor
+_Xdebug
+_Xevent_to_mask
+_Xglobal_lock
+_Xi18n_lock
+_XimCbDispatch
+_XimCheckCreateICValues
+_XimCheckDataSize
+_XimCheckICMode
+_XimCheckIMMode
+_XimCheckIfLocalProcessing
+_XimCheckIfThaiProcessing
+_XimCheckLocalInputStyle
+_XimCommitCallback
+_XimConnect
+_XimDecodeICATTRIBUTE
+_XimDecodeIMATTRIBUTE
+_XimDecodeLocalICAttr
+_XimDecodeLocalIMAttr
+_XimDestroyIMStructureList
+_XimDispatchInit
+_XimEncodeICATTRIBUTE
+_XimEncodeIMATTRIBUTE
+_XimEncodeLocalICAttr
+_XimEncodeLocalIMAttr
+_XimError
+_XimErrorCallback
+_XimExtension
+_XimFilterWaitEvent
+_XimFlush
+_XimForwardEvent
+_XimForwardEventCallback
+_XimFreeCommitInfo
+_XimFreeProtoIntrCallback
+_XimFreeTransIntrCallback
+_XimGetAttributeID
+_XimGetCharCode
+_XimGetCurrentICValues
+_XimGetCurrentIMValues
+_XimGetICValueData
+_XimGetIMValueData
+_XimGetLocaleCode
+_XimGetMyEndian
+_XimGetResourceListRec
+_XimGetResourceListRecByQuark
+_XimGetWindowEventmask
+_XimICOfXICID
+_XimImSportRec
+_XimInitialResourceInfo
+_XimLcctstombs
+_XimLcctstoutf8
+_XimLcctstowcs
+_XimLocalCreateIC
+_XimLocalFilter
+_XimLocalGetICValues
+_XimLocalGetIMValues
+_XimLocalIMFree
+_XimLocalMbLookupString
+_XimLocalOpenIM
+_XimLocalSetICValues
+_XimLocalSetIMValues
+_XimLocalUtf8LookupString
+_XimLocalWcLookupString
+_XimLookupMBText
+_XimLookupUTF8Text
+_XimLookupWCText
+_XimMakeICAttrIDList
+_XimMakeIMAttrIDList
+_XimOpenIM
+_XimParseStringFile
+_XimProcError
+_XimProcSyncReply
+_XimProtoCreateIC
+_XimProtoEventToWire
+_XimProtoIMFree
+_XimProtoMbLookupString
+_XimProtoOpenIM
+_XimProtoUtf8LookupString
+_XimProtoWcLookupString
+_XimProtoWireToEvent
+_XimRead
+_XimRegProtoIntrCallback
+_XimRegisterDispatcher
+_XimRegisterFilter
+_XimRegisterIMInstantiateCallback
+_XimRegisterServerFilter
+_XimRegisterTriggerKeysCallback
+_XimReregisterFilter
+_XimResetIMInstantiateCallback
+_XimRespSyncReply
+_XimServerDestroy
+_XimSetCurrentICValues
+_XimSetCurrentIMValues
+_XimSetEventMaskCallback
+_XimSetHeader
+_XimSetICDefaults
+_XimSetICMode
+_XimSetICResourceList
+_XimSetICValueData
+_XimSetIMMode
+_XimSetIMResourceList
+_XimSetIMValueData
+_XimSetInnerICResourceList
+_XimSetInnerIMResourceList
+_XimSetLocalIMDefaults
+_XimShutdown
+_XimSync
+_XimSyncCallback
+_XimThaiCloseIM
+_XimThaiCreateIC
+_XimThaiFilter
+_XimThaiIMFree
+_XimThaiOpenIM
+_XimTransCallDispatcher
+_XimTransConf
+_XimTransFilterWaitEvent
+_XimTransFlush
+_XimTransInternalConnection
+_XimTransRead
+_XimTransRegisterDispatcher
+_XimTransWrite
+_XimTransportRec
+_XimTriggerNotify
+_XimUnRegisterIMInstantiateCallback
+_XimUnregisterFilter
+_XimUnregisterServerFilter
+_XimWrite
+_XimXConf
+_XimXTransBytesReadable
+_XimXTransClose
+_XimXTransCloseForCloning
+_XimXTransConnect
+_XimXTransDisconnect
+_XimXTransFreeConnInfo
+_XimXTransGetConnectionNumber
+_XimXTransGetHostname
+_XimXTransGetPeerAddr
+_XimXTransIsLocal
+_XimXTransOpenCOTSClient
+_XimXTransRead
+_XimXTransReadv
+_XimXTransSetOption
+_XimXTransSocketINET6Funcs
+_XimXTransSocketINETFuncs
+_XimXTransSocketLocalFuncs
+_XimXTransSocketTCPFuncs
+_XimXTransSocketUNIXFuncs
+_XimXTransWrite
+_XimXTransWritev
+_Ximctstombs
+_Ximctstoutf8
+_Ximctstowcs
+_XkbCopyFromReadBuffer
+_XkbFreeReadBuffer
+_XkbGetAtomNameFunc
+_XkbGetCharset
+_XkbGetConverters
+_XkbGetReadBufferCountedString
+_XkbGetReadBufferPtr
+_XkbInitReadBuffer
+_XkbInternAtomFunc
+_XkbNoteCoreMapChanges
+_XkbPeekAtReadBuffer
+(arch=amd64 ia64 alpha ppc64 arm64)_XkbReadBufferCopy32
+_XkbReadBufferCopyKeySyms
+(arch=amd64 ia64 alpha ppc64 arm64)_XkbReadCopyData32
+_XkbReadCopyKeySyms
+_XkbReadGetCompatMapReply
+_XkbReadGetGeometryReply
+_XkbReadGetIndicatorMapReply
+_XkbReadGetMapReply
+_XkbReadGetNamesReply
+_XkbReloadDpy
+_XkbSkipReadBufferData
+(arch=amd64 ia64 alpha ppc64 arm64)_XkbWriteCopyData32
+_XkbWriteCopyKeySyms
+_XkeyTable
+_XlcAddCT
+_XlcAddCharSet
+_XlcAddGB18030LocaleConverters
+_XlcAddLoader
+_XlcAddUtf8Converters
+_XlcAddUtf8LocaleConverters
+_XlcCloseConverter
+_XlcCompareISOLatin1
+_XlcCompileResourceList
+_XlcConvert
+_XlcCopyFromArg
+_XlcCopyToArg
+_XlcCountVaList
+_XlcCreateDefaultCharSet
+_XlcCreateLC
+_XlcCreateLocaleDataBase
+_XlcCurrentLC
+_XlcDbg_printValue
+_XlcDeInitLoader
+_XlcDefaultLoader
+_XlcDefaultMapModifiers
+_XlcDestroyLC
+_XlcDestroyLocaleDataBase
+_XlcFileName
+_XlcGenericLoader
+_XlcGenericMethods
+_XlcGetCSValues
+_XlcGetCharSet
+_XlcGetCharSetWithSide
+_XlcGetLocaleDataBase
+_XlcGetResource
+_XlcGetValues
+_XlcInitCTInfo
+_XlcInitLoader
+_XlcLocaleDirName
+_XlcLocaleLibDirName
+_XlcMapOSLocaleName
+_XlcNCompareISOLatin1
+_XlcOpenConverter
+_XlcParseCharSet
+_XlcParse_scopemaps
+_XlcPublicMethods
+_XlcRemoveLoader
+_XlcResetConverter
+_XlcResolveI18NPath
+_XlcResolveLocaleName
+_XlcSetConverter
+_XlcSetValues
+_XlcUtf8Loader
+_XlcVaToArgList
+_XlcValidModSyntax
+_Xlcmbstoutf8
+_Xlcmbstowcs
+_Xlcmbtowc
+_Xlcwcstombs
+_Xlcwctomb
+_XmbDefaultDrawImageString
+_XmbDefaultDrawString
+_XmbDefaultTextEscapement
+_XmbDefaultTextExtents
+_XmbDefaultTextPerCharExtents
+_XmbGenericDrawImageString
+_XmbGenericDrawString
+_XmbGenericTextEscapement
+_XmbGenericTextExtents
+_XmbGenericTextPerCharExtents
+_XmbTextListToTextProperty
+_XmbTextPropertyToTextList
+_Xmblen
+_Xmbstoutf8
+_Xmbstowcs
+_Xmbtowc
+_XomConvert
+_XomGenericDrawString
+_XomGenericOpenOM
+_XomGenericTextExtents
+_XomGetFontDataFromFontSet
+_XomInitConverter
+_XrmDefaultInitParseInfo
+_XrmInitParseInfo
+_XrmInternalStringToQuark
+_Xthread_self_fn
+_Xutf8DefaultDrawImageString
+_Xutf8DefaultDrawString
+_Xutf8DefaultTextEscapement
+_Xutf8DefaultTextExtents
+_Xutf8DefaultTextPerCharExtents
+_Xutf8GenericDrawImageString
+_Xutf8GenericDrawString
+_Xutf8GenericTextEscapement
+_Xutf8GenericTextExtents
+_Xutf8GenericTextPerCharExtents
+_Xutf8TextListToTextProperty
+_Xutf8TextPropertyToTextList
+_XwcDefaultDrawImageString
+_XwcDefaultDrawString
+_XwcDefaultTextEscapement
+_XwcDefaultTextExtents
+_XwcDefaultTextPerCharExtents
+_XwcFreeStringList
+_XwcGenericDrawImageString
+_XwcGenericDrawString
+_XwcGenericTextEscapement
+_XwcGenericTextExtents
+_XwcGenericTextPerCharExtents
+_XwcTextListToTextProperty
+_XwcTextPropertyToTextList
+_Xwcscmp
+_Xwcscpy
+_Xwcslen
+_Xwcsncmp
+_Xwcsncpy
+_Xwcstombs
+_Xwctomb
+_qfree
+read_EncodingInfo
+xlocaledir
diff --git a/doc/nxagent/README.keystrokes b/doc/nxagent/README.keystrokes
new file mode 100644
index 000000000..3d55f5096
--- /dev/null
+++ b/doc/nxagent/README.keystrokes
@@ -0,0 +1,113 @@
+Configurable keybindings in nxagent
+
+Keybindings in the redistributed x2go version of nxagent can be configured
+by the user. This is done via a configuration file.
+
+File location
+-------------
+
+nxagent parses the first available configuration file and ignores all others.
+
+If nxagent is called without branding, it searches:
+- in the location given by the '-keystrokefile' command line parameter
+- in the location given by the NXAGENT_KEYSTROKEFILE environment variable
+- in ~/.nx/config/keystrokes.cfg
+- in /etc/nxagent/keystrokes.cfg
+
+If nxagent is called with X2Go branding (i.e., as x2goagent), it searches:
+- in the location given by the '-keystrokefile' command line parameter
+- in the location given by the X2GO_KEYSTROKEFILE environment variable
+- in ~/.x2go/config/keystrokes.cfg
+- in /etc/x2go/keystrokes.cfg
+
+If none of these files are accessible, the default configuration is used which
+is the same as the old, traditional nxagent keybindings.
+
+File format
+-----------
+
+The configuration file is XML with the following format:
+
+<!DOCTYPE NXKeystroke>
+<keystrokes>
+<keystroke action="fullscreen" AltMeta="1" Control="1" key="b" />
+<keystroke action="minimize" AltMeta="1" Control="1" key="space" />
+<keystroke action="minimize" key="Escape" Shift="1" />
+<keystroke action="close_session" key="F7" />
+<keystroke action="fullscreen" key="F7" Mod1="1" />
+<keystroke action="fullscreen" key="F6" Mod1="1" />
+<keystroke action="force_synchronization" key="f" />
+<keystroke action="fullscreen" key="space" Mod1="0" Mod2="0" Control="0" Shift="0" AltMeta="0" />
+</keystrokes>
+
+Each 'action' defines an action to be executed when receiving that
+keystroke. A list of possible actions is given below. Some of those
+actions are only available with debug builds of nxagent.
+
+Keys are given as a combination of 'key' and (optionally) a number of
+modifiers. The key attribute is evaluated into a X11 key via the usual
+XStringToKeysym function. A list of possible keys can be found in
+/usr/include/X11/keysymdef.h, the names are specified without the
+leading 'XK_'. Evaluation is case-sensitive, so, 'space' and 'Escape'
+will work while 'Space' and 'escape' won't.
+
+Modifiers are given as boolean attributes, possible modifiers are
+Mod1, Mod2, Mod3, Mod4, Mod5, Control, Shift, Lock. Sensible
+combinations strongly depend on your keyboard configuration, but
+usually you will need Mod1 and Control. Boolean in this context means
+'0', 'false' and an unspecified attribute are false, anything else is
+considered true.
+
+Everything in this file is case-sensitive. Unknown lines are ignored.
+Keybindings are evaluated from top to bottom, so if a keybinding
+matches, other keybindings further down will be ignored. The contents
+of the file replaces the default keybindings, and only one file is
+read, no merging between different configuration files is done. This
+also means that an empty or invalid configuration file deactivates all
+keybindings.
+
+If an attribute occurs more than once in a line the last one wins.
+
+List of possible 'action' attributes:
+-------------------------------------
+
+close_session
+ This terminates the session.
+
+fullscreen
+ Switches the client window into or out of fullscreen mode, using
+ only the current head.
+
+switch_all_screens
+ Switches the client window into or out of fullscreen mode, using all
+ available heads.
+
+minimize
+ This will minimize the client window (even for fullscreen sessions).
+
+resize
+ This action switches between the auto-resize (default) and viewport
+ mode. In viewport mode the xserver screen size stays static even
+ if the nxagent window is resized. You will possibly only see a part of
+ the screen and can scroll around using the following actions:
+viewport_move_left/up/right/down
+ Moves the viewport left/up/right/down by the width resp. height of
+ the visible area.
+viewport_scroll_left/up/right/down
+ Scrolls the viewport left/up/right/down with increasing speed
+ (maximum step size is 200px).
+
+defer
+ Activates/deactivates deferred screen updates.
+
+ignore
+ Ignores the following keystroke, nothing will happen when this
+ keystroke is pressed.
+
+reread_keystrokes
+ Forces nxagent to re-read the keystroke configuration. Useful to
+ add/change keystrokes to a running session.
+
+force_synchronization
+ Forces immediate drawing of elements to be synchronized which can
+ fix some visual bugs.
diff --git a/doc/nxagent/README.keystrokes.debug b/doc/nxagent/README.keystrokes.debug
new file mode 100644
index 000000000..85ec2613a
--- /dev/null
+++ b/doc/nxagent/README.keystrokes.debug
@@ -0,0 +1,27 @@
+Configurable keybindings for debugging nxagent
+
+Some keystrokes are only available in special debug builds of nxagent
+and will be ignored otherwise. These are
+
+debug_tree
+ Show the window trees of both internal and external
+ windows. Included if DEBUG_TREE is defined.
+
+regions_on_screen
+ Make corrupted regions visible. Included if DUMP is defined.
+
+test_input
+ Activate/deactive input device debugging. Included if NX_DEBUG_INPUT
+ is defined.
+
+deactivate_input_devices_grab
+ Release grab of input devices. Included if NX_DEBUG_INPUT is
+ defined.
+
+They can be configured by adding these lines to keystrokes.cfg, below
+keystrokes represent the default:
+
+<keystroke action="debug_tree" Control="1" AltMeta="1" key="q" />
+<keystroke action="regions_on_screen" Control="1" AltMeta="1" key="a" />
+<keystroke action="test_input" Control="1" AltMeta="1" key="x" />
+<keystroke action="deactivate_input_devices_grab" Control="1" AltMeta="1" key="y" />
diff --git a/doc/nxcomp/DXPC_re-licensed_debug_784565.mbox b/doc/nxcomp/DXPC_re-licensed_debug_784565.mbox
new file mode 100644
index 000000000..be813246c
--- /dev/null
+++ b/doc/nxcomp/DXPC_re-licensed_debug_784565.mbox
@@ -0,0 +1,3769 @@
+From invernomuto@paranoici.org Wed May 06 17:36:12 2015
+Received: (at submit) by bugs.debian.org; 6 May 2015 17:36:12 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_PACKAGE,SPF_HELO_PASS,SPF_PASS,
+ XMAILER_REPORTBUG autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 79; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*M:reportbug, 0.000-+--H*MI:reportbug,
+ 0.000-+--H*x:reportbug, 0.000-+--H*UA:reportbug, 0.000-+--H*x:6.6.3
+Return-path: <invernomuto@paranoici.org>
+Received: from perdizione.investici.org ([94.23.50.208])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1Yq3Ex-0001dB-Ks
+ for submit@bugs.debian.org; Wed, 06 May 2015 17:36:11 +0000
+Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 3987C120F77;
+ Wed, 6 May 2015 17:36:07 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org;
+ s=stigmate; t=1430933767;
+ bh=QAdaIheSnzoHI301+0HPUrAK62wjbKWg7iWEzGzlOTs=;
+ h=From:To:Subject:Date;
+ b=X/2YGWFWL2KRAVqONR2Q6Q6HuMii+1WfGCbSpf8XvQesaf7qWlvY2u1IVKgKVpN2m
+ Baq+3OrQ1adlmdHQQJm7tLfv37vRZVNOUpP3lyKQX4v3B/Gos63+1GqfyJ7qGkvQha
+ 4qwytZrPI20VmUswHf7qhgSGIVQmy0COEZZX0PF8=
+Received: from frx by homebrew with local (Exim 4.85)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1Yq3EK-0001ye-Bx; Wed, 06 May 2015 19:35:32 +0200
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+From: "Francesco Poli \(wintermute\)" <invernomuto@paranoici.org>
+To: Debian Bug Tracking System <submit@bugs.debian.org>
+Subject: nx-libs-lite: parts are derived from non-free code
+Message-ID: <20150506173532.7531.31389.reportbug@homebrew>
+X-Mailer: reportbug 6.6.3
+Date: Wed, 06 May 2015 19:35:32 +0200
+Delivered-To: submit@bugs.debian.org
+
+Package: nx-libs-lite
+Version: 3.5.0.27-1
+Severity: serious
+Justification: Policy 2.2.1
+
+Hello and thanks for maintaining this package in Debian!
+
+I noticed that the debian/copyright states:
+
+[...]
+| Parts of this software are derived from DXPC project. These copyright
+| notices apply to original DXPC code:
+|
+| Redistribution and use in source and binary forms are permitted provided
+| that the above copyright notice and this paragraph are duplicated in all
+| such forms.
+|
+| THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+| WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+| MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+|
+| Copyright (c) 1995,1996 Brian Pane
+| Copyright (c) 1996,1997 Zachary Vonler and Brian Pane
+| Copyright (c) 1999 Kevin Vigor and Brian Pane
+| Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane
+[...]
+
+This license lacks the permission to modify the DXPC code.
+Hence, the original DXPC code does not appear to comply with the
+DFSG. And the nx-libs-lite is in part derived from DXPC code.
+
+This basically means that nx-libs-lite includes parts which are
+non-free (as they are derived from non-modifiable code) and
+are also possibly legally undistributable (as they are non-modifiable,
+but actually modified). The combination with the rest of nx-libs-lite
+(which is GPL-licensed) may also be legally undistributable (since
+the license with no permission to modify is GPL-incompatible).
+
+
+If there's anything I misunderstood, please clarify.
+
+Otherwise, please address this issue as soon as possible.
+The copyright owners for the original DXPC code should be
+contacted and persuaded to re-license under GPL-compatible
+terms.
+
+Thanks for your time.
+Bye.
+
+
+
+From mike.gabriel@das-netzwerkteam.de Mon May 11 09:07:54 2015
+Received: (at 784565) by bugs.debian.org; 11 May 2015 09:07:54 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 203; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1Yrjgn-0001o6-MP
+ for 784565@bugs.debian.org; Mon, 11 May 2015 09:07:54 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 85F37E4B;
+ Mon, 11 May 2015 11:07:49 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id F1CFF3C20D;
+ Mon, 11 May 2015 11:07:48 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id wKYnujH8-HJ8; Mon, 11 May 2015 11:07:48 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 960E33C18A;
+ Mon, 11 May 2015 11:07:48 +0200 (CEST)
+Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
+ [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Mon, 11 May 2015 09:07:48 +0000
+Date: Mon, 11 May 2015 09:07:48 +0000
+Message-ID: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: "Francesco Poli (wintermute)" <invernomuto@paranoici.org>,
+ 784565@bugs.debian.org
+Cc: x2go-dev@lists.x2go.org, Nito Martinez <nito.martinez@qindel.com>,
+ opensource@gznianguan.com, dktrkranz@debian.org
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 178.62.101.154
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_ALb-1vQm6P3YAYx12TU2SQ1";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_ALb-1vQm6P3YAYx12TU2SQ1
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Hi Francesco,
+Cc:ing a couple of people/groups being affected by the below.
+
+On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote:
+
+> Package: nx-libs-lite
+> Version: 3.5.0.27-1
+> Severity: serious
+> Justification: Policy 2.2.1
+>
+> Hello and thanks for maintaining this package in Debian!
+>
+> I noticed that the debian/copyright states:
+>
+> [...]
+> | Parts of this software are derived from DXPC project. These copyright
+> | notices apply to original DXPC code:
+> |
+> | Redistribution and use in source and binary forms are permitted prov=
+ided
+> | that the above copyright notice and this paragraph are duplicated in=
+ all
+> | such forms.
+> |
+> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI=
+ED
+> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+> |
+> | Copyright (c) 1995,1996 Brian Pane
+> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane
+> | Copyright (c) 1999 Kevin Vigor and Brian Pane
+> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane
+> [...]
+>
+> This license lacks the permission to modify the DXPC code.
+> Hence, the original DXPC code does not appear to comply with the
+> DFSG. And the nx-libs-lite is in part derived from DXPC code.
+>
+> This basically means that nx-libs-lite includes parts which are
+> non-free (as they are derived from non-modifiable code) and
+> are also possibly legally undistributable (as they are non-modifiable,
+> but actually modified). The combination with the rest of nx-libs-lite
+> (which is GPL-licensed) may also be legally undistributable (since
+> the license with no permission to modify is GPL-incompatible).
+>
+>
+> If there's anything I misunderstood, please clarify.
+>
+> Otherwise, please address this issue as soon as possible.
+> The copyright owners for the original DXPC code should be
+> contacted and persuaded to re-license under GPL-compatible
+> terms.
+>
+> Thanks for your time.
+> Bye.
+
+I/we will investigate this asap. Thanks for bringing this up.
+
+Greets,
+Mike
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_ALb-1vQm6P3YAYx12TU2SQ1
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVUHFkAAoJEJr0azAldxsxbNYP/jqxwacIBSYlAhaZEf62JFtt
+ObBSEqUQfjljkolnzeaf2K4lBT6dl1x9VxGvIM5S8y9H/qpbFW+XWNHIR1BpdAsw
+TgKuqb6giM+28V9pMaHuqwPwMQ7YnFsfSKf/YCEs0AvJJKsf5jSUbeHAJ/RHwC4Z
+iGOj/KRqQ3tqIZJbzV2TCMNYnPm4sttcvKcRIOnBLDEVn1CRhlYX93v/pP87iPok
+wvvnbPpM+D2oq1JjS6mR2JbVHspc9/ZGq5I100Cdo5r3Y3upunNyG4IRCL0ttBzg
+nRjEiktViU/hhBB2xjYRaDsEpRFSsOeItLWss2PNYER2uIYuimvUsJzhtj7IwsV8
+4J8wlvn0uRZRiQwSWI/UaL1r1eqI4AlMA4hzDnWR7cBB4nTNE6YWzTpYYhsqNVfJ
+jURTKIwGzDVVcpU5UZZhEtPcD5utkd8eYn4fA68pvkje3OFpLjfQnFWUcjIn5ywb
+mejuW08cnsdfB0he+NTFXpK4p4wiu92pqul/EqPKW3Dm1w7FZXPHpIkN6VQ03LdY
+kSXOOpITg8cHESsHlvyKIZITaLDrNAPB4RHkRxyWhRpZWgEM35FasE6hIRTbszQ9
+jpuXcrG11L7HbITi599U8ZAo4qK9OgWfzJEsBdQKXBHEqCjiv4GvdXvgJyR2Eukp
+OIldtig78B5JgGKDLKjY
+=G+R6
+-----END PGP SIGNATURE-----
+
+--=_ALb-1vQm6P3YAYx12TU2SQ1--
+
+
+
+
+From X2Go-ML-1@baur-itcs.de Mon May 11 09:21:13 2015
+Received: (at 784565) by bugs.debian.org; 11 May 2015 09:21:13 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-9.4 required=4.0 tests=BAYES_00,DIGITS_LETTERS,
+ FOURLA,FVGT_m_MULTI_ODD,HAS_BUG_NUMBER,MONEY,PGPSIGNATURE,RCVD_IN_DNSWL_NONE,
+ RCVD_IN_MSPIKE_H2,STOCKLIKE autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 67; hammy, 149; neutral, 240; spammy,
+ 1. spammytokens:0.997-1--jjng hammytokens:0.000-+--sk:iqecbae,
+ 0.000-+--sk:iQEcBAE, 0.000-+--sha256, 0.000-+--SHA256, 0.000-+--H*UA:31.6.0
+Return-path: <X2Go-ML-1@baur-itcs.de>
+Received: from mout.kundenserver.de ([212.227.17.10])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <X2Go-ML-1@baur-itcs.de>)
+ id 1Yrjtg-0003AA-Jy
+ for 784565@bugs.debian.org; Mon, 11 May 2015 09:21:13 +0000
+Received: from [192.168.0.171] ([78.43.125.82]) by mrelayeu.kundenserver.de
+ (mreue102) with ESMTPSA (Nemesis) id 0MBke7-1Z2Qat2SRz-00AqUz; Mon, 11 May
+ 2015 11:20:48 +0200
+Message-ID: <5550746E.1040707@baur-itcs.de>
+Date: Mon, 11 May 2015 11:20:46 +0200
+From: Stefan Baur <X2Go-ML-1@baur-itcs.de>
+User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0
+MIME-Version: 1.0
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>,
+ "Francesco Poli (wintermute)" <invernomuto@paranoici.org>,
+ 784565@bugs.debian.org
+CC: opensource@gznianguan.com, Nito Martinez <nito.martinez@qindel.com>,
+ dktrkranz@debian.org, x2go-dev@lists.x2go.org
+Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are
+ derived from non-free code
+References: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de>
+In-Reply-To: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 8bit
+X-Provags-ID: V03:K0:1hGpzbQ6YusgDW3LQNBHFEMw92BwlVIDUv6GGAN1bbqSykY6aoQ
+ ekoiYjWtMWz72yWg8Xd5/k/PEjXU7VxzZNBzxoyEx46ughI6kPZG/kS6r+aMsjf3KVXNi4U
+ da367A2ZowOeet1s6/LouBbblzzvjx7LF9SFO2TW4oakOyxhNCWEhVpveTV9FQPnavxZzhL
+ D5GN1YjxQGdnacFHIIuSQ==
+X-UI-Out-Filterresults: notjunk:1;
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+hi everyone,
+
+looking at the current homepage of DXPC, the following can be found in
+their changelog http://www.vigor.nu/dxpc/CHANGES:
+
+
+3.8.1 Release:
+
+[...]
+
+Changed license to BSD license.
+
+- -Stefan
+
+Am 11.05.2015 um 11:07 schrieb Mike Gabriel:
+> Hi Francesco, Cc:ing a couple of people/groups being affected by
+> the below.
+>
+> On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute)
+> wrote:
+>
+>> Package: nx-libs-lite Version: 3.5.0.27-1 Severity: serious
+>> Justification: Policy 2.2.1
+>>
+>> Hello and thanks for maintaining this package in Debian!
+>>
+>> I noticed that the debian/copyright states:
+>>
+>> [...] | Parts of this software are derived from DXPC project.
+>> These copyright | notices apply to original DXPC code: | |
+>> Redistribution and use in source and binary forms are permitted
+>> provided | that the above copyright notice and this paragraph
+>> are duplicated in all | such forms. | | THIS SOFTWARE IS
+>> PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED |
+>> WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES
+>> OF | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
+>> Copyright (c) 1995,1996 Brian Pane | Copyright (c) 1996,1997
+>> Zachary Vonler and Brian Pane | Copyright (c) 1999 Kevin Vigor
+>> and Brian Pane | Copyright (c) 2000,2001 Gian Filippo Pinzari
+>> and Brian Pane [...]
+>>
+>> This license lacks the permission to modify the DXPC code. Hence,
+>> the original DXPC code does not appear to comply with the DFSG.
+>> And the nx-libs-lite is in part derived from DXPC code.
+>>
+>> This basically means that nx-libs-lite includes parts which are
+>> non-free (as they are derived from non-modifiable code) and are
+>> also possibly legally undistributable (as they are
+>> non-modifiable, but actually modified). The combination with the
+>> rest of nx-libs-lite (which is GPL-licensed) may also be legally
+>> undistributable (since the license with no permission to modify
+>> is GPL-incompatible).
+>>
+>>
+>> If there's anything I misunderstood, please clarify.
+>>
+>> Otherwise, please address this issue as soon as possible. The
+>> copyright owners for the original DXPC code should be contacted
+>> and persuaded to re-license under GPL-compatible terms.
+>>
+>> Thanks for your time. Bye.
+>
+> I/we will investigate this asap. Thanks for bringing this up.
+>
+> Greets, Mike
+>
+>
+> _______________________________________________ x2go-dev mailing
+> list x2go-dev@lists.x2go.org
+> http://lists.x2go.org/listinfo/x2go-dev
+>
+
+
+- --
+BAUR-ITCS UG (haftungsbeschränkt)
+Geschäftsführer: Stefan Baur
+Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364
+Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQEcBAEBCAAGBQJVUHRuAAoJEG7d9BjNvlEZsCYH/i0GArfIg0xNQ91srhMtMxVf
+NcaQ5uOJLLZ+e0WOcRMm5Kprg9f6uKQNFRo1dv9NCFNxjrpdR/5/LMmeSYxafIQA
+beoYbnuMMRBvcjoUN5ScGD/jjng/9VCiwviBVjUc6AhDebGjVone2OtaIXPoMELI
+ClKnDShC41qQpSUgEESUYHiIIptkkmSrIJS6Ostsby5rhT1mApv7ulBqVvADUKCX
+OtNZmG+O6Bvur63G2fBTrdQwZAed0+Q6/XlhfOkf5QNG4I9fd5KlrMDpSmO8w7Cm
+h4rVnveLS5+0afZXs9sImhNW4I7Ah8zh5sAUFNCGXEuO60XRRysUO4i1WjRgnZw=
+=sgsA
+-----END PGP SIGNATURE-----
+
+
+
+From mike.gabriel@das-netzwerkteam.de Mon May 11 09:26:40 2015
+Received: (at 784565) by bugs.debian.org; 11 May 2015 09:26:40 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 246; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1Yrjyx-0003n8-Sv
+ for 784565@bugs.debian.org; Mon, 11 May 2015 09:26:40 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B938DE53;
+ Mon, 11 May 2015 11:26:37 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 564F73C20D;
+ Mon, 11 May 2015 11:26:37 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id zA86M1U+gj03; Mon, 11 May 2015 11:26:37 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id E81223BF5A;
+ Mon, 11 May 2015 11:26:36 +0200 (CEST)
+Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
+ [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Mon, 11 May 2015 09:26:36 +0000
+Date: Mon, 11 May 2015 09:26:36 +0000
+Message-ID: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: "Francesco Poli (wintermute)" <invernomuto@paranoici.org>,
+ 784565@bugs.debian.org
+Cc: x2go-dev@lists.x2go.org, nito.martinez@qindel.com,
+ opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 178.62.101.154
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_8dL5yJABYXdTfUqhzQkNVg1";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_8dL5yJABYXdTfUqhzQkNVg1
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Hi Francesco,
+
+On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote:
+
+> Package: nx-libs-lite
+> Version: 3.5.0.27-1
+> Severity: serious
+> Justification: Policy 2.2.1
+>
+> Hello and thanks for maintaining this package in Debian!
+>
+> I noticed that the debian/copyright states:
+>
+> [...]
+> | Parts of this software are derived from DXPC project. These copyright
+> | notices apply to original DXPC code:
+> |
+> | Redistribution and use in source and binary forms are permitted prov=
+ided
+> | that the above copyright notice and this paragraph are duplicated in=
+ all
+> | such forms.
+> |
+> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI=
+ED
+> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+> |
+> | Copyright (c) 1995,1996 Brian Pane
+> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane
+> | Copyright (c) 1999 Kevin Vigor and Brian Pane
+> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane
+> [...]
+>
+> This license lacks the permission to modify the DXPC code.
+> Hence, the original DXPC code does not appear to comply with the
+> DFSG. And the nx-libs-lite is in part derived from DXPC code.
+>
+> This basically means that nx-libs-lite includes parts which are
+> non-free (as they are derived from non-modifiable code) and
+> are also possibly legally undistributable (as they are non-modifiable,
+> but actually modified). The combination with the rest of nx-libs-lite
+> (which is GPL-licensed) may also be legally undistributable (since
+> the license with no permission to modify is GPL-incompatible).
+>
+>
+> If there's anything I misunderstood, please clarify.
+>
+> Otherwise, please address this issue as soon as possible.
+> The copyright owners for the original DXPC code should be
+> contacted and persuaded to re-license under GPL-compatible
+> terms.
+>
+> Thanks for your time.
+> Bye.
+
+Please follow-up with reading [1].
+
+As it seems, dxpc has been long ago relicensed to BSD-2-clause (for=20=20
+v3.8.1=20in/around 2002).
+
+I have no exact clue, if NoMachine forked prior to that (if they quote=20=
+=20
+the=20old licensing terms, then probably they did).
+
+However, how do you see the situation considering that upstream=20=20
+changed=20to BSD-2-clause a long time ago. What approach do you propose=20=
+=20
+for=20nx-libs-lite to get the issue fully fixed?
+
+Mike
+
+[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028
+
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_8dL5yJABYXdTfUqhzQkNVg1
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVUHXMAAoJEJr0azAldxsxls4P/RyFv6ghemJhfrHNbAUEDmNz
+kyY2Q4Jt6pIDXX3U3yThYCeyG1nVAwKJI2B/q7q/YWWdzea8RzTTXrj3DubYplOZ
+PatD30FhlKdL+rsohmLFrA5dHVcwFbJA4GqrR2Y8y6NSLEtifYE4EDIDKLqvX6Dy
+msvHyLl+3AXg2gR4Wmu9lOLC8MrPA3A7nwlw/wCa6kwf3i6FUsAB2nzUsj3yUX1f
+4iXzcZhjGCJli9otPLlYFjPuc0HjwBgoOx5tEOL1hgVYP+yiQCw24LOKwHTnDogZ
+ONio1VdS+VPUbhVTlBfYD29lSDO8pgBGk43325b7Bmo56Ica+HCr8TznMVASidvJ
+dbAXZQOMuHxBofP9sm89q2lIXjPmJFWspG76OEM8dAIMKo87gQNuOTNPuOK0Zj8T
+Ua+40fIc5/C7CyRgGO8wqb6dYjD4Q6HxbjSQJrlxsHdjKIozv+MXGV+if/bKSXM8
+tIAh9JzcwgYtRVlVQXCmpk+yP9DntWFs5WeOEGBqKZw+was5OSXSlpjukNn9us2a
+bWj0E84zMlIu61KVZ8ot14OMIzgUxzymIt/LzWHKiiSezb20S22LJGBaKLxbqplp
+9Gi8g9rEhjn5Pgpt9B3MlIWQTKhpAa71GCD9Okt9vhPsBiKE57fSjCYgQR83lhDy
+kbLoUbByjixBA+TXUYM8
+=NW/2
+-----END PGP SIGNATURE-----
+
+--=_8dL5yJABYXdTfUqhzQkNVg1--
+
+
+
+
+From invernomuto@paranoici.org Mon May 11 19:37:54 2015
+Received: (at 784565) by bugs.debian.org; 11 May 2015 19:37:54 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.5 required=4.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,
+ SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 9; hammy, 150; neutral, 119; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-,
+ 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH,
+ 0.000-+--H*c:pgp-signature
+Return-path: <invernomuto@paranoici.org>
+Received: from perdizione.investici.org ([94.23.50.208])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1YrtWT-0004t9-Ty
+ for 784565@bugs.debian.org; Mon, 11 May 2015 19:37:54 +0000
+Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9C4DF120408;
+ Mon, 11 May 2015 19:37:46 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org;
+ s=stigmate; t=1431373066;
+ bh=vGWv2ZFJgWpWShHOYFcPN0r6i8IFunsxG5IJHqxpdbk=;
+ h=Date:From:To:Cc:Subject:In-Reply-To:References;
+ b=JQRMmMDPSZFkJ21FEn1TdsCco0YtUFBII0CsMLxdl3mxM5SzGN9flVttwlZ+5RrgR
+ a7/u/VUVPzv0ZcdVKwrC+Nq6imwd5hzUj80C+e6KLZQoovz6shmhuIdKtga2OIl7lm
+ cF0ONDqjdq0pI158Ws5hz0MiwJkzF6V5VbIEk3SY=
+Received: from frx by homebrew with local (Exim 4.85)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1YrtVj-0001Cl-NV; Mon, 11 May 2015 21:37:07 +0200
+Date: Mon, 11 May 2015 21:36:59 +0200
+From: Francesco Poli <invernomuto@paranoici.org>
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org,
+ nito.martinez@qindel.com, opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+Message-Id: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+In-Reply-To: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu)
+Mime-Version: 1.0
+Content-Type: multipart/signed; protocol="application/pgp-signature";
+ micalg="PGP-SHA256";
+ boundary="Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH"
+
+--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH
+Content-Type: text/plain; charset=US-ASCII
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote:
+
+[...]
+> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for =20
+> v3.8.1 in/around 2002).
+
+This is great news, indeed!
+
+>=20
+> I have no exact clue, if NoMachine forked prior to that (if they quote =20
+> the old licensing terms, then probably they did).
+
+Yep, it's plausible...
+
+>=20
+> However, how do you see the situation considering that upstream =20
+> changed to BSD-2-clause a long time ago. What approach do you propose =20
+> for nx-libs-lite to get the issue fully fixed?
+
+If the fork has been performed before the DXPC re-licensing (as it's
+likely), I see two possible strategies:
+
+ (A) someone gets in touch with DXPC copyright owners and asks them
+whether the re-licensing may be considered retroactive (applicable to
+older versions of DXPC); in case the answer is negative, DXPC copyright
+owners should be persuaded to make the re-licensing retroactive
+
+ (B) nx-libs-lite upstream developers re-fork from scratch, basing the
+new code on a BSD-licensed version of DXPC (I suspect this may turn out
+to be somewhat painful...)
+
+
+Obviously, the optimal solution is (A). I hope it may work...
+
+Thanks for your time and for your prompt and kind replies.
+
+
+--=20
+ http://www.inventati.org/frx/
+ There's not a second to spare! To the laboratory!
+..................................................... Francesco Poli .
+ GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE
+
+--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH
+Content-Type: application/pgp-signature
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAEBCAAGBQJVUQTgAAoJED4cJ+Efab/+Mx4QAMLmPwqnPYyI0Bl6sZgxP3nA
+Yfrf7m2+swTrNz3M2xNepx1KoylRNlz2DiCuG7QWABNupSK60ACtIuAvWIAPSYNt
+wlHDRGiVrpCKBKzB4N3zjB0MN1VELhdWqrap8Yw5nnwohJ2jXoAUaqorwEba6YBg
+VK1BsGvlqcwSYt8eWt+ugpaRR43DbZTCpAvBn3t9DdYe8LwtlJDTCatbJfovlTJ9
+P19TNbwxiEoj8uWbmpOO/kLvvMed0avTEsvgAROQKF/dnWCnB1dh5QGd06IHdAY7
+KfnoZc4HUM8BB/ylWsaV13Cd8UA/2B2FKp3xbab3ry8gWeMe6dnk/pFa+pv6TGeT
+I+6VxWOMT/hc4AwBOl+R7yqp2AkcNO+KP2o5i04+yENcbgrGxyCQU2aVsHkJsVYi
+N5myXypSZY3tF6TnAm/UYP2GgiMCo0FXptwVoLiGSJkBw0tn13I25pYSqjYZlq4q
+4RQYuTEHEkV16tCdEdy+DSuI0GsABYUkY3a3A3TLj9LjiPPEDwLOxHjZlLbeyXP+
+xtmC3d82YvMmLXUiqItuhiBYjCRFq8piGGCDRX7wp1B+t6xHUcR8UV5O4s554iMX
++r2m1mLzM285PoKwP/Smd6BXU5RfhT4svmxvaMSSvADNo8X4ddNd2Hiq/Gib2ftH
+mYKFpBE7IMwQqfrOpAW5
+=Bt09
+-----END PGP SIGNATURE-----
+
+--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH--
+
+
+
+From mike.gabriel@das-netzwerkteam.de Tue May 12 03:59:27 2015
+Received: (at 784565) by bugs.debian.org; 12 May 2015 03:59:27 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 21; hammy, 150; neutral, 206; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1Ys1Lq-0000j4-Sf
+ for 784565@bugs.debian.org; Tue, 12 May 2015 03:59:27 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B4F9BAA3;
+ Tue, 12 May 2015 05:59:21 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 299233C21D;
+ Tue, 12 May 2015 05:59:21 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id G2j6l6YtFs0q; Tue, 12 May 2015 05:59:21 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id C67023BF5A;
+ Tue, 12 May 2015 05:59:20 +0200 (CEST)
+Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de
+ [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Tue, 12 May 2015 03:59:20 +0000
+Date: Tue, 12 May 2015 03:59:20 +0000
+Message-ID: <20150512035920.Horde.JnI2DWx-AAFvzpbQFqakJw3@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Francesco Poli <invernomuto@paranoici.org>
+Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org,
+ nito.martinez@qindel.com, opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 91.59.146.91
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_kYZkQgyfaSLUTLVIkzgq8w1";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_kYZkQgyfaSLUTLVIkzgq8w1
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Hi Francesco,
+
+On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote:
+
+> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote:
+>
+> [...]
+>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for
+>> v3.8.1 in/around 2002).
+>
+> This is great news, indeed!
+>
+>>
+>> I have no exact clue, if NoMachine forked prior to that (if they quote
+>> the old licensing terms, then probably they did).
+>
+> Yep, it's plausible...
+>
+>>
+>> However, how do you see the situation considering that upstream
+>> changed to BSD-2-clause a long time ago. What approach do you propose
+>> for nx-libs-lite to get the issue fully fixed?
+>
+> If the fork has been performed before the DXPC re-licensing (as it's
+> likely), I see two possible strategies:
+>
+> (A) someone gets in touch with DXPC copyright owners and asks them
+> whether the re-licensing may be considered retroactive (applicable to
+> older versions of DXPC); in case the answer is negative, DXPC copyright
+> owners should be persuaded to make the re-licensing retroactive
+
+This is the way to go, I will pull in Kevin Vigor (the upstream author=20=
+=20
+of=20DXPC) into this thread with my next email.
+
+> (B) nx-libs-lite upstream developers re-fork from scratch, basing the
+> new code on a BSD-licensed version of DXPC (I suspect this may turn out
+> to be somewhat painful...)
+
+Yeah, indeed painful.
+
+> Obviously, the optimal solution is (A). I hope it may work...
+>
+> Thanks for your time and for your prompt and kind replies.
+
+Also, Michael DePaulo, one of the upstream NX maintainers noted that=20=20
+DXPC=20simply used a previous version of the BSD license, see [1]. The=20=
+=20
+weakness=20of that ancient license template is that modification is not=20=
+=20
+explictily=20allowed, but neither forbidden.
+
+I think, regarding the historical usage of the BSD license predecessor=20=
+=20
+and=20the switch to BSD-2-clause should be fine already (I am not a=20=20
+lawyer,=20though). I will contact DXPC upstream nonetheless and ask for=20=
+=20
+a=20statement.
+
+Greets,
+Mike
+
+[1] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license
+
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_kYZkQgyfaSLUTLVIkzgq8w1
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIbBAABAgAGBQJVUXqYAAoJEJr0azAldxsxYVAP+Pg4A2zg6TEs+vk/mknbLwV2
+dOv/tQiarKfb6JJRcm1j6rzGBhGzO4iwj/Uk8wmbFvIJgxs6mM93kfOPa0lJYM1N
+D0YcKPPsHqgxcyVW8pIyawhnW5IsIDSaugjsandx1hbfl+J5SBCAtSovhz5F+Fkf
+fs1wvgYcGKtWGNTxV5Qy48EnzSzAVz2r4GKBYUdRiCNpXtl/M8jJFIfm/cmJ7PJq
+ycY8Diu6x3mVvPdvap/0pOOY0uqg256XX7dcFJUtTNZoai4oGOuwR1o4g9jztyd/
+4JJ2E1MigAjGSYPpTnQGhORA86yDLQrk/NlLG/2/J8meG7Nsky6xmf3zBhuG/0G0
+3TZYQcoFrFS3EWQs0uKiGKGylchODCfXHZgF0y5NT5iqr4DMT51AlUeQl3MWhxf8
+j8OMjK86jsPMrSjL0l4uYbs+znMdlVpgjBSYsKoXg3tIc3WJpj77qyPUbfwO8hys
+5Q2j4lDaGV5NAnSmZ//p9lPwRu8oAMwSkrMkRTaJwLVhcmDzgoujZEpEPj64lIEy
+HD3p/5dSJF+RsYT6286JkWAZm+XvXeFpEqGZ7xAVsrYSY1qFm3g0se1oHxxcVWyN
+PEsQBOt8WXgYmtz7RLaBDbBQVMmeRMxbPCkC1xCHCU+Vq3y9dW/3TyOW4Oz1YoZR
+3YATO+YehUKVdM5teyg=
+=884K
+-----END PGP SIGNATURE-----
+
+--=_kYZkQgyfaSLUTLVIkzgq8w1--
+
+
+
+
+From mike.gabriel@das-netzwerkteam.de Tue May 12 04:46:43 2015
+Received: (at 784565) by bugs.debian.org; 12 May 2015 04:46:44 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 27; hammy, 149; neutral, 375; spammy,
+ 1. spammytokens:0.998-1--arctica hammytokens:0.000-+--IIRC,
+ 0.000-+--H*c:pgp-signature, 0.000-+--H*c:protocol, 0.000-+--H*c:micalg,
+ 0.000-+--H*c:signed
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1Ys25b-0004lf-4r
+ for 784565@bugs.debian.org; Tue, 12 May 2015 04:46:43 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 6AB7617F5;
+ Tue, 12 May 2015 06:46:40 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 71D923BC0D;
+ Tue, 12 May 2015 06:46:38 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id TYvbPGLabTH7; Tue, 12 May 2015 06:46:38 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 0669F3BA08;
+ Tue, 12 May 2015 06:46:38 +0200 (CEST)
+Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de
+ [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Tue, 12 May 2015 04:46:37 +0000
+Date: Tue, 12 May 2015 04:46:37 +0000
+Message-ID: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Kevin Vigor <kevin@vigor.nu>
+Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org,
+ nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli
+ <invernomuto@paranoici.org>
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 91.59.146.91
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_9zX_XixEpAdR4NT64zJguA1";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_9zX_XixEpAdR4NT64zJguA1
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Dear Kevin,
+
+(I Cc: several people involved in this, also the X2Go development=20=20
+mailing=20list...)
+
+[If you feel unconfortable with discussing the details / the impact of=20=
+=20
+the=20below in public, feel free to answer to me directly first with=20=20
+questions=20and concerns, before answering to all people who are listed=20=
+=20
+in=20Cc:.]
+
+Someone from the Debian legal team recently brought up a license issue=20=
+=20
+discovered=20in nx-libs 3.x series.
+
+TL;DR; Suggested by Francesco Poli from the Debian legal team: """
+(A) someone gets in touch with DXPC copyright owners and asks them
+whether the re-licensing [in 2002] may be considered retroactive=20=20
+(applicable=20to
+older versions of DXPC); in case the answer is negative, DXPC copyright
+owners should be persuaded to make the re-licensing retroactive
+"""
+
+The person contacting you about the above question is me. Mike=20=20
+Gabriel,=20Debian Developer and one of the current upstream maintainers=20=
+=20
+of=20nx-libs 3.x (previously also know as "NX redistributed" for X2Go)=20=
+=20
+[1].
+
+This=20issue requires some time of reading from you and (hopefully) a=20=20
+public=20statement, that the original DXPC code can be considered as=20=20
+BSD-2-clause=20(the current license) also for released versions prior=20=20
+2002=20when the ancient BSD license template [2] was still shipped with=20=
+=20
+DXPC.
+
+For=20a complete follow-up, please check Debian bug #784565 [3].
+
+We are aware that NoMachine forked DXPC at some early stage around the=20=
+=20
+year=202000 and wrote their own commercial product around it. Obviously,=20=
+=20
+this=20fork happened before 2002 (i.e., before DXPC release 3.8.1), as=20=
+=20
+libxcomp3=20in NoMachine's NX ships the previously used BSD license=20=20
+template.=20I am not sure, if that fork was easy for you or actually a=20=
+=20
+nuisance.=20I may only guess at this point. I'd be happy to know more=20=20
+(maybe=20not in this mail thread, though).
+
+NoMachine has stopped publishing NXv3 updates a couple of years ago=20=20
+(2011=20IIRC), now. The maintenance has been moved into the hands of the=20=
+=20
+currently=20available FLOSS projects "X2Go", "Arctica Project" [NEW] and=20=
+=20
+"TheQVD".=20Some of us are running a business model on top of that=20=20
+(consultancy,=20support contracts, feature development contracts), some=20=
+=20
+of=20us spend a lot of their free time on improving / maintaining=20=20
+nx-libs=20(as we call NoMachine's NXv3 at the moment).
+
+To outline the impact of my mail clearly: If you say that it was not=20=20
+legal=20by NoMachine to fork DXPC at the given time (before 2002), then=20=
+=20
+all=20FLOSS remote desktop / remote application would be in real=20=20
+trouble,=20because then the core component of their software projects=20=20
+could=20not be considered as free (as in DFSG, Debian free software=20=20
+guidelines[4])=20anymore. Also the code changes originally performed by=20=
+=20
+NoMachine=20might have been illegal in the first place. All current=20=20
+maintenance=20activities and also planned future development on nx-libs=20=
+=20
+would=20become questionable.
+
+Thus, I hope you can chime in on this: Dear developers of nx-libs,=20=20
+please=20assume the BSD-2-license as retroactive and applicable to DXPC=20=
+=20
+version=20earlier than 3.8.1. As the copyright holder, I agree with=20=20
+modifications=20of code bases that originate before the change to=20=20
+BSD-2-clause=20license got introduced in 3.8.1 of DXPC.
+
+And... I will bring up that question later (but it is burning under my=20=
+=20
+nails)...=20Be sure: The nx-libs maintainers would be happy to have the=20=
+=20
+original=20DXPC author on the nx-libs developer team. But I will bring=20=
+=20
+up=20that question later (when this very issue is settled). ;-)
+
+Greets,
+Mike
+
+[1] https://github.com/ArcticaProject/nx-libs
+[2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license
+[3] http://bugs.debian.org/784565
+[4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines
+
+On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote:
+
+> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote:
+>
+> [...]
+>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for
+>> v3.8.1 in/around 2002).
+>
+> This is great news, indeed!
+>
+>>
+>> I have no exact clue, if NoMachine forked prior to that (if they quote
+>> the old licensing terms, then probably they did).
+>
+> Yep, it's plausible...
+>
+>>
+>> However, how do you see the situation considering that upstream
+>> changed to BSD-2-clause a long time ago. What approach do you propose
+>> for nx-libs-lite to get the issue fully fixed?
+>
+> If the fork has been performed before the DXPC re-licensing (as it's
+> likely), I see two possible strategies:
+>
+> (A) someone gets in touch with DXPC copyright owners and asks them
+> whether the re-licensing may be considered retroactive (applicable to
+> older versions of DXPC); in case the answer is negative, DXPC copyright
+> owners should be persuaded to make the re-licensing retroactive
+>
+> (B) nx-libs-lite upstream developers re-fork from scratch, basing the
+> new code on a BSD-licensed version of DXPC (I suspect this may turn out
+> to be somewhat painful...)
+>
+>
+> Obviously, the optimal solution is (A). I hope it may work...
+>
+> Thanks for your time and for your prompt and kind replies.
+
+
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_9zX_XixEpAdR4NT64zJguA1
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVUYWtAAoJEJr0azAldxsxEMcP/0mjNHW4k/IiNjSbrm1j7pIQ
+k6yVqJ8cMW/71H0/VLuzS6roL02JAXMzToMzAcbPGqeV5rjhLDJNjcOuuADhb8HI
+Izisai5ABzHiclnITalVTsF4i5+MsTXI+6eNez9sv3Es8pwFuLkvAlqKsheO33mP
+dz83ZqDmCGKcCCbZmhbhGHdhScS8GMSyU7cBm6xu0TMh8rOtcECBG/+wfohVeR2I
+vy0GeYR0ZF0yIxcBGXYvjiocStjsxaqnD9QCt8JAfewVO3jY/Ye6DIEI92moS/Nz
+6iTA9GspZyYNqL7QsOraG2HF6TmIfK5xBaUjDrLH+HfKm2K6Dxp0wo6Y6VDY9mIi
+svCFCoIQ3RBihcsOp7k1v1eZl+WJJ2XXilQr3SrtlOiZAK0/FtbkUwhk4DLu5o3R
+CBHwy6F14szo8F4ChFGqqbOlODGJOiCONfOShRZQLgAgHciRirrgTKF4b25cspNU
+v7ag47K4WN3YNtkA5DO5Bj2NKAP8oWyvlTpO0uIuUZo/pj+7sHnWG8QSDJiyunVt
+3VxMLM4h3C02k+EtR2uvtKKqVFf+JgiwRGDhFx2ldUwWFg0+3IeWKuuTxRt6NcR+
+ZdDN2tR0PWpe4v+jsUqSD3YJNRoK1oyj9kMYriTkHTvhr/XcKr5KYNsWMC6nvqps
+JDhKCpypB1iR9N13NpeX
+=HDe/
+-----END PGP SIGNATURE-----
+
+--=_9zX_XixEpAdR4NT64zJguA1--
+
+
+
+
+From kevin@vigor.nu Tue May 12 15:07:38 2015
+Received: (at 784565) by bugs.debian.org; 12 May 2015 15:07:38 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,MDO_CABLE_TV3,SPF_PASS autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 34; hammy, 150; neutral, 395; spammy,
+ 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*f:sk:2015050,
+ 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0, 0.000-+--H*u:x86_64
+Return-path: <kevin@vigor.nu>
+Received: from gateway30.websitewelcome.com ([192.185.184.48])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YsBmT-0007o6-Qg
+ for 784565@bugs.debian.org; Tue, 12 May 2015 15:07:38 +0000
+Received: by gateway30.websitewelcome.com (Postfix, from userid 500)
+ id 69AEB573DA20; Tue, 12 May 2015 09:55:02 -0500 (CDT)
+Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69])
+ by gateway30.websitewelcome.com (Postfix) with ESMTP id 677E2573DA04
+ for <784565@bugs.debian.org>; Tue, 12 May 2015 09:55:02 -0500 (CDT)
+Received: from [63.158.132.10] (port=46206 helo=[10.50.3.84])
+ by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128)
+ (Exim 4.82)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YsBaH-0003xr-Ii; Tue, 12 May 2015 09:55:01 -0500
+Message-ID: <55521444.9090407@vigor.nu>
+Date: Tue, 12 May 2015 08:55:00 -0600
+From: Kevin Vigor <kevin@vigor.nu>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
+MIME-Version: 1.0
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+CC: 784565@bugs.debian.org, x2go-dev@lists.x2go.org,
+ nito.martinez@qindel.com, opensource@gznianguan.com,
+ Francesco Poli <invernomuto@paranoici.org>
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+In-Reply-To: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+Content-Type: text/plain; charset=windows-1252; format=flowed
+Content-Transfer-Encoding: 7bit
+X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
+X-AntiAbuse: Primary Hostname - gator4058.hostgator.com
+X-AntiAbuse: Original Domain - bugs.debian.org
+X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
+X-AntiAbuse: Sender Address Domain - vigor.nu
+X-BWhitelist: no
+X-Source-IP: 63.158.132.10
+X-Exim-ID: 1YsBaH-0003xr-Ii
+X-Source:
+X-Source-Args:
+X-Source-Dir:
+X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:46206
+X-Source-Auth: kevin@vigor.nu
+X-Email-Count: 2
+X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ==
+X-Greylist: delayed 379 seconds by postgrey-1.34 at buxtehude; Tue, 12 May 2015 15:07:37 UTC
+
+Hi Mike, et al,
+
+ I am not the original author of dxpc, that being Brian Pane. However, I took over maintenance circa 1999 and am still the primary maintainer (though the project has effectively been dead for most of a decade now).
+
+ As you are aware, when I inherited the code, it was licensed under a variant of the BSD license that did not include the 'with modification' clause. To the best of my recollection, somebody from the FSF contacted me circa 2001 regarding this and as a result, subsequent releases were done under a standard 2-clause BSD license with the modification clause. Again, to the best of my recollection, I contacted Brian about this change and he offered no objection.
+
+ Further, I recall distinctly that NoMachine contacted me and explicitly asked permission before including DXPC code in NX, which I happily granted with no new conditions beyond the BSD license already in play.
+
+ It is possible, though by no means certain, that I could dig up ancient email to corroborate this account if necessary. However, I am more than willing to publicly state that I believe NoMachine's use of DXPC code to be both legal and ethical, and that my intent when changing the license to 2-clause BSD was simply to clarity the existing intent and that it ought therefore be considered retroactive.
+
+ Yours,
+ Kevin Vigor
+
+On 05/11/15 22:46, Mike Gabriel wrote:
+> Dear Kevin,
+>
+> (I Cc: several people involved in this, also the X2Go development mailing list...)
+>
+> [If you feel unconfortable with discussing the details / the impact of the below in public, feel free to answer to me directly first with questions and concerns, before answering to all people who are listed in Cc:.]
+>
+> Someone from the Debian legal team recently brought up a license issue discovered in nx-libs 3.x series.
+>
+> TL;DR; Suggested by Francesco Poli from the Debian legal team: """
+> (A) someone gets in touch with DXPC copyright owners and asks them
+> whether the re-licensing [in 2002] may be considered retroactive (applicable to
+> older versions of DXPC); in case the answer is negative, DXPC copyright
+> owners should be persuaded to make the re-licensing retroactive
+> """
+>
+> The person contacting you about the above question is me. Mike Gabriel, Debian Developer and one of the current upstream maintainers of nx-libs 3.x (previously also know as "NX redistributed" for X2Go) [1].
+>
+> This issue requires some time of reading from you and (hopefully) a public statement, that the original DXPC code can be considered as BSD-2-clause (the current license) also for released versions prior 2002 when the ancient BSD license template [2] was still shipped with DXPC.
+>
+> For a complete follow-up, please check Debian bug #784565 [3].
+>
+> We are aware that NoMachine forked DXPC at some early stage around the year 2000 and wrote their own commercial product around it. Obviously, this fork happened before 2002 (i.e., before DXPC release 3.8.1), as libxcomp3 in NoMachine's NX ships the previously used BSD license template. I am not sure, if that fork was easy for you or actually a nuisance. I may only guess at this point. I'd be happy to know more (maybe not in this mail thread, though).
+>
+> NoMachine has stopped publishing NXv3 updates a couple of years ago (2011 IIRC), now. The maintenance has been moved into the hands of the currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and "TheQVD". Some of us are running a business model on top of that (consultancy, support contracts, feature development contracts), some of us spend a lot of their free time on improving / maintaining nx-libs (as we call NoMachine's NXv3 at the moment).
+>
+> To outline the impact of my mail clearly: If you say that it was not legal by NoMachine to fork DXPC at the given time (before 2002), then all FLOSS remote desktop / remote application would be in real trouble, because then the core component of their software projects could not be considered as free (as in DFSG, Debian free software guidelines[4]) anymore. Also the code changes originally performed by NoMachine might have been illegal in the first place. All current maintenance activities and also planned future development on nx-libs would become questionable.
+>
+> Thus, I hope you can chime in on this: Dear developers of nx-libs, please assume the BSD-2-license as retroactive and applicable to DXPC version earlier than 3.8.1. As the copyright holder, I agree with modifications of code bases that originate before the change to BSD-2-clause license got introduced in 3.8.1 of DXPC.
+>
+> And... I will bring up that question later (but it is burning under my nails)... Be sure: The nx-libs maintainers would be happy to have the original DXPC author on the nx-libs developer team. But I will bring up that question later (when this very issue is settled). ;-)
+>
+> Greets,
+> Mike
+>
+> [1] https://github.com/ArcticaProject/nx-libs
+> [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license
+> [3] http://bugs.debian.org/784565
+> [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines
+>
+> On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote:
+>
+>> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote:
+>>
+>> [...]
+>>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for
+>>> v3.8.1 in/around 2002).
+>>
+>> This is great news, indeed!
+>>
+>>>
+>>> I have no exact clue, if NoMachine forked prior to that (if they quote
+>>> the old licensing terms, then probably they did).
+>>
+>> Yep, it's plausible...
+>>
+>>>
+>>> However, how do you see the situation considering that upstream
+>>> changed to BSD-2-clause a long time ago. What approach do you propose
+>>> for nx-libs-lite to get the issue fully fixed?
+>>
+>> If the fork has been performed before the DXPC re-licensing (as it's
+>> likely), I see two possible strategies:
+>>
+>> (A) someone gets in touch with DXPC copyright owners and asks them
+>> whether the re-licensing may be considered retroactive (applicable to
+>> older versions of DXPC); in case the answer is negative, DXPC copyright
+>> owners should be persuaded to make the re-licensing retroactive
+>>
+>> (B) nx-libs-lite upstream developers re-fork from scratch, basing the
+>> new code on a BSD-licensed version of DXPC (I suspect this may turn out
+>> to be somewhat painful...)
+>>
+>>
+>> Obviously, the optimal solution is (A). I hope it may work...
+>>
+>> Thanks for your time and for your prompt and kind replies.
+>
+>
+
+
+
+
+From mike.gabriel@das-netzwerkteam.de Tue May 12 15:42:13 2015
+Received: (at 784565) by bugs.debian.org; 12 May 2015 15:42:13 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,MDO_CABLE_TV3,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 28; hammy, 150; neutral, 444; spammy,
+ 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*RU:sk:grimnir,
+ 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98,
+ 0.000-+--H*RU:88.198.48.199
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1YsCJx-0003Fj-12
+ for 784565@bugs.debian.org; Tue, 12 May 2015 15:42:13 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AB2291F6
+ for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 0899C3BFDA
+ for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id tKjFu527nUiq for <784565@bugs.debian.org>;
+ Tue, 12 May 2015 17:42:07 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 558633C022
+ for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 1F4393BFDA
+ for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST)
+Received: from [10.215.43.89] (unknown [46.115.20.43])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 867C23BA87;
+ Tue, 12 May 2015 17:42:02 +0200 (CEST)
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Reply-To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Kevin Vigor <kevin@vigor.nu>
+Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli <invernomuto@paranoici.org>
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+X-Mailer: Modest 3.2
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu>
+In-Reply-To: <55521444.9090407@vigor.nu>
+Content-Type: text/plain; charset=utf-8
+Content-ID: <1431445315.4712.6.camel@Nokia-N900>
+Date: Tue, 12 May 2015 17:41:55 +0200
+Message-Id: <1431445315.4712.7.camel@Nokia-N900>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 8bit
+
+Hi Kevin,
+
+thanks for your feedback. Let us wait for Francesco, our expert on license issues, and see what he thinks about your feedback.
+
+Thank you very much for providing info and sharing pieces of nx-libs's history.
+
+As you sent your reply to the Debian bug tracker already, this will public statement enough, I guess.
+
+Thanks a lot,
+Mike
+
+--
+
+DAS-NETZWERKTEAM
+mike gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976148
+
+GnuPG Key ID 0x25771B13
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+
+----- Original message -----
+> Hi Mike, et al,
+>
+>        I am not the original author of dxpc, that being Brian Pane.
+> However, I took over maintenance circa 1999 and am still the primary
+> maintainer (though the project has effectively been dead for most of a
+> decade now).
+>
+>        As you are aware, when I inherited the code, it was licensed under a
+> variant of the BSD license that did not include the 'with modification'
+> clause. To the best of my recollection, somebody from the FSF contacted
+> me circa 2001 regarding this and as a result, subsequent releases were
+> done under a standard 2-clause BSD license with the modification clause.
+> Again, to the best of my recollection, I contacted Brian about this
+> change and he offered no objection.
+>
+>        Further, I recall distinctly that NoMachine contacted me and
+> explicitly asked permission before including DXPC code in NX, which I
+> happily granted with no new conditions beyond the BSD license already in
+> play.
+>
+>        It is possible, though by no means certain, that I could dig up
+> ancient email to corroborate this account if necessary. However, I am
+> more than willing to publicly state that I believe NoMachine's use of
+> DXPC code to be both legal and ethical, and that my intent when changing
+> the license to 2-clause BSD was simply to clarity the existing intent
+> and that it ought therefore be considered retroactive.
+>
+>        Yours,
+>              Kevin Vigor
+>
+> On 05/11/15 22:46, Mike Gabriel wrote:
+> > Dear Kevin,
+> >
+> > (I Cc: several people involved in this, also the X2Go development
+> > mailing list...)
+> >
+> > [If you feel unconfortable with discussing the details / the impact of
+> > the below in public, feel free to answer to me directly first with
+> > questions and concerns, before answering to all people who are listed
+> > in Cc:.]
+> >
+> > Someone from the Debian legal team recently brought up a license issue
+> > discovered in nx-libs 3.x series.
+> >
+> > TL;DR; Suggested by Francesco Poli from the Debian legal team: """
+> > (A) someone gets in touch with DXPC copyright owners and asks them
+> > whether the re-licensing [in 2002] may be considered retroactive
+> > (applicable to older versions of DXPC); in case the answer is
+> > negative, DXPC copyright owners should be persuaded to make the
+> > re-licensing retroactive """
+> >
+> > The person contacting you about the above question is me. Mike
+> > Gabriel, Debian Developer and one of the current upstream maintainers
+> > of nx-libs 3.x (previously also know as  "NX redistributed" for X2Go)
+> > [1].
+> >
+> > This issue requires some time of reading from you and (hopefully) a
+> > public statement, that the original DXPC code can be considered as
+> > BSD-2-clause (the current license) also for released versions prior
+> > 2002 when the ancient BSD license template [2] was still shipped with
+> > DXPC.
+> >
+> > For a complete follow-up, please check Debian bug #784565 [3].
+> >
+> > We are aware that NoMachine forked DXPC at some early stage around the
+> > year 2000 and wrote their own commercial product around it. Obviously,
+> > this fork happened before 2002 (i.e., before DXPC release 3.8.1), as
+> > libxcomp3 in NoMachine's NX ships the previously used BSD license
+> > template. I am not sure, if that fork was easy for you or actually a
+> > nuisance. I may only guess at this point. I'd be happy to know more
+> > (maybe not in this mail thread, though).
+> >
+> > NoMachine has stopped publishing NXv3 updates a couple of years ago
+> > (2011 IIRC), now. The maintenance has been moved into the hands of the
+> > currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and
+> > "TheQVD". Some of us are running a business model on top of that
+> > (consultancy, support contracts, feature development contracts), some
+> > of us spend a lot of their free time on improving / maintaining
+> > nx-libs (as we call NoMachine's NXv3 at the moment).
+> >
+> > To outline the impact of my mail clearly: If you say that it was not
+> > legal by NoMachine to fork DXPC at the given time (before 2002), then
+> > all FLOSS remote desktop / remote application would be in real
+> > trouble, because then the core component of their software projects
+> > could not be considered as free (as in DFSG, Debian free software
+> > guidelines[4]) anymore. Also the code changes originally performed by
+> > NoMachine might have been illegal in the first place. All current
+> > maintenance activities and also planned future development on nx-libs
+> > would become questionable.
+> >
+> > Thus, I hope you can chime in on this: Dear developers of nx-libs,
+> > please assume the BSD-2-license as retroactive and applicable to DXPC
+> > version earlier than 3.8.1. As the copyright holder, I agree with
+> > modifications of code bases that originate before the change to
+> > BSD-2-clause license got introduced in 3.8.1 of DXPC.
+> >
+> > And... I will bring up that question later (but it is burning under my
+> > nails)... Be sure: The nx-libs maintainers would be happy to have the
+> > original DXPC author on the nx-libs developer team. But I will bring
+> > up that question later (when this very issue is settled). ;-)
+> >
+> > Greets,
+> > Mike
+> >
+> > [1] https://github.com/ArcticaProject/nx-libs
+> > [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license
+> > [3] http://bugs.debian.org/784565
+> > [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines
+> >
+> > On  Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote:
+> >
+> > > On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote:
+> > >
+> > > [...]
+> > > > As it seems, dxpc has been long ago relicensed to BSD-2-clause (for
+> > > > v3.8.1 in/around 2002).
+> > >
+> > > This is great news, indeed!
+> > >
+> > > >
+> > > > I have no exact clue, if NoMachine forked prior to that (if they
+> > > > quote the old licensing terms, then probably they did).
+> > >
+> > > Yep, it's plausible...
+> > >
+> > > >
+> > > > However, how do you see the situation considering that upstream
+> > > > changed to BSD-2-clause a long time ago. What approach do you
+> > > > propose for nx-libs-lite to get the issue fully fixed?
+> > >
+> > > If the fork has been performed before the DXPC re-licensing (as it's
+> > > likely), I see two possible strategies:
+> > >
+> > > (A) someone gets in touch with DXPC copyright owners and asks them
+> > > whether the re-licensing may be considered retroactive (applicable to
+> > > older versions of DXPC); in case the answer is negative, DXPC
+> > > copyright owners should be persuaded to make the re-licensing
+> > > retroactive
+> > >
+> > > (B) nx-libs-lite upstream developers re-fork from scratch, basing the
+> > > new code on a BSD-licensed version of DXPC (I suspect this may turn
+> > > out to be somewhat painful...)
+> > >
+> > >
+> > > Obviously, the optimal solution is (A). I hope it may work...
+> > >
+> > > Thanks for your time and for your prompt and kind replies.
+> >
+> >
+>
+
+
+
+
+From invernomuto@paranoici.org Tue May 12 21:42:01 2015
+Received: (at 784565) by bugs.debian.org; 12 May 2015 21:42:01 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS,
+ SPF_PASS autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 119; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-,
+ 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH,
+ 0.000-+--H*c:pgp-signature
+Return-path: <invernomuto@paranoici.org>
+Received: from perdizione.investici.org ([94.23.50.208])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1YsHw8-0008Hh-DT
+ for 784565@bugs.debian.org; Tue, 12 May 2015 21:42:01 +0000
+Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9E73512097E;
+ Tue, 12 May 2015 21:41:55 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org;
+ s=stigmate; t=1431466915;
+ bh=w0yVuJLtWq+0cj6zbjNb4THkJk0Xq3N9SMQ1+u0ZZnk=;
+ h=Date:From:To:Cc:Subject:In-Reply-To:References;
+ b=RRQcr33uMGnEaupGoWl0nXectE2hPbUghdie73/SnVp5Ax5QWxqK90ic5VPUE7RsN
+ RsJ6HcYccQEzYLzm37W24u9eQZFa+Oc1CZaJBvFgOg9MAvh6tHaLUgOuFGkYXhn5R0
+ Nlq5WHCpVKi9YvGfj/aAtfe84CJPt2HIKAqPXb5w=
+Received: from frx by homebrew with local (Exim 4.85)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1YsHvP-00019Q-D1; Tue, 12 May 2015 23:41:15 +0200
+Date: Tue, 12 May 2015 23:40:48 +0200
+From: Francesco Poli <invernomuto@paranoici.org>
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Cc: Kevin Vigor <kevin@vigor.nu>, 784565@bugs.debian.org,
+ x2go-dev@lists.x2go.org, nito.martinez@qindel.com,
+ opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+Message-Id: <20150512234048.054319a449ffadcf87577425@paranoici.org>
+In-Reply-To: <1431445315.4712.7.camel@Nokia-N900>
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu>
+ <1431445315.4712.7.camel@Nokia-N900>
+X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu)
+Mime-Version: 1.0
+Content-Type: multipart/signed; protocol="application/pgp-signature";
+ micalg="PGP-SHA256";
+ boundary="Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk"
+
+--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk
+Content-Type: text/plain; charset=US-ASCII
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote:
+
+> Hi Kevin,
+
+Hello Mike, hello Kevin, hello to all the other recipients.
+
+First of all, I wish to express my gratitude to Kevin for his prompt,
+kind and generous response.
+
+>=20
+> thanks for your feedback. Let us wait for Francesco, our expert on licens=
+e issues, and see what he thinks about your feedback.
+
+I think that this is an important first step to solve this issue for
+the best.
+Kevin Vigor is one of the copyright owners of the code that was forked
+before the re-licensing.
+We now know that he intended the re-licensing to be retroactive and
+this is really good.
+
+I think that now it would be useful to ascertain that the other
+copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are
+also OK with this interpretation of the re-licensing operation.
+
+Maybe Kevin is able to dig the original conversations (assuming they
+were carried on by e-mail or similar archived means) or otherwise to
+get in touch with them and check? Or, alternatively, Kevin could help
+Mike to get in touch with them?
+
+I hope everything may be settled for the best soon.
+Thanks a lot to everyone involved.
+
+
+
+--=20
+ http://www.inventati.org/frx/
+ There's not a second to spare! To the laboratory!
+..................................................... Francesco Poli .
+ GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE
+
+--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk
+Content-Type: application/pgp-signature
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAEBCAAGBQJVUnNlAAoJED4cJ+Efab/+CBQP/33+SjLcIk2VZbjeeyCxhCAo
+kmgg9BDtqce1Dy22ONotywDNQ187suqlmkEa6yAAdglB0M3CYMFKSIsZHn2C0uGb
+B45HnzXE7PJd/j/WOXuCIvDe70iGJ7Ubk16DCjyRuKsF70cr2DcsbieiwZh8Wi4v
+GXNOxpm5Nv2bs1vQnRzYFc7GLWny3eCqcWF23XisqvxQecOHopoGWr9F6NuS5ymz
+NQ8Z7eanEPaqE86GYFIqJyt9Wcz+fM2r1d/IrNmYaTVBJPrqndQKnXJAViwYhtaM
+V8+CIKDuttcIYMto9dyE9+vr6wgtDyepVatQIHyVA2LpzR9jub8MGelXMdA7em3i
+/H3gz3H/tQti3T3HoHu+4CSAEWsXdtkHq2RWU9k3+HQuWB00z7WDr404xzs7k2Wg
+h6VR9c+VjV92KnMvDqWjE4VBYjrn6Ag5u/0Cf6HMx5RAGFNL8ROjOGbQSskfUogo
+GnWX2b8yLIe8ojg3AVowWV2oKVlWzsjZVHH9lp0M/lqGmnPVEJk0mh6DKbZPjK8O
+P2dpZ8IlSa18R2CvMWnf7HXKRR/s2ef7rUmBkT2sFnTwsT5PeDSU45/7ZuWbNIpw
+8/Y5q38c36Axeng1J0OCR8YX47dH0PubVnBzYEqoun3GucR1jifOiNzWLyM2ZxNe
+0JSSqn5ddFC8/iuGpFDI
+=ZqCl
+-----END PGP SIGNATURE-----
+
+--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk--
+
+
+
+From niels@thykier.net Wed May 13 16:04:21 2015
+Received: (at control) by bugs.debian.org; 13 May 2015 16:04:21 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-3.9 required=4.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,
+ RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 6; hammy, 61; neutral, 18; spammy, 0.
+ spammytokens: hammytokens:0.000-+--H*u:devscripts, 0.000-+--H*u:bts,
+ 0.000-+--H*UA:bts, 0.000-+--H*UA:devscripts, 0.000-+--H*MI:thykier
+Return-path: <niels@thykier.net>
+Received: from mailrelay11.public.one.com ([195.47.247.189])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <niels@thykier.net>)
+ id 1YsZ8u-0002Ch-RD
+ for control@bugs.debian.org; Wed, 13 May 2015 16:04:21 +0000
+X-HalOne-Cookie: 4652f81fa62fa9da4dd9249e7484054c41bc782d
+X-HalOne-ID: b22b9887-f989-11e4-950a-b82a72d06996
+DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
+ d=thykier.net; s=20140924;
+ h=from:subject:date:message-id:to;
+ bh=EysymZxJFEX8N6fIBUIaFmFP7WdtVLf5PrmWzWVb22Y=;
+ b=Ur7nNbvtl3pu7O1YKIHwSM8MHIW+JPWJKM1GBE23FB4sLbENnBM2V0rmU5++qyolEv7hHAhvKkWFO
+ lH4tbbHCyoYVdUE76nRT/1HEb5/X+pxjrsC1qTXWWXkekbuLNcDwIl0+WdVVEd5B4LYpW7igVWi4AH
+ XncGXx/MNYDQvFiU=
+Received: from thykier.net (unknown [80.62.116.219])
+ by smtpfilter3.public.one.com (Halon Mail Gateway) with ESMTPSA
+ for <control@bugs.debian.org>; Wed, 13 May 2015 16:04:12 +0000 (GMT)
+Received: by thykier.net (Postfix, from userid 1000)
+ id 985EB4BB; Wed, 13 May 2015 18:04:10 +0200 (CEST)
+From: Niels Thykier <niels@thykier.net>
+To: control@bugs.debian.org
+Subject: tagging 784565
+Date: Wed, 13 May 2015 18:04:10 +0200
+User-Agent: devscripts bts/2.15.4
+Message-ID: <1431533050-371-bts-niels@thykier.net>
+Delivered-To: control@bugs.debian.org
+
+# distributable
+tags 784565 + jessie-ignore
+thanks
+
+
+
+
+From mike.gabriel@das-netzwerkteam.de Thu May 14 04:58:16 2015
+Received: (at 784565) by bugs.debian.org; 14 May 2015 04:58:16 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 22; hammy, 150; neutral, 339; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1YslDr-0000NV-Ur
+ for 784565@bugs.debian.org; Thu, 14 May 2015 04:58:16 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id A03C82B5;
+ Thu, 14 May 2015 06:58:11 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id E89E93BD2E;
+ Thu, 14 May 2015 06:58:10 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id 5m6G8sqwjlfJ; Thu, 14 May 2015 06:58:10 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 5713E3BB3A;
+ Thu, 14 May 2015 06:58:10 +0200 (CEST)
+Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
+ [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Thu, 14 May 2015 04:58:10 +0000
+Date: Thu, 14 May 2015 04:58:09 +0000
+Message-ID: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Francesco Poli <invernomuto@paranoici.org>
+Cc: Kevin Vigor <kevin@vigor.nu>, 784565@bugs.debian.org,
+ x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived
+ from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 178.62.101.154
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_SHoEHYV8bfary9lJHYP1lQ1";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_SHoEHYV8bfary9lJHYP1lQ1
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Hi all,
+
+there has been an off-list mail exchange between Francesco and Kevin=20=20
+(and=20me in Cc:) which I will quote at the end of this mail (as it was=20=
+=20
+not=20meant to be private and we should fully document the flow on this=20=
+=20
+issue).
+
+@Kevin:=20I will take you off this mail thread's Cc: field with my next=20=
+=20
+post.=20Feel free to follow-up via #784565 [1] on the Debian bug=20=20
+tracker.=20Thanks a lot for being so responsive and generous with=20=20
+providing=20information.
+
+On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote:
+
+> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote:
+
+> I think that now it would be useful to ascertain that the other
+> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are
+> also OK with this interpretation of the re-licensing operation.
+
+As stated by Kevin, Gian Filippo worked/works on the NoMachine side. I=20=
+=20
+will=20include him in Cc:.
+
+For Brian Pane we also found and e-Mail address, for Zach Vonler, I=20=20
+will=20use the mail address provided in DXPC code (which might be=20=20
+outdated),=20but I think I actually have found his phone number on the=20=
+=20
+web,=20so if that mail address bounces I will give him a ring.
+
+> Maybe Kevin is able to dig the original conversations (assuming they
+> were carried on by e-mail or similar archived means) or otherwise to
+> get in touch with them and check? Or, alternatively, Kevin could help
+
+As stated in the forwarded messages below, Kevin was unable to dig out=20=
+=20
+any=20mails from backups. So we switch to plan B: contact Brian, Zach=20=20
+and=20Gian Filippo.
+
+> Mike to get in touch with them?
+
+I will do that.
+
+> I hope everything may be settled for the best soon.
+> Thanks a lot to everyone involved.
+
+/me, too.
+
+light+love
+Mike
+
+[1] http://bugs.debian.org/784565
+
+
+----- Weitergeleitete Nachricht von Kevin Vigor <kevin@vigor.nu> -----
+ Datum: Wed, 13 May 2015 09:01:27 -0600
+ Von: Kevin Vigor <kevin@vigor.nu>
+Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20
+derived=20from non-free code
+ An: Francesco Poli <invernomuto@paranoici.org>
+ Cc: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+
+On 05/12/15 15:40, Francesco Poli wrote:
+
+> Maybe Kevin is able to dig the original conversations (assuming they
+> were carried on by e-mail or similar archived means) or otherwise to
+> get in touch with them and check? Or, alternatively, Kevin could help
+> Mike to get in touch with them?
+
+I'm afraid I was not able to dig anything out of old backups last=20=20
+night.=20I still have a stack of CDs to look through, but don't hold=20=20
+your=20breath. Sorry about that.
+
+I have never had any contact with Zachary Vonler or Gian Filippo=20=20
+Pinzari,=20and have not spoken with Brian Pane in many years, so I have=20=
+=20
+no=20recent contact information for any of them. However, a quick google=20=
+=20
+turns=20up:
+
+https://www.linkedin.com/profile/view?id=3D728859
+http://www.brianp.net/contact/
+
+which is almost certainly the right Brian Pane (he was at CNet at the=20=20
+proper=20time).
+
+
+ Good luck,
+ Kevin
+
+----- Ende der weitergeleiteten Nachricht -----
+
+----- Weitergeleitete Nachricht von Francesco Poli=20=20
+<invernomuto@paranoici.org>=20-----
+ Datum: Wed, 13 May 2015 19:43:44 +0200
+ Von: Francesco Poli <invernomuto@paranoici.org>
+Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20
+derived=20from non-free code
+ An: Kevin Vigor <kevin@vigor.nu>
+ Cc: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+
+On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote:
+
+> On 05/12/15 15:40, Francesco Poli wrote:
+>
+> > Maybe Kevin is able to dig the original conversations (assuming they
+> > were carried on by e-mail or similar archived means) or otherwise to
+> > get in touch with them and check? Or, alternatively, Kevin could help
+> > Mike to get in touch with them?
+>
+> I'm afraid I was not able to dig anything out of old backups last=20=20
+>=20night. I still have a stack of CDs to look through, but don't hold=20=
+=20
+>=20your breath. Sorry about that.
+
+Thanks a lot for searching: this is really appreciated, at least from
+my side.
+
+>
+> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari,
+
+Then I wonder how it was possible to re-license DXPC in 2002...
+:-|
+
+> and have not spoken with Brian Pane in many years, so I have no recent
+contact information for any of them. However, a quick google turns up:
+>
+> https://www.linkedin.com/profile/view?id=3D728859
+> http://www.brianp.net/contact/
+>
+> which is almost certainly the right Brian Pane (he was at CNet at=20=20
+>=20the proper time).
+
+This could be really useful, thank you very much!
+
+Mike, I hope the search may go on from there: Brian should be asked
+about the retroactive nature of the re-licensing of DXPC and maybe he
+also knows how to get in touch with Zachary and/or Gian Filippo...
+
+
+P.S.: Kevin, any special reason why you dropped several addresses from
+the Cc list? Should this part of our conversation be kept private for
+the time being? Please clarify. Thanks!
+
+----- Ende der weitergeleiteten Nachricht -----
+
+----- Weitergeleitete Nachricht von Kevin Vigor <kevin@vigor.nu> -----
+ Datum: Wed, 13 May 2015 14:08:48 -0600
+ Von: Kevin Vigor <kevin@vigor.nu>
+Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20
+derived=20from non-free code
+ An: Francesco Poli <invernomuto@paranoici.org>
+ Cc: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+
+On 05/13/15 11:43, Francesco Poli wrote:
+> On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote:
+
+>> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari=
+,
+>
+> Then I wonder how it was possible to re-license DXPC in 2002...
+> :-|
+>
+
+I believe Gian worked on the NoMachine code; he has never contributed=20=20
+to=20DXPC directly.
+
+Zachary Vonler was allegedly the maintainer of DXPC for a while circa=20=20
+1999,=20but never responded to any email when I attempted to contact=20=20
+him,=20which is how I came to take over maintenance.
+
+
+> P.S.: Kevin, any special reason why you dropped several addresses from
+> the Cc list? Should this part of our conversation be kept private for
+> the time being? Please clarify. Thanks!
+
+No, I was just trying to keep from spamming email lists unnecessarily.=20=
+=20
+I=20do not consider any part of this conversation private.
+
+----- Ende der weitergeleiteten Nachricht -----
+
+----- Weitergeleitete Nachricht von Francesco Poli=20=20
+<invernomuto@paranoici.org>=20-----
+ Datum: Wed, 13 May 2015 22:50:32 +0200
+ Von: Francesco Poli <invernomuto@paranoici.org>
+Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20
+derived=20from non-free code
+ An: Kevin Vigor <kevin@vigor.nu>
+ Cc: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+
+On Wed, 13 May 2015 14:08:48 -0600 Kevin Vigor wrote:
+
+> On 05/13/15 11:43, Francesco Poli wrote:
+> > On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote:
+>
+> >> I have never had any contact with Zachary Vonler or Gian Filippo Pinza=
+ri,
+> >
+> > Then I wonder how it was possible to re-license DXPC in 2002...
+> > :-|
+> >
+>
+> I believe Gian worked on the NoMachine code; he has never=20=20
+>=20contributed to DXPC directly.
+
+Good, then only Zachary has to be tracked down.
+
+>
+> Zachary Vonler was allegedly the maintainer of DXPC for a while=20=20
+>=20circa 1999, but never responded to any email when I attempted to=20=20
+>=20contact him, which is how I came to take over maintenance.
+
+Let's hope Brian is able to help Mike in getting in touch with
+Zachary...
+
+>
+>
+> > P.S.: Kevin, any special reason why you dropped several addresses from
+> > the Cc list? Should this part of our conversation be kept private for
+> > the time being? Please clarify. Thanks!
+>
+> No, I was just trying to keep from spamming email lists=20=20
+>=20unnecessarily. I do not consider any part of this conversation=20=20
+>=20private.
+>
+
+OK, thanks for clarifying.
+
+----- Ende der weitergeleiteten Nachricht -----
+
+--=20
+
+DAS-NETZWERKTEAM
+mike gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_SHoEHYV8bfary9lJHYP1lQ1
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVVCthAAoJEJr0azAldxsx3KUP/2997X9KnhVEedREGxsuqvQn
+Dp5oGK2JPf0Z2MZui1FVehvakoHQD0MuhpVs7ZktnshwNvAgxyhW5esC617a9gsz
+jJvaJz0S0MPHfSM4Dz8Yg2t0u0DpueVZBpOeDOlt9W9ECXkpe2YPk5AOialHwTPX
+OP5KKfMSLEGFreUL7U0WeetC/To5zm54Ivx1a0wx2I+HdPJ0YXTxIC7JvUSNejFE
+0+yhK1thXf38juOeb2pxTvRQXcj1IoDMRSc0k7KHeNGmP1NF38fh1illPlBABG1u
+wa3hn+1uMe3+On8LJkDtIHtsXrR2RUuOP+0FbI4rTRo5SOeVFNRSl1ldp2ywl8rQ
+9WkK623cuurOydsHjj+fIlcb7GN/OgrTay8VRS3jUjy9tlQ7PCpF5W1m7kMPHrCP
+nh6/hUa6ep8qE+86dosQS4FxvOgSHOEpbNZ8ulEib/ClHr9wsnWpjxQtvRnZsBTl
+PAIXKvdiHUCgyfs4efSWYtR8QUJTYmPDrGr2V8jWAtzZOo6NSa09c2Yc2OxLRDpP
+HBGVSLUOrocvbb3wPAgnsogxtYCpzo/ga1Rnx2LdIfLNaTv62sek+nHqJzICqtcH
+SdMajeJTVksKQCmHqIQS7C2V44cDYizTe9exZIl75OKT6TDujuW/KZiPQK6VCCNv
+eEgOxmCOHlc8YLLz0dEP
+=N9IW
+-----END PGP SIGNATURE-----
+
+--=_SHoEHYV8bfary9lJHYP1lQ1--
+
+
+
+
+From mike.gabriel@das-netzwerkteam.de Thu May 14 05:55:46 2015
+Received: (at 784565) by bugs.debian.org; 14 May 2015 05:55:46 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 23; hammy, 150; neutral, 392; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1Ysm7W-0005fv-3I
+ for 784565@bugs.debian.org; Thu, 14 May 2015 05:55:46 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id BDB433282;
+ Thu, 14 May 2015 07:55:43 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 20DC03BD2E;
+ Thu, 14 May 2015 07:55:43 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id 3Dt4TKuxIMPh; Thu, 14 May 2015 07:55:43 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 871AB3B9EA;
+ Thu, 14 May 2015 07:55:42 +0200 (CEST)
+Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
+ [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Thu, 14 May 2015 05:55:42 +0000
+Date: Thu, 14 May 2015 05:55:42 +0000
+Message-ID: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Zach Vonler <lightborn@mail.utexas.edu>, Brian Pane <brianp@brianp.net>,
+ Gian Filippo Pinzari <pinzari@nomachine.com>
+Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org,
+ opensource@gznianguan.com, 784565@bugs.debian.org, Francesco Poli
+ <invernomuto@paranoici.org>
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts
+ are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 178.62.101.154
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_whjzG6t3RqUoHnRlD0aGiA1";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_whjzG6t3RqUoHnRlD0aGiA1
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Dear Brian, dear Zachary, dear Gian Filippo,
+
+(Find a TL;DR; at the end of this mail...)
+
+I am contacting you on a licensing issue related to the DXPC code that=20=
+=20
+you=20worked on at the end of the nineties. I'd highly appreciate it if=20=
+=20
+you=20could take a little time to read this mail and get back to me,=20=20
+either=20privately or in public.
+[I have actually Cc:ed quite a number of people in this mail (thread).=20=
+=20
+All=20of them will be affected by the outcome of this license issue to=20=
+=20
+some=20lesser or greater extent. If you feel inconvenient with replying=20=
+=20
+to=20so many people you don't know, really don't hesitate to get back to=20=
+=20
+me=20in private first, so that we can sort things out. Thank you.]
+
+Before I continue, let me shortly introduce myself. My name is Mike=20=20
+Gabriel,=20I work for the Debian project [1.1, 1.2] (which brings forth=20=
+=20
+one=20of the major GNU/Linux distributions world-wide. I am also the=20=20
+upstream=20code maintainer of a software project called nx-libs [2]. The=20=
+=20
+nx-libs=20code has been derived from several of NoMachine's NXv3 [11]=20=20
+components=20(namely: nx-X11, nxagent, nxcomp, nxcompext and nxcompshad).
+
+A member of the Debian legal team [3] (Francesco Poli) made us (i.e.,=20=20
+the=20nx-libs developers, users, package maintainers) aware of an issue=20=
+=20
+[4]=20in the nx-libs component NXCOMP (which has been derived from DXPC=20=
+=20
+[5]).=20Please read Message #5 of the brought up issue on the Debian bug=20=
+=20
+tracker=20(#784565) [4] before you continue reading. Thanks.
+
+I will now jump into the below quoted mail and continue inline...
+
+On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote:
+
+> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote:
+>
+>> Hi Kevin,
+>
+> Hello Mike, hello Kevin, hello to all the other recipients.
+>
+> First of all, I wish to express my gratitude to Kevin for his prompt,
+> kind and generous response.
+
+>> thanks for your feedback. Let us wait for Francesco, our expert on=20=20
+>>=20license issues, and see what he thinks about your feedback.
+>
+> I think that this is an important first step to solve this issue for
+> the best.
+> Kevin Vigor is one of the copyright owners of the code that was forked
+> before the re-licensing.
+> We now know that he intended the re-licensing to be retroactive and
+> this is really good.
+
+We are currently in the process of contacting all DXPC related=20=20
+copyright=20holders mentioned in the NXCOMP license file [6]. We already=20=
+=20
+received=20some feedback from Kevin Vigor [7], but we also need to=20=20
+address=20you (Brian, Zachary, Gian Filippo) with this. (The mail=20=20
+address=20I have from Zachary may be outdated, so any current contact=20=20
+address=20is highly welcome, in case the mail address being used will=20=20
+bounce=20back).
+
+At the moment, NXCOMP (and thus nx-libs, but also NoMachine's NXv3=20=20
+code)=20cannot be considered as fully free software, until this issue is=20=
+=20
+settled.=20The DXPC license before DXPC v3.8.1 was an ancient BSD style=20=
+=20
+license=20that failed in explicitly mentioning, that it is allowed to=20=20
+modify=20the DXPC code in derivative works. In 2002, DXPC 3.8.1 got=20=20
+released=20[12], using a more compliant license (BSD-2-clause). As Kevin=20=
+=20
+told=20us, this license change [8,9] was done after the FSF [10] had=20=20
+contacted=20the DXPC developers.
+
+However, the NXCOMP code in NXv3 got forked from DXPC before 2002, as=20=20
+it=20seems. So unfortunately, the modifications of DXPC as found in=20=20
+NoMachine's=20NXCOMP product are not compliant with the pre-3.8.1=20=20
+license=20of DXPC.
+
+> I think that now it would be useful to ascertain that the other
+> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are
+> also OK with this interpretation of the re-licensing operation.
+
+TL;DR; So here comes my actual question: are you (Brian Pane, Zachary=20=20
+Vonler,=20Gian Filippo Pinzari) ok with retroactively regarding=20=20
+pre-3.8.1=20code of DXPC (that you probably all worked on at that time)=20=
+=20
+as=20BSD-2-clause? Are you ok with others having taken or taking the=20=20
+pre-3.8.1=20DXPC code and distribute it in a modified form?
+
+A yes from all of you as DXPC copyright holders is essential for the=20=20
+continuation=20of nx-libs development under a free license. This may=20=20
+also=20possibly be an issue for NXv4 in case parts of it have been=20=20
+derived=20from DXPC.
+
+Thanks to all of you for taking your time.
+
+light+love
+Mike
+
+[1.1] http://www.debian.org
+[1.2] https://qa.debian.org/developer.php?login=3Dsunweaver%40debian.org
+[2] https://github.com/ArcticaProject/nx-libs
+[3] https://www.debian.org/legal/
+[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#5
+[5] http://www.vigor.nu/dxpc/
+[6] https://github.com/ArcticaProject/nx-libs/blob/3.6.x/nxcomp/LICENSE#L32
+[7] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#40
+[8] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D72020
+[9] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028
+[10] http://www.fsf.org/
+[11] https://www.nomachine.com/version-3
+[12] http://www.vigor.nu/dxpc/CHANGES
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_whjzG6t3RqUoHnRlD0aGiA1
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVVDjeAAoJEJr0azAldxsx1JUP/RdzhmQ3HU+6x479AoGBTKxV
+onR3XPlq8Iw9f6dU0TjqlAHCOGeftJ+X7A3HamiTFsr5wUqlrTuKeYnVd4hTa08e
+ge9WIODczQfnoHm47siTjlMfQuHFIGDnHuJ+3GbvojMI7QXWrM9wgxGo2B/2UUQS
+tFlYPbvfAGhCyUVx/zLRFqDVzzdo+UCVoLLYKE1pkwjhpnGGamY1xd/KFjCgi0Vx
+f/Nx9w28EqmRFZCTmxghLngkTlQwrtBkSUAhLS3ntxV12RrrQQ2verXPWbW1DU9C
+3TZypNZSMc4O8etJ244YUk7wAvspUtJnXyvxoQ2Padw0ogGFayIdLtC8HStCy+Mx
+Q/FIND8+aGdYALNTbQfTCpJ1fmg06Id4hn96rdZOhpT80M3vTuY9HpIyf2dDCdHu
+OmHEjUKnMRgjPbVoIU5lz8s4X/ET7hzxb2psXSwscxI+qqlSrADzC98QB23djJii
+O9qPVB/HqJXwNNXlwiScrLC/q4ro0QgdurKmIDQq1zjdFXyBDEwMzxLNlVSJiEeG
+gMSiXD9lD8J1KBDp35P4wxmOcCSymILU11Lpvf5N22ID7cfk8x58+Fsik+RkQZcm
+94ll8p4XU0xOt8pgzGOVL4rLBsjcPGzuTjUoDsB8zmZLSgEgrISZNQC7pRhEXTRW
+3g7fQuF635IMObwgVJJB
+=c1td
+-----END PGP SIGNATURE-----
+
+--=_whjzG6t3RqUoHnRlD0aGiA1--
+
+
+
+
+From mike.gabriel@das-netzwerkteam.de Thu May 14 06:20:24 2015
+Received: (at 784565) by bugs.debian.org; 14 May 2015 06:20:24 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 149; neutral, 94; spammy,
+ 1. spammytokens:0.997-1--sk:austin. hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1YsmVL-0008TY-AE
+ for 784565@bugs.debian.org; Thu, 14 May 2015 06:20:24 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AA82B3282;
+ Thu, 14 May 2015 08:20:19 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id A8B823BD2E;
+ Thu, 14 May 2015 08:20:18 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id LyPILriO4mkm; Thu, 14 May 2015 08:20:18 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 4BB463BB3A;
+ Thu, 14 May 2015 08:20:18 +0200 (CEST)
+Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
+ [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Thu, 14 May 2015 06:20:18 +0000
+Date: Thu, 14 May 2015 06:20:18 +0000
+Message-ID: <20150514062018.Horde.T6fBfDEHTv_IkVi4n506ew5@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Brian Pane <brianp@brianp.net>, Gian Filippo Pinzari
+ <pinzari@nomachine.com>
+Cc: opensource@gznianguan.com, 784565@bugs.debian.org,
+ nito.martinez@qindel.com, Francesco Poli <invernomuto@paranoici.org>,
+ x2go-dev@lists.x2go.org
+Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: Bug#784565:
+ nx-libs-lite: parts are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+ <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de>
+In-Reply-To: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 178.62.101.154
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_FXxC2VoubfzELdkXQu84zQ1";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_FXxC2VoubfzELdkXQu84zQ1
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Hi again,
+
+On Do 14 Mai 2015 07:55:42 CEST, Mike Gabriel wrote:
+
+> [...] (The mail address I have from Zachary may be outdated, so any=20=20
+>=20current contact address is highly welcome, in case the mail address=20=
+=20
+>=20being used will bounce back).
+
+As it seems, the publicly known mail address of Zachary Vonler at=20=20
+austin.utexas.edu=20is outdated.
+
+@Brian: if you happen to have a recent mail address of Zachary, could=20=20
+you=20please provide it to me privately? Thanks.
+
+Mike
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_FXxC2VoubfzELdkXQu84zQ1
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVVD6iAAoJEJr0azAldxsx4+8QAI9fbkDu0G/1NpC4+MDJ3HtH
+wzfUUIIoBAPTahr1ZGrGK4ZMH5+RvXtwX2OBTwRRgKlZOqsdU35bj2HKi01KNLGx
+9NXXnLz97CuTrXJrzis3C+pzCIpR6cR/SPhDdExdhjR8nawXcejfFhPUnbVvPvxY
+jYN43cYFScovk5f5bUtIAybVZZCpdRZwDRevD+1qTTs+WtDf/9PXL7CX9A7j7r6T
+XQIURSVQq/FVXcJHSdZcYZza/4JHIZbEQTeX3FaUK+zkdHlBbbmRwzN0YLP/XQiY
+06tQXFjgjqjjkoxTE5gQrlN3kyxNH2WpXj2eeAqQarkCOnKgiuFEYxhTCYnZHCmk
+WVYhb2/78VbRlRbDJH0jJ0KKNOi9fbXGcVa36IOgV2dLN+tnNorAQjHm7LkBDhyi
+c3EmzEPtDTmcb5XuPYwwbNGn2EE47UsTx3UjPFWAQVQ2LwMXoFb+iH+WWSQ8KW1b
+xKRDOtarACd06rbW/sKQVdzNytydvFkZZn//AHHA7KP7jmqhl/bub8EyEf9cCTVr
+92XB5bbI1rLfEo1D3FTUaCt1tUEumhgRzwlJteX5/vbpf0fJ3QcWMUQSQWYqbhEm
+LnlGOM44jZDtQ7QonezcB/+lQDu2/0Q7fZtgqtr9bxkJ5URr8/ByTI+E3K2bxdme
+jQAQL6yyRC5s419MIJTr
+=6/Dc
+-----END PGP SIGNATURE-----
+
+--=_FXxC2VoubfzELdkXQu84zQ1--
+
+
+
+
+From mike.gabriel@das-netzwerkteam.de Sat May 16 09:19:18 2015
+Received: (at 784565) by bugs.debian.org; 16 May 2015 09:19:18 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-10.9 required=4.0 tests=BAYES_00,DIGITS_LETTERS,
+ FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 31; hammy, 150; neutral, 208; spammy,
+ 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1YtYFZ-0006BP-Mo
+ for 784565@bugs.debian.org; Sat, 16 May 2015 09:19:18 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 434CF3D4F;
+ Sat, 16 May 2015 11:19:13 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 9294C3BB55;
+ Sat, 16 May 2015 11:19:12 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id a-GW73-71I6N; Sat, 16 May 2015 11:19:12 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 224123BB3B;
+ Sat, 16 May 2015 11:19:12 +0200 (CEST)
+Received: from 176.4.79.4 ([176.4.79.4]) by mail.das-netzwerkteam.de (Horde
+ Framework) with HTTP; Sat, 16 May 2015 09:19:12 +0000
+Date: Sat, 16 May 2015 09:19:12 +0000
+Message-ID: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: 784565@bugs.debian.org, Francesco Poli <invernomuto@paranoici.org>
+Cc: Kevin Vigor <kevin@vigor.nu>, nito.martinez@qindel.com,
+ x2go-dev@lists.x2go.org, opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts
+ are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+ <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+In-Reply-To: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 176.4.79.4
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_n6jEwcfiXkrvf2B-ZGaJrw3";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_n6jEwcfiXkrvf2B-ZGaJrw3
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Hi all, esp. Kevin,
+
+On Do 14 Mai 2015 06:58:09 CEST, Mike Gabriel wrote:
+
+I looked at dxpc releases (I obtained upstream tarballs from=20=20
+snapshot.debian.org).
+
+I=20currently have:
+
+"""
+[mike@minobo dxpc.nxrebase (upstream-nxrebase)]$ git log
+commit 0676a768a96383641a73a72ecd2e1083322e6abe
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sat May 16 10:52:24 2015 +0200
+
+ Imported Upstream version 3.9.2
+
+commit 4ccf34b2c4763dfb01dceb8588b204b0d029cc3d
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sat May 16 10:51:04 2015 +0200
+
+ Imported Upstream version 3.9.1
+
+commit dd8f60ce63c70ed605a2e1717feb7128e59fb8e6
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sat May 16 10:49:19 2015 +0200
+
+ Imported Upstream version 3.9.0
+
+commit 01c990099aea802405f8d39c0b819ee1742c185c
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sat May 16 10:32:06 2015 +0200
+
+ Imported Upstream version 3.8.2
+
+commit 48df60b3b946a08541ee48371634f074e875adda
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sat May 16 10:31:57 2015 +0200
+
+ Imported Upstream version 3.8.0
+
+commit 11d81444d0f86a67f9b8483cbfa33343714b26e9
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sat May 16 10:31:53 2015 +0200
+
+ Imported Upstream version 3.7.0
+
+commit e4f550abd4cd49ecc2381e717a55a9940087a376
+Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sat May 16 10:31:44 2015 +0200
+
+ Imported Upstream version 3.5.0
+"""
+
+> @Kevin: I will take you off this mail thread's Cc: field with my=20=20
+>=20next post. Feel free to follow-up via #784565 [1] on the Debian bug=20=
+=20
+>=20tracker. Thanks a lot for being so responsive and generous with=20=20
+>=20providing information.
+
+With this post I actually reincluded you because it becomes technical=20=20
+from=20here on and I probably will need your expertise on DXPC. Not sure=20=
+=20
+if=20you have time or prio or are willing to provide that. Would you be=20=
+=20
+open=20for answering technical questions on DXPC and esp. the changes=20=20
+between=203.7.0 and 3.8.1/3.8.2? I'd highly appreciate that.
+
+As I have not heard back neither from Brian Pane, Zachary Vonler nor=20=20
+Gian=20Filippo Pinzari (we had Ascension Day and maybe a prolonged=20=20
+weekend=20that people used for going on VAC), I will try looking at the=20=
+=20
+DXPC=20changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked=20=20
+NXCOMP=20from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0.
+
+Questions to Kevin:
+
+ o Is there any SVN upstream repo still online
+ (I saw it in one of the tarballs, that SVN was
+ used for 3.9.0).
+ o Do you have any tarballs documenting the
+ changes between 3.7.0 and 3.8.0? Do you also
+ have the 3.8.1 tarball?
+ o Did the 3.8.0 version of DXPC break proto
+ compatibility (i.e., you could not use client
+ 3.7.0 and server 3.8.0 and vice versa with
+ each other)?
+
+Any help on this is appreciated. Thanks.
+
+Mike
+
+
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_n6jEwcfiXkrvf2B-ZGaJrw3
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVVwuPAAoJEJr0azAldxsxAqoQAI1IOApnU8WLZH+VT1GIgtvx
+XxuBALPeR8KobmGRfJd4bSzeIpAqw+JSGa0/XApTwjYbpsIUKnMrEfoHfS0wt4Tb
+ZmSiHL4XCYa6SCGOAbSe89QXNA8kS4ewQMSaPTZhGvoR6wIjdNfxXDN5aO6TkUlw
+qw786fMKYcj9htNnshlq264uSfkrMusFEw614dnfKEVnx8YrIUU5lNY9AInShO9S
+K0vy1vn53/Ie5Fec1FK0WUsT4xTu7NW80Ch0+IgopURIl9NmlomJVRwoDLbR47Ox
+6dFVGJ5VKmOt+oW2g4YAdti8YNhSYteyPgTAPMdtU4XqkHV5/RepCoV/6gr3/YR1
+To63WGpt2B+jl2d4OAPuWWdTRucB2QYsCz/jCvLKeLcg2ODHZJXhSzVYlIie0uFY
+SRvqM8qW+WyuYek2vZDneKvDB2eUqMhRb5dmSeod9UR+3RYTq+JrFUoDq65PONbM
+A0QZ+cG0EkQdxG/1V8yZoMRgxPOtb+AZcMIjC5NikWUsyIkGjMHNHSbJCboJBlyM
+DdyRCTxuM09cpzNxS7Ph0z0iSdQZAl2D7vPCAY1jwyLdu7Xra/p3aM6pqeYuIaWh
+OpoF/sRq08CjWmgVe7MdfkgxZQxW4qIdOeNYGUDIADzzj6cHdNV+WP13ISizeoyO
+u4cspyl/6lFu3TyMWkh8
+=fu9u
+-----END PGP SIGNATURE-----
+
+--=_n6jEwcfiXkrvf2B-ZGaJrw3--
+
+
+
+
+From zvonler@gmail.com Mon May 18 15:05:45 2015
+Received: (at 784565) by bugs.debian.org; 18 May 2015 15:05:46 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-5.3 required=4.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FOURLA,FREEMAIL_FROM,HAS_BUG_NUMBER,HTML_MESSAGE,
+ MULTALT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS
+ autolearn=ham autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 14; hammy, 104; neutral, 41; spammy,
+ 1. spammytokens:0.940-+--H*c:alternative
+ hammytokens:0.000-+--D*das-netzwerkteam.de, 0.000-+--sk:mikega,
+ 0.000-+--sk:mike.ga, 0.000-+--U*mike.gabriel,
+ 0.000-+--mike.gabriel@das-netzwerkteam.de
+Return-path: <zvonler@gmail.com>
+Received: from mail-ob0-f181.google.com ([209.85.214.181])
+ by buxtehude.debian.org with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128)
+ (Exim 4.80)
+ (envelope-from <zvonler@gmail.com>)
+ id 1YuMbx-0004SF-RZ
+ for 784565@bugs.debian.org; Mon, 18 May 2015 15:05:45 +0000
+Received: by obblk2 with SMTP id lk2so127830096obb.0
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 08:05:39 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=gmail.com; s=20120113;
+ h=mime-version:date:message-id:subject:from:to:content-type;
+ bh=nHgAzYNhWTJXAXb1d3jfmZVOFHEEaolqyRCNmCThusM=;
+ b=ilsboi8m+iXF7pVv2MVsvJqi8Es4/o3Awnfg5nSzWVB34kDB0g7zczoEfC4d9km/Bn
+ WDerLV30mJ+OfaRA5elHld2CsY9ByX2MuU73jj2kNenlEV15s7LdJxYsWiZeKM4AEeOw
+ gGF3oU3A/FfhVUrhoPjcGXiF7xjXh1kkPGjkmXFJgthTnyJQjrL6Kw6jfsqhQtbEpqnc
+ 5hsWFCNR7O780T1pkf+MisASrWFXI3oolY4EV8/P6OeEWmmKd7L9h8YHPegOdFq543qZ
+ na9coEvmwpnReWORK79ycOgZa1DwiX1h2SvS+wgigQx8j9ZlJld5SpJFTcV3vSJxmICQ
+ i7Wg==
+MIME-Version: 1.0
+X-Received: by 10.202.89.131 with SMTP id n125mr19222614oib.91.1431961538959;
+ Mon, 18 May 2015 08:05:38 -0700 (PDT)
+Received: by 10.202.212.10 with HTTP; Mon, 18 May 2015 08:05:38 -0700 (PDT)
+Date: Mon, 18 May 2015 10:05:38 -0500
+Message-ID: <CAAnzQj-6Tgiar-GOxXx9FXU21cU4Be05Yo3zUSgr094sYXZP+w@mail.gmail.com>
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts are
+ derived from non-free code
+From: Zach Vonler <zvonler@gmail.com>
+To: 784565@bugs.debian.org
+Content-Type: multipart/alternative; boundary=001a113d381edcb3e205165c863b
+
+--001a113d381edcb3e205165c863b
+Content-Type: text/plain; charset=UTF-8
+
+On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel <
+mike.gabriel@das-netzwerkteam.de> wrote:
+
+>
+> TL;DR; So here comes my actual question: are you (Brian Pane, Zachary
+> Vonler, Gian Filippo Pinzari) ok with retroactively regarding
+> pre-3.8.1 code of DXPC (that you probably all worked on at that time)
+> as BSD-2-clause? Are you ok with others having taken or taking the
+> pre-3.8.1 DXPC code and distribute it in a modified form?
+>
+
+
+> A yes from all of you as DXPC copyright holders is essential for the
+> continuation of nx-libs development under a free license. This may
+> also possibly be an issue for NXv4 in case parts of it have been
+> derived from DXPC.
+
+
+Yes, I am fine with considering the license change to be retroactive to
+cover the time I was the maintainer.
+
+I have no objections to others distributing modified versions of that code.
+
+Zach
+
+--001a113d381edcb3e205165c863b
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: quoted-printable
+
+<div dir=3D"ltr">On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel &lt;<a hre=
+f=3D"mailto:mike.gabriel@das-netzwerkteam.de">mike.gabriel@das-netzwerkteam=
+.de</a>&gt; wrote:<br><div><blockquote class=3D"gmail_quote" style=3D"margi=
+n:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204=
+);border-left-style:solid;padding-left:1ex"><br>TL;DR; So here comes my act=
+ual question: are you (Brian Pane, Zachary =C2=A0<br>Vonler, Gian Filippo P=
+inzari) ok with retroactively regarding =C2=A0<br>pre-3.8.1 code of DXPC (t=
+hat you probably all worked on at that time) =C2=A0<br>as BSD-2-clause? Are=
+ you ok with others having taken or taking the =C2=A0<br>pre-3.8.1 DXPC cod=
+e and distribute it in a modified form?<br></blockquote><div>=C2=A0</div><b=
+lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
+ft-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;pad=
+ding-left:1ex">A yes from all of you as DXPC copyright holders is essential=
+ for the =C2=A0<br>continuation of nx-libs development under a free license=
+. This may =C2=A0<br>also possibly be an issue for NXv4 in case parts of it=
+ have been =C2=A0<br>derived from DXPC.</blockquote><div>=C2=A0</div></div>=
+<div>Yes, I am fine with considering the license change to be retroactive t=
+o cover the time I was the maintainer.</div><div><br></div><div>I have no o=
+bjections to others distributing modified versions of that code.</div><div>=
+<br></div><div>Zach</div></div>
+
+--001a113d381edcb3e205165c863b--
+
+
+
+From kevin@vigor.nu Mon May 18 21:26:12 2015
+Received: (at 784565) by bugs.debian.org; 18 May 2015 21:26:12 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 16; hammy, 150; neutral, 121; spammy,
+ 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*f:sk:2015050,
+ 0.000-+--3.9.0, 0.000-+--3.8.0, 0.000-+--H*UA:31.0
+Return-path: <kevin@vigor.nu>
+Received: from gateway13.websitewelcome.com ([69.56.148.12])
+ by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YuSY8-0004Mq-9I
+ for 784565@bugs.debian.org; Mon, 18 May 2015 21:26:12 +0000
+Received: by gateway13.websitewelcome.com (Postfix, from userid 5007)
+ id 248D59C09927E; Mon, 18 May 2015 15:38:28 -0500 (CDT)
+Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69])
+ by gateway13.websitewelcome.com (Postfix) with ESMTP id 1EB399C099246
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 15:38:28 -0500 (CDT)
+Received: from [63.158.132.10] (port=43192 helo=[10.50.3.84])
+ by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128)
+ (Exim 4.82)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YuRnv-0001VU-8i; Mon, 18 May 2015 15:38:27 -0500
+Message-ID: <555A4DC1.2040900@vigor.nu>
+Date: Mon, 18 May 2015 14:38:25 -0600
+From: Kevin Vigor <kevin@vigor.nu>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
+MIME-Version: 1.0
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>,
+ 784565@bugs.debian.org, Francesco Poli <invernomuto@paranoici.org>
+CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org,
+ opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts
+ are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+Content-Type: text/plain; charset=windows-1252; format=flowed
+Content-Transfer-Encoding: 7bit
+X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
+X-AntiAbuse: Primary Hostname - gator4058.hostgator.com
+X-AntiAbuse: Original Domain - bugs.debian.org
+X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
+X-AntiAbuse: Sender Address Domain - vigor.nu
+X-BWhitelist: no
+X-Source-IP: 63.158.132.10
+X-Exim-ID: 1YuRnv-0001VU-8i
+X-Source:
+X-Source-Args:
+X-Source-Dir:
+X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:43192
+X-Source-Auth: kevin@vigor.nu
+X-Email-Count: 2
+X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ==
+X-Greylist: delayed 1495 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:26:12 UTC
+
+On 05/16/15 03:19, Mike Gabriel wrote:
+ As I have not heard back neither from Brian Pane, Zachary Vonler nor Gian Filippo Pinzari (we had Ascension Day and maybe a prolonged weekend that people used for going on VAC), I will try looking at the DXPC changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked NXCOMP from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0.
+>
+> Questions to Kevin:
+>
+> o Is there any SVN upstream repo still online
+> (I saw it in one of the tarballs, that SVN was
+> used for 3.9.0).
+
+I'm afraid not. There was never an online repo available, and if I used one personally it is lost to the mists of time.
+
+> o Do you have any tarballs documenting the
+> changes between 3.7.0 and 3.8.0? Do you also
+> have the 3.8.1 tarball?
+
+I have the source tarballs to each of those (including the 3.8.1 version). The 3.8.0 release includes a README-3.8.0 file which documents the changes between 3.7.0 and 3.8.0 reasonably well.
+
+As will be (unfortunately) obvious from examining the deltas between 3.7.0 (the last release by Brian and/or Zachary) and 3.8.0 (the first release by me), I inherited a significant majority of the code.
+
+> o Did the 3.8.0 version of DXPC break proto
+> compatibility (i.e., you could not use client
+> 3.7.0 and server 3.8.0 and vice versa with
+> each other)?
+
+Yes, minor version number bumps were used to indicate compatibility. 3.8.x was incompatible with 3.7.x (and also with 3.9.x).
+
+
+
+
+From kevin@vigor.nu Mon May 18 21:34:50 2015
+Received: (at 784565) by bugs.debian.org; 18 May 2015 21:34:50 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 39; hammy, 146; neutral, 132; spammy,
+ 4. spammytokens:0.999-1--tecnologies, 0.993-1--H*RU:67.18.68.12,
+ 0.987-1--D*ascend.com, 0.987-1--H*r:34828 hammytokens:0.000-+--H*f:sk:2015050,
+ 0.000-+--3.8.0, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0,
+ 0.000-+--H*f:sk:2015051
+Return-path: <kevin@vigor.nu>
+Received: from gateway15.websitewelcome.com ([67.18.68.12])
+ by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YuSgU-0005Jq-92
+ for 784565@bugs.debian.org; Mon, 18 May 2015 21:34:50 +0000
+Received: by gateway15.websitewelcome.com (Postfix, from userid 5007)
+ id 8BB94ED5E6912; Mon, 18 May 2015 16:11:44 -0500 (CDT)
+Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69])
+ by gateway15.websitewelcome.com (Postfix) with ESMTP id 84825ED5E68F2
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 16:11:44 -0500 (CDT)
+Received: from [63.158.132.10] (port=34828 helo=[10.50.3.84])
+ by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128)
+ (Exim 4.82)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YuSK7-00005R-B6; Mon, 18 May 2015 16:11:43 -0500
+Message-ID: <555A558E.1020703@vigor.nu>
+Date: Mon, 18 May 2015 15:11:42 -0600
+From: Kevin Vigor <kevin@vigor.nu>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
+MIME-Version: 1.0
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>,
+ 784565@bugs.debian.org, Francesco Poli <invernomuto@paranoici.org>
+CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org,
+ opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts
+ are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+Content-Type: text/plain; charset=windows-1252; format=flowed
+Content-Transfer-Encoding: 7bit
+X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
+X-AntiAbuse: Primary Hostname - gator4058.hostgator.com
+X-AntiAbuse: Original Domain - bugs.debian.org
+X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
+X-AntiAbuse: Sender Address Domain - vigor.nu
+X-BWhitelist: no
+X-Source-IP: 63.158.132.10
+X-Exim-ID: 1YuSK7-00005R-B6
+X-Source:
+X-Source-Args:
+X-Source-Dir:
+X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:34828
+X-Source-Auth: kevin@vigor.nu
+X-Email-Count: 2
+X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ==
+X-Greylist: delayed 1383 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:34:50 UTC
+
+By the way, poking around the interwebs I find there is an archive of the old DXPC mailing list available at:
+
+http://marc.info/?l=dxpc&r=1&w=2
+
+I think you will find this of particular interest:
+
+
+http://marc.info/?l=dxpc&m=93093790813555&w=2
+
+
+List: dxpc
+Subject: Re: future tecnologies
+From: Brian Pane <brianp () cnet ! com>
+Date: 1999-07-02 16:42:18
+[Download message RAW]
+
+Kevin Vigor <kvigor@eng.ascend.com> wrote:
+> On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote:
+> > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc
+> > code itself under GPL, or are they going to use the original dxpc's
+> > licensing?
+>
+> No, as you can probably guess, I am no fan of the GPL. For stuff on
+> this level, where my hacking is pretty simple and probably devoid of
+> commercial value, I'll just release my changes to the public domain and
+> give up even a copyright interest in them.
+>
+> Your and Zach's copyrights still stand, of course.
+>
+> I *think* that fact that we use the LZO library and API, but do not
+> directly incorporate the code, allows us to escape the clutch of the GPL
+> virus.
+>
+> btw, is there an original dxpc license? I haven't seen anything but a
+> copyright notice, which to my non-lawyerly mind translates as "free to
+> all the world as is, negotiate with copyright owner if modifying or
+> including in some other product".
+
+The copyright banner in the Readme is all the documentation there's ever
+been. My intent was to allow _any_ distribution, use, and modification
+of the source, without imposing restrictions on the licensing style of
+any system into which others might incorporate the code. We probably
+should start stating this clearly in the distributions.
+
+-brian
+
+[prev in list] [next in list] [prev in thread] [next in thread]
+
+
+
+From mike.gabriel@das-netzwerkteam.de Mon May 18 21:49:10 2015
+Received: (at 784565) by bugs.debian.org; 18 May 2015 21:49:10 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 35; hammy, 150; neutral, 281; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*RU:sk:grimnir,
+ 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98,
+ 0.000-+--H*RU:88.198.48.199, 0.000-+--H*RU:sk:freya.d
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1YuSuK-0007oj-Hh
+ for 784565@bugs.debian.org; Mon, 18 May 2015 21:49:10 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 253493049
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:04 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id ACC2E3BD6C
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id Hh79XOiBkYIp for <784565@bugs.debian.org>;
+ Mon, 18 May 2015 23:49:03 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 6CC483BC0D
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 2100C3BD6C
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST)
+Received: from [10.139.193.227] (unknown [176.0.38.193])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 453F63BB1E;
+ Mon, 18 May 2015 23:48:59 +0200 (CEST)
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Reply-To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Kevin Vigor <kevin@vigor.nu>, 784565@bugs.debian.org, Francesco Poli <invernomuto@paranoici.org>
+Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts
+ are derived from non-free code
+X-Mailer: Modest 3.2
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+ <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+ <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+ <555A558E.1020703@vigor.nu>
+In-Reply-To: <555A558E.1020703@vigor.nu>
+Content-Type: text/plain; charset=utf-8
+Content-ID: <1431985731.1406.1.camel@Nokia-N900>
+Date: Mon, 18 May 2015 23:48:51 +0200
+Message-Id: <1431985731.1406.2.camel@Nokia-N900>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 8bit
+
+Hi Kevin, hi Zach, hi Francesco, hi all,
+
+@Francesco, please review the recent posts and sum up what to do next.
+
+----- Original message -----
+> By the way, poking around the interwebs I find there is an archive of
+> the old DXPC mailing list available at:
+>
+> http://marc.info/?l=dxpc&r=1&w=2
+>
+> I think you will find this of particular interest:
+>
+>
+> http://marc.info/?l=dxpc&m=93093790813555&w=2
+
+
+>
+>
+> List:            dxpc
+> Subject:      Re: future tecnologies
+> From:            Brian Pane <brianp () cnet ! com>
+> Date:            1999-07-02 16:42:18
+> [Download message RAW]
+>
+> Kevin Vigor <kvigor@eng.ascend.com> wrote:
+> > On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote:
+> > > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc
+> > > code itself under GPL, or are they going to use the original dxpc's
+> > > licensing?
+> >
+> > No, as you can probably guess, I am no fan of the GPL. For stuff on
+> > this level, where my hacking is pretty simple and probably devoid of
+> > commercial value, I'll just release my changes to the public domain and
+> > give up even a copyright interest in them.
+> >
+> > Your and Zach's copyrights still stand, of course.
+> >
+> > I *think* that fact that we use the LZO library and API, but do not
+> > directly incorporate the code, allows us to escape the clutch of the
+> > GPL virus.
+> >
+> > btw, is there an original dxpc license? I haven't seen anything but a
+> > copyright notice, which to my non-lawyerly mind translates as "free to
+> > all the world as is, negotiate with copyright owner if modifying or
+> > including in some other product".
+>
+> The copyright banner in the Readme is all the documentation there's ever
+> been.  My intent was to allow _any_ distribution, use, and modification
+> of the source, without imposing restrictions on the licensing style of
+> any system into which others might incorporate the code.  We probably
+> should start stating this clearly in the distributions.
+>
+> -brian
+>
+> [prev in list] [next in list] [prev in thread] [next in thread]
+
+@Kevin: You are very awesome!
+
+@Francesco: that old post from Brian should be the statement we need, right? As Brian has not answered back, so far, does that post suffice?
+
+I also had a mail from Zach in my mailbox this morning. I managed to get hold of him via phone over the weekend. He posted his agreement to this Debian bug (as message #77) [1] earlier today. @Zach: thanks a lot for that!!!
+
+@Francesco: by looking at [2], I cannot see any hint for Gian Filippo Pinzari being a copyright holder of DXPC. This is stated in the NoMachine files at at least one place, but not in the latest DXPC upstream release. I am on my mobile right now, need to check old versions of DXPC, but if Gian Filippo Pinzari is not listed in the DXPC 3.7.0 release (where nxcomp obviously got forked from), then I think that we don't require his feedback, right?
+
+To my opinion, this issue can be settled. We have direct feedback from Kevin and Zach and Kevin dug out an old post from Brian stating the retroactive nature of the BSD-2-clause while Gian Filippo probably not being a real copyright holder of the original DXPC code. Right?
+
+light+love,
+Mike
+
+[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=77;att=0;bug=784565
+[2] http://www.vigor.nu/dxpc/README
+
+
+--
+
+DAS-NETZWERKTEAM
+mike gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976148
+
+GnuPG Key ID 0x25771B13
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+
+
+
+From invernomuto@paranoici.org Mon May 18 22:15:14 2015
+Received: (at 784565) by bugs.debian.org; 18 May 2015 22:15:14 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS,
+ SPF_PASS autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 220; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-,
+ 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH,
+ 0.000-+--H*c:pgp-signature
+Return-path: <invernomuto@paranoici.org>
+Received: from latitanza.investici.org ([82.94.249.234])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1YuTJa-0002xP-0G
+ for 784565@bugs.debian.org; Mon, 18 May 2015 22:15:14 +0000
+Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 921B3120546;
+ Mon, 18 May 2015 22:15:05 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org;
+ s=stigmate; t=1431987305;
+ bh=RQEA/1bkAQ71T0PpK/7XelDXEZBLyoVavVl9tpWLzWY=;
+ h=Date:From:To:Cc:Subject:In-Reply-To:References;
+ b=sO+MOEv4mZZNK2g5Om9IC7Og5k2qPAvFepN+ei+3/jCixgNBbvaLuRpMgJw6l1yjD
+ hpqRYIxtNgyVywgpuiFVACFBuDn1ksfdFrEPNAcgRl//Sert2aOjetbZcKi1VouhXi
+ eexR8IP81C0C1UjzjeC7zEmF5V+wSyhVs9jKvKfg=
+Received: from frx by homebrew with local (Exim 4.85)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1YuTIi-0002Se-TN; Tue, 19 May 2015 00:14:20 +0200
+Date: Tue, 19 May 2015 00:14:08 +0200
+From: Francesco Poli <invernomuto@paranoici.org>
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Cc: Kevin Vigor <kevin@vigor.nu>, 784565@bugs.debian.org,
+ nito.martinez@qindel.com, x2go-dev@lists.x2go.org,
+ opensource@gznianguan.com, zvonler@gmail.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts
+ are derived from non-free code
+Message-Id: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org>
+In-Reply-To: <1431985731.1406.2.camel@Nokia-N900>
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu>
+ <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+ <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+ <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+ <555A558E.1020703@vigor.nu>
+ <1431985731.1406.2.camel@Nokia-N900>
+X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu)
+Mime-Version: 1.0
+Content-Type: multipart/signed; protocol="application/pgp-signature";
+ micalg="PGP-SHA256";
+ boundary="Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx"
+
+--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx
+Content-Type: text/plain; charset=US-ASCII
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+On Mon, 18 May 2015 23:48:51 +0200 Mike Gabriel wrote:
+
+[...]
+> @Francesco: that old post from Brian should be the statement we need,
+> right? As Brian has not answered back, so far, does that post suffice?
+
+Yes, I am under the impression that it may be considered as evidence
+that Brian had always meant to grant permission to modify, despite not
+being overly clear until DXPC version 3.8.1.
+In other words, it seems that the re-licensing was more intended to be
+a clarification, rather than a change of mind.
+
+>=20
+> I also had a mail from Zach in my mailbox this morning. I managed to
+> get hold of him via phone over the weekend. He posted his agreement
+> to this Debian bug (as message #77) [1] earlier today. @Zach: thanks
+> a lot for that!!!
+
+This is really great!
+
+>=20
+> @Francesco: by looking at [2], I cannot see any hint for Gian Filippo
+> Pinzari being a copyright holder of DXPC. This is stated in the
+> NoMachine files at at least one place, but not in the latest DXPC
+> upstream release. I am on my mobile right now, need to check old
+> versions of DXPC, but if Gian Filippo Pinzari is not listed in
+> the DXPC 3.7.0 release (where nxcomp obviously got forked from),
+> then I think that we don't require his feedback, right?
+
+If it is confirmed that Gian Filippo contributed to the forking of DXPC
+within the NoMachine project, but not directly to DXPC, then I think
+that he made his contributions available under the terms of the GPL v2
+of the NoMachine project.
+If this is the case, no feedback should be required from his side.
+
+>=20
+> To my opinion, this issue can be settled. We have direct feedback
+> from Kevin and Zach and Kevin dug out an old post from Brian stating
+> the retroactive nature of the BSD-2-clause while Gian Filippo probably
+> not being a real copyright holder of the original DXPC code. Right?
+
+Yes, I agree with this analysis.
+The only missing check is the one about Gian Filippo's involvement (as
+explained above).
+
+Thanks a lot to everyone involved in this license fixing effort!
+Bye.
+
+>=20
+> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;att=3D0;bug=3D=
+784565
+> [2] http://www.vigor.nu/dxpc/README
+
+
+
+--=20
+ http://www.inventati.org/frx/
+ There's not a second to spare! To the laboratory!
+..................................................... Francesco Poli .
+ GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE
+
+--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx
+Content-Type: application/pgp-signature
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAEBCAAGBQJVWmQ1AAoJED4cJ+Efab/+FowQALSZya0Xp8IXNA+d0gjQBLGQ
+7eDzaX+kPVKkbYdb7ZDlQF+ZVTwjOnqjf1dDLXWSHwcXYhFd3DeeFB11QfAKXptI
+GyzOt/vrh+w1K2zMb4rR9lxyUKIrKmVI6aOxyRTP7ojqkqqFvpF7ZVkDJZBFCSvx
+LXdAWTaz5NLIH5R4lzvTcTFYmC3JhBtf8m58l4jT3GC1pxoqlYQk0svWOrdlULQZ
+zh1dy6Sf0guwMuOH4pfreTKlNIizFj7BwanoN+tNvYG1sbQnyIwNRKUfG+v5/13P
+3tyjknNDTTE67T40qSv6pcZs46vqMTevL8E+s+wGfcvdKQ5Y2fPQ8Q9yxS6cVxH2
+DXsLV97RFCcdD+ys+7P9j7xYG0e38juu61sU42cNmrb5iU0woB3SJtFvABhioGZg
+TLFi/OxOT6ZTHcZtfwqozVyB1fOesqx3nvwCEE3pNuf58ErxRy1sIXwoChNL4+eo
+ET1kojXBXHER6W6EHno0yz600sJXHE8rco+fv5b5qGBHdLEJ0k80YXQI4FhJQT69
+I8FyASmNX4u6HvH6hRVm2BwE9WrZTUUQRb0m/pEfZVVroiRrqTl/ntvWchXvI2Tt
+IGfoDMtmVbSkh+2DQmsG9oDqiG1pCt3eNkLa1oftlQ7oIQem2MajCOS4QN20PMpU
+d/smtrrNvkmiWuQrjwDF
+=R0ou
+-----END PGP SIGNATURE-----
+
+--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx--
+
+
+
+From kevin@vigor.nu Tue May 19 01:41:18 2015
+Received: (at 784565) by bugs.debian.org; 19 May 2015 01:41:18 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,SPF_PASS autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 26; hammy, 131; neutral, 46; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*UA:31.6.0, 0.000-+--H*u:31.6.0,
+ 0.000-+--H*f:sk:2015050, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0
+Return-path: <kevin@vigor.nu>
+Received: from gateway32.websitewelcome.com ([192.185.145.107])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YuWX0-0002lG-Du
+ for 784565@bugs.debian.org; Tue, 19 May 2015 01:41:18 +0000
+Received: by gateway32.websitewelcome.com (Postfix, from userid 500)
+ id 311BBD143B8C; Mon, 18 May 2015 20:16:29 -0500 (CDT)
+Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69])
+ by gateway32.websitewelcome.com (Postfix) with ESMTP id 2F036D143B72
+ for <784565@bugs.debian.org>; Mon, 18 May 2015 20:16:29 -0500 (CDT)
+Received: from [98.202.128.111] (port=49655 helo=[192.168.7.118])
+ by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128)
+ (Exim 4.82)
+ (envelope-from <kevin@vigor.nu>)
+ id 1YuW8y-0004Tt-DX; Mon, 18 May 2015 20:16:28 -0500
+Message-ID: <555A8EE9.9000503@vigor.nu>
+Date: Mon, 18 May 2015 19:16:25 -0600
+From: Kevin Vigor <kevin@vigor.nu>
+User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0
+MIME-Version: 1.0
+To: Francesco Poli <invernomuto@paranoici.org>,
+ Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+CC: 784565@bugs.debian.org, nito.martinez@qindel.com,
+ x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts
+ are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> <20150519001408.8e5452a098db48d6867af6cb@paranoici.org>
+In-Reply-To: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org>
+Content-Type: text/plain; charset=windows-1252; format=flowed
+Content-Transfer-Encoding: 7bit
+X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
+X-AntiAbuse: Primary Hostname - gator4058.hostgator.com
+X-AntiAbuse: Original Domain - bugs.debian.org
+X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
+X-AntiAbuse: Sender Address Domain - vigor.nu
+X-BWhitelist: no
+X-Source-IP: 98.202.128.111
+X-Exim-ID: 1YuW8y-0004Tt-DX
+X-Source:
+X-Source-Args:
+X-Source-Dir:
+X-Source-Sender: ([192.168.7.118]) [98.202.128.111]:49655
+X-Source-Auth: kevin@vigor.nu
+X-Email-Count: 3
+X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ==
+X-Greylist: delayed 1487 seconds by postgrey-1.34 at buxtehude; Tue, 19 May 2015 01:41:18 UTC
+
+On 5/18/2015 4:14 PM, Francesco Poli wrote:
+> If it is confirmed that Gian Filippo contributed to the forking of
+> DXPC within the NoMachine project, but not directly to DXPC, then I
+> think that he made his contributions available under the terms of the
+> GPL v2 of the NoMachine project. If this is the case, no feedback
+> should be required from his side.
+I can confirm that Gian Fillippo never contributed directly to DXPC.
+You'll note his name does not appear in the DXPC README, and never has.
+
+
+
+From mike.gabriel@das-netzwerkteam.de Tue May 19 08:15:28 2015
+Received: (at 784565) by bugs.debian.org; 19 May 2015 08:15:28 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 195; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1YucgR-0008T9-K0
+ for 784565@bugs.debian.org; Tue, 19 May 2015 08:15:28 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 7D1773C96;
+ Tue, 19 May 2015 10:15:23 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 08FEE3BFD5;
+ Tue, 19 May 2015 10:15:23 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id MW9pv+xO3WwY; Tue, 19 May 2015 10:15:22 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 97FCC3C2AA;
+ Tue, 19 May 2015 10:15:12 +0200 (CEST)
+Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
+ [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Tue, 19 May 2015 08:15:12 +0000
+Date: Tue, 19 May 2015 08:15:12 +0000
+Message-ID: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Kevin Vigor <kevin@vigor.nu>, 784565@bugs.debian.org, Francesco Poli
+ <invernomuto@paranoici.org>
+Cc: opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com,
+ x2go-dev@lists.x2go.org
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565:
+ nx-libs-lite: parts are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+ <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+ <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+ <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900>
+ <20150519001408.8e5452a098db48d6867af6cb@paranoici.org>
+ <555A8EE9.9000503@vigor.nu>
+In-Reply-To: <555A8EE9.9000503@vigor.nu>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 178.62.101.154
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_AI4511z4pP7yPmTeeGgEoA6";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_AI4511z4pP7yPmTeeGgEoA6
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Hi Kevin, hi Frederico,
+
+On Di 19 Mai 2015 03:16:25 CEST, Kevin Vigor wrote:
+
+> On 5/18/2015 4:14 PM, Francesco Poli wrote:
+>> If it is confirmed that Gian Filippo contributed to the forking of=20=20
+>>=20DXPC within the NoMachine project, but not directly to DXPC, then I=20=
+=20
+>>=20think that he made his contributions available under the terms of=20=
+=20
+>>=20the GPL v2 of the NoMachine project. If this is the case, no=20=20
+>>=20feedback should be required from his side.
+
+> I can confirm that Gian Fillippo never contributed directly to DXPC.=20=
+=20
+>=20You'll note his name does not appear in the DXPC README, and never=20=
+=20
+>=20has.
+
+@Kevin: This is again good news for sorting out this issue. Thanks a=20=20
+lot=20for your help, Kevin.
+
+@Frederico: I guess we are through then. Thanks for helping with=20=20
+clarifying=20the situation (and bringing it up in the first place).
+
+For fixing this issue (in terms of closing the bug), I propose this=20=20
+for=20downstream (i.e., Debian):
+
+ o copy bug_784565.mbox [1] into the debian/ folder of the=20=20
+nx-libs-lite=20package
+ o upload some latest release of nx-libs-lite 3.5.0.x to unstable
+ o update debian/copyright accordingly
+ o close this bug via debian/changelog
+
+For upstream, I propose this:
+
+ o copy bug_784565.mbox into the docs/ folder
+ o update copyright information in nxcomp/ subfolder
+ o provide some README or such that shortly explains our last weeks' proc=
+ess
+ o this will be for the upcoming 3.6.x release series of nx-libs
+
+ o this should also be backported to the 3.5.x release series
+
+Once the mbox file and README are upstreamed, I will drop that content=20=
+=20
+from=20the debian/ folder in the Debian package nx-libs-lite (as it will=20=
+=20
+be=20in the upstream tarball of nx-libs-lite).
+
+Feedback (esp. from Frederico), concerns, other suggestions?
+
+Greets,
+Mike
+
+
+[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?mbox=3Dyes;bug=3D784565
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_AI4511z4pP7yPmTeeGgEoA6
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVWvEQAAoJEJr0azAldxsxiZgP/1MhcK1h2or3zG3P9h3oOqFk
+rsknSn/0paY8HlzggWh5N4juLU9ET/VyO+xMCbVFDXb9jv5ryRI0MinPGwp6ujTl
+DxHAz5q5YrC/NYH9IU0PqL2Zja952xbjlVPgf64+iLT0kqFmY7L48bkxVXd4cKnJ
+flflATeaPTcVgIVcfFte2q/NJV7AAGjwb/tEOOMbqrRYOu1hKLozWnRSLZ/rdl5V
+OmktCjfAfw6Cvy4/IN6pCjG4uqFvsWvzjMofR53MLuy8cwQhtpvK9KPLCZlo9Efm
+KyrFNl866Egmc/HTLQkSaOJOKartANw+Ev7qsVi30OJOEWh9T1fDjnFvLn6hesKf
+9pAS/+mkuCUVNjLI/ATZAwY93bzBS+vo7fya2D/DxDk8FoLIe7XdI9GABdTE2U0H
+eyNLb/Lq485BEQEu9ThtvACZYH3F3UqA7OcFfLKyVw2lsOJV7SN3KCl76te4iNcf
+UlVzVr211lKhGTV9hLF3daKntu1H3jQku9zLK9ShJR6bYTpCAsGi2h2xzZm5PLDE
+9tbf+qUmDn3lp4uMaBtBdtq+yt47Wk95iS41x/qyvy0PK/RdnPxTpfdbriu4+1l2
+ij6Dq5bb7GckZDmpVjSsGSr4jjWtJ5QrnZbpv/u/v3+wliZL0c+CScrA+5I/qJeI
+eGXnQIwqcWE/2/AcAz2r
+=Q2/H
+-----END PGP SIGNATURE-----
+
+--=_AI4511z4pP7yPmTeeGgEoA6--
+
+
+
+
+From invernomuto@paranoici.org Wed May 20 18:04:34 2015
+Received: (at 784565) by bugs.debian.org; 20 May 2015 18:04:34 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS,
+ SPF_PASS autolearn=ham autolearn_force=no
+ version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 11; hammy, 150; neutral, 212; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-,
+ 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH,
+ 0.000-+--H*c:pgp-signature
+Return-path: <invernomuto@paranoici.org>
+Received: from latitanza.investici.org ([82.94.249.234])
+ by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
+ (Exim 4.80)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1Yv8M4-00011u-4i
+ for 784565@bugs.debian.org; Wed, 20 May 2015 18:04:34 +0000
+Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id C5F33121147;
+ Wed, 20 May 2015 18:04:24 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org;
+ s=stigmate; t=1432145064;
+ bh=kDc9DoBw4hJZuuDTXyurpbInn9fdFF6IfH4jMVGqQB4=;
+ h=Date:From:To:Cc:Subject:In-Reply-To:References;
+ b=frjvhV6NrKV9TyZSGeK6evsHeI9sAgoPOPboFwSAIij0bPp1G5rCLaVWFjD1RtFsK
+ j+6I/XZ60KTIjiXaQGqqznF3jU2dQ/lzPkj1VYKa9Kmt1pw4UhJvU+mbyrO6cX2mSi
+ 52Wi1of3M+l/UT9DYKjXgzMRuWkYoAq4tmsOe9jY=
+Received: from frx by homebrew with local (Exim 4.85)
+ (envelope-from <invernomuto@paranoici.org>)
+ id 1Yv8LB-0001gi-7y; Wed, 20 May 2015 20:03:37 +0200
+Date: Wed, 20 May 2015 20:03:25 +0200
+From: Francesco Poli <invernomuto@paranoici.org>
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Cc: Kevin Vigor <kevin@vigor.nu>, 784565@bugs.debian.org,
+ opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com,
+ x2go-dev@lists.x2go.org
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565:
+ nx-libs-lite: parts are derived from non-free code
+Message-Id: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org>
+In-Reply-To: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de>
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu>
+ <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+ <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+ <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+ <555A558E.1020703@vigor.nu>
+ <1431985731.1406.2.camel@Nokia-N900>
+ <20150519001408.8e5452a098db48d6867af6cb@paranoici.org>
+ <555A8EE9.9000503@vigor.nu>
+ <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de>
+X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu)
+Mime-Version: 1.0
+Content-Type: multipart/signed; protocol="application/pgp-signature";
+ micalg="PGP-SHA256";
+ boundary="Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV"
+
+--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV
+Content-Type: text/plain; charset=US-ASCII
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote:
+
+[...]
+> @Frederico: I guess we are through then.
+
+Yes, it seems so (I'm assuming you meant to direct this question to
+me...).
+
+> Thanks for helping with =20
+> clarifying the situation (and bringing it up in the first place).
+
+You're welcome!
+Thanks to you and all the involved people for helping to solve this
+issue.
+
+>=20
+> For fixing this issue (in terms of closing the bug), I propose this =20
+> for downstream (i.e., Debian):
+>=20
+> o copy bug_784565.mbox [1] into the debian/ folder of the =20
+> nx-libs-lite package
+
+Maybe the entire bug log is an overkill...
+I would include the relevant replies only. For instance:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D784=
+565
+https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D784=
+565
+https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D784=
+565
+https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D78=
+4565
+
+> o upload some latest release of nx-libs-lite 3.5.0.x to unstable
+> o update debian/copyright accordingly
+
+In the debian/copyright file the license for the original DXPC code
+should be replaced with the 2-clause BSD license (currently adopted for
+DXPC) with a comment saying something like:
+
+ The original DXPC code used to be available under a license which
+ failed to explicitly grant the permission to modify, but was later
+ retroactively re-licensed under the 2-clause BSD license (see
+ debian/bug_784565_*.mbox for the copyright owners' statements; see
+ <https://bugs.debian.org/784565> for more details)
+
+Moreover, the copyright notice of Gian Filippo Pinzari should be
+documented in some more appropriate part of the debian/copyright file,
+associated with the NoMachine license (GPL v2 or later).
+
+> o close this bug via debian/changelog
+>=20
+> For upstream, I propose this:
+>=20
+> o copy bug_784565.mbox into the docs/ folder
+
+Again, I would not include the entire bug log, but only the relevant
+messages (see above)...
+
+> o update copyright information in nxcomp/ subfolder
+> o provide some README or such that shortly explains our last weeks' pr=
+ocess
+> o this will be for the upcoming 3.6.x release series of nx-libs
+>=20
+> o this should also be backported to the 3.5.x release series
+
+
+Thanks to everyone involved!
+Bye.
+
+--=20
+ http://www.inventati.org/frx/
+ There's not a second to spare! To the laboratory!
+..................................................... Francesco Poli .
+ GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE
+
+--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV
+Content-Type: application/pgp-signature
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAEBCAAGBQJVXMxyAAoJED4cJ+Efab/+yUsP/RWzC9NoVGF7UnEIEpJODu0u
+hVkX1zjpJ+iMByHVlatR90ulKwkvVb4d354YJqyI0VM2wUtif6XBoroB0K3i6vZE
+DsxugBlzhnH8jgpPVKbOyBKshpKKZsUbvDdEXM20ZkfI4xwokymiSdHOKoHH4ZHS
+WN9q+i6OezfWvZSKQ+VCbe7QiQABAcB+zCdVvUWevhNqMDKdhsDC03Ju+5YZQbse
+QbgYSazZvJouLPamivquh8nBdjGpPxqAJGrlUu3SR5slJxRojRvl2cl/CDFEQEQR
+gbLMnnr2nj1hF4JI2WaWCSX90NrGTfGxCN4IdNd7tmjtkg5lB+KFx63YjHbLmUl/
+k87XAyXxSWyGvc7M2xyIXBQQrHtRxtK0rdN+e7ht9PcXYyxUtQzr7vfPwvI+B2GV
+M23ZUoyV1rFp5JymbUL4Vk6pq/hLnv9FzwOySNVcj6Pt8eT+BcoSbwOI1AMq1P1S
+wCs/PhEGBA3TDWERXF0Fb7x24NEf7EdjmzKTGGdXTCfSkacxkGzsMaRpWb0D6IaV
+tSI6CmBQ9uOdkbiNDhGX4esosyJZJQ9GrnWX9d/lTs9wXUHHykvnYRbDzpkChZdI
+ICqc+IxnPmX6HU2kyq2ZAzfhx/drqLizcv0gQlyY6APjRu3EQ3tapR9kYB6BcuGU
+cMLlO0549ekk8/s3Zk0i
+=9Hew
+-----END PGP SIGNATURE-----
+
+--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV--
+
+
+
+From mike.gabriel@das-netzwerkteam.de Thu May 21 09:35:35 2015
+Received: (at 784565) by bugs.debian.org; 21 May 2015 09:35:35 +0000
+X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02
+ (2014-02-07) on buxtehude.debian.org
+X-Spam-Level:
+X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA,
+ HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham
+ autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02
+X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 222; spammy,
+ 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature,
+ 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed,
+ 0.000-+--H*RU:sk:grimnir
+Return-path: <mike.gabriel@das-netzwerkteam.de>
+Received: from freya.das-netzwerkteam.de ([88.198.48.199])
+ by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256)
+ (Exim 4.80)
+ (envelope-from <mike.gabriel@das-netzwerkteam.de>)
+ id 1YvMt4-0006Ry-Ri
+ for 784565@bugs.debian.org; Thu, 21 May 2015 09:35:35 +0000
+Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
+ by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 89FD21F2;
+ Thu, 21 May 2015 11:35:31 +0200 (CEST)
+Received: from localhost (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id C86AC3BAE9;
+ Thu, 21 May 2015 11:35:30 +0200 (CEST)
+X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
+Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
+ by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
+ with ESMTP id GqfEjOoeH2CA; Thu, 21 May 2015 11:35:30 +0200 (CEST)
+Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
+ by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 615DC3BAB2;
+ Thu, 21 May 2015 11:35:30 +0200 (CEST)
+Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
+ [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
+ Thu, 21 May 2015 09:35:30 +0000
+Date: Thu, 21 May 2015 09:35:30 +0000
+Message-ID: <20150521093530.Horde.Oeys0xv-mTUN5U5IZtdeLA1@mail.das-netzwerkteam.de>
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+To: Francesco Poli <invernomuto@paranoici.org>, 784565@bugs.debian.org
+Cc: nito.martinez@qindel.com, opensource@gznianguan.com
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565:
+ Bug#784565: nx-libs-lite: parts are derived from non-free code
+References: <20150506173532.7531.31389.reportbug@homebrew>
+ <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de>
+ <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org>
+ <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de>
+ <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900>
+ <20150512234048.054319a449ffadcf87577425@paranoici.org>
+ <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de>
+ <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de>
+ <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900>
+ <20150519001408.8e5452a098db48d6867af6cb@paranoici.org>
+ <555A8EE9.9000503@vigor.nu>
+ <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de>
+ <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org>
+In-Reply-To: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org>
+User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
+Accept-Language: de,en
+Organization: DAS-NETZWERKTEAM
+X-Originating-IP: 178.62.101.154
+X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
+ Firefox/32.0 Iceweasel/32.0
+Content-Type: multipart/signed; boundary="=_5hM8_j7kivGPCYTZql9Fug5";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+MIME-Version: 1.0
+
+This message is in MIME format and has been PGP signed.
+
+--=_5hM8_j7kivGPCYTZql9Fug5
+Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+Control: forwarded -1 https://github.com/ArcticaProject/nx-libs/issues/30
+
+Hi Francesco,
+
+On Mi 20 Mai 2015 20:03:25 CEST, Francesco Poli wrote:
+
+> On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote:
+>
+> [...]
+>> @Frederico: I guess we are through then.
+>
+> Yes, it seems so (I'm assuming you meant to direct this question to
+> me...).
+
+Yes. :-)
+
+>> For fixing this issue (in terms of closing the bug), I propose this
+>> for downstream (i.e., Debian):
+>>
+>> o copy bug_784565.mbox [1] into the debian/ folder of the
+>> nx-libs-lite package
+>
+> Maybe the entire bug log is an overkill...
+> I would include the relevant replies only. For instance:
+> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D7=
+84565
+> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D7=
+84565
+> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D7=
+84565
+> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D=
+784565
+
+ACK.
+
+>> o upload some latest release of nx-libs-lite 3.5.0.x to unstable
+>> o update debian/copyright accordingly
+>
+> In the debian/copyright file the license for the original DXPC code
+> should be replaced with the 2-clause BSD license (currently adopted for
+> DXPC) with a comment saying something like:
+>
+> The original DXPC code used to be available under a license which
+> failed to explicitly grant the permission to modify, but was later
+> retroactively re-licensed under the 2-clause BSD license (see
+> debian/bug_784565_*.mbox for the copyright owners' statements; see
+> <https://bugs.debian.org/784565> for more details)
+>
+> Moreover, the copyright notice of Gian Filippo Pinzari should be
+> documented in some more appropriate part of the debian/copyright file,
+> associated with the NoMachine license (GPL v2 or later).
+>
+>> o close this bug via debian/changelog
+>>
+>> For upstream, I propose this:
+>>
+>> o copy bug_784565.mbox into the docs/ folder
+>
+> Again, I would not include the entire bug log, but only the relevant
+> messages (see above)...
+>
+>> o update copyright information in nxcomp/ subfolder
+>> o provide some README or such that shortly explains our last=20=20
+>>=20weeks' process
+>> o this will be for the upcoming 3.6.x release series of nx-libs
+>>
+>> o this should also be backported to the 3.5.x release series
+
+Doing all the above now.
+
+Thanks to all,
+Mike
+
+--=20
+
+DAS-NETZWERKTEAM
+mike=20gabriel, herweg 7, 24357 fleckeby
+fon: +49 (1520) 1976 148
+
+GnuPG Key ID 0x25771B31
+mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
+
+freeBusy:
+https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
+fb
+
+--=_5hM8_j7kivGPCYTZql9Fug5
+Content-Type: application/pgp-signature
+Content-Description: Digitale PGP-Signatur
+Content-Disposition: inline
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJVXabiAAoJEJr0azAldxsxd4cP/in26lIPvdANMyDaqq3zQOMh
+n/Q+oZK5SYnHQP7vaS4mOWjTw5tCbfcUMcKwu1KpbgpUGOl9e1c/oKGxR3j5GWh3
+XiqQhPWEMf64OsM4vW5prJFrx0VNqfxykMWbGzQfs6Dz9ihJ6+HzVudOk3bfHwj2
+GahCflRo7xA1hJjwz5cIX1/WJaAF25TVSQ43jVpPu0pnAYOWvhOAZMpTJTZqRbgT
+peuFaiKE+NOb4C/WO9mkuO3wlEBZ5Ef/RinKQDlbV5/CZElEs1f42A4t5q909EVi
+U2PpaEis8BJAIKetl8g/bPoHh9u6X3tbeOKJlZBo5l2SMyLUG0sYsoAyhJKJtIvk
+gwdGdO71A7HLEJ6DfvE8vYXUPy9JEOQ6hhL2qeZOtJG2DZ2Qcoll9eK5scg2YutW
+ZXHRTYcCQeS4PQpvQPlCR5LuFTJeNBwJ0cWgtfXYPIrPMyeEZj/VP+Ypm82hBT+I
+JFjo80QjOEJ7uEM1wmn8nD0rbbP/NVf6ot/UcwlejC/XaYIlWDW5FrXf18UbGsvu
+VzaHkLbhbGUYedwsb50Uu6Nn4IX8IEcF3zbwnqmB5IlbPYV0UokjgtnKEIQbdmF4
+fQ5xe5u/p2aZTnQwt39vey2W/RxJVOHRjVVrYGv0eqgda8TYOWzI3UIjSYGfuLcU
+kDRest50Qfy4tmilPx3z
+=Cf5/
+-----END PGP SIGNATURE-----
+
+--=_5hM8_j7kivGPCYTZql9Fug5--
+
+
+
+
diff --git a/doc/nxcomp/README.on-retroactive-DXPC-license b/doc/nxcomp/README.on-retroactive-DXPC-license
new file mode 100644
index 000000000..563c82b69
--- /dev/null
+++ b/doc/nxcomp/README.on-retroactive-DXPC-license
@@ -0,0 +1,269 @@
+On DXPC retroactive relicensing as BSD-2-clause
+===============================================
+
+TL;DR; In May 2015, all versions of DXPC released before version 3.8.1 (sometime
+in 2002) have retroactively been re-licensed by all previous maintainers
+of DXPC as BSD-2-clause.
+
+This README file gives an overview of the discussion thread that lead to
+the retroactive re-licensing of DXPC.
+
+For the full discussion, see doc/DXPC_re-licensed_debug_784565.mbox in
+this source project or #784565 on the Debian bug tracker [1].
+
+light+love,
+20150521, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+
+[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784565
+
+------------------------------------------------------------------------------
+
+STEP 1
+======
+
+In May 2015, a serious license issue around the nxcomp code shipped in
+this source project was raised and solved on the Debian bug tracker (thanks to
+Francesco Poli and many others): http://bugs.debian.org/784565
+
+"""
+From: "Francesco Poli \(wintermute\)" <invernomuto@paranoici.org>
+To: Debian Bug Tracking System <submit@bugs.debian.org>
+Date: Wed, 06 May 2015 19:35:32 +0200
+
+I noticed that the debian/copyright states:
+
+[...]
+| Parts of this software are derived from DXPC project. These copyright
+| notices apply to original DXPC code:
+|
+| Redistribution and use in source and binary forms are permitted provided
+| that the above copyright notice and this paragraph are duplicated in all
+| such forms.
+|
+| THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+| WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+| MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+|
+| Copyright (c) 1995,1996 Brian Pane
+| Copyright (c) 1996,1997 Zachary Vonler and Brian Pane
+| Copyright (c) 1999 Kevin Vigor and Brian Pane
+| Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane
+[...]
+
+This license lacks the permission to modify the DXPC code.
+Hence, the original DXPC code does not appear to comply with the
+DFSG. And the nx-libs-lite is in part derived from DXPC code.
+
+This basically means that nx-libs-lite includes parts which are
+non-free (as they are derived from non-modifiable code) and
+are also possibly legally undistributable (as they are non-modifiable,
+but actually modified). The combination with the rest of nx-libs-lite
+(which is GPL-licensed) may also be legally undistributable (since
+the license with no permission to modify is GPL-incompatible).
+
+
+If there's anything I misunderstood, please clarify.
+
+Otherwise, please address this issue as soon as possible.
+The copyright owners for the original DXPC code should be
+contacted and persuaded to re-license under GPL-compatible
+terms.
+"""
+
+The issue has been settled by asking all recent maintainers (i.e.,
+copyright holders) of DXPC, to agree on considering the BSD-2-clause
+license (as introduced in DXPC 3.8.1) retro-actively as the license of
+all pre-3.8.1 DXPC releases.
+
+STEP 2:
+=======
+
+Kevin Vigor, the (at that time being) latest known maintainer of DXPC
+replied back immediately and provided the info given below. He also
+stated that he agrees to applying BSD-2-clause retroactively to all
+pre-3.8.1 releases of DXPC.
+
+"""
+From: Kevin Vigor <kevin@vigor.nu>
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+CC: 784565@bugs.debian.org, [...]
+Subject: Re: Bug#784565: nx-libs-lite: parts are derived from non-free code
+
+Hi Mike, et al,
+
+ I am not the original author of dxpc, that being Brian Pane. However,
+ I took over maintenance circa 1999 and am still the primary maintainer
+ (though the project has effectively been dead for most of a decade
+ now).
+
+ As you are aware, when I inherited the code, it was licensed under a
+ variant of the BSD license that did not include the 'with
+ modification' clause. To the best of my recollection, somebody from
+ the FSF contacted me circa 2001 regarding this and as a result,
+ subsequent releases were done under a standard 2-clause BSD license
+ with the modification clause. Again, to the best of my recollection, I
+ contacted Brian about this change and he offered no objection.
+
+ Further, I recall distinctly that NoMachine contacted me and
+ explicitly asked permission before including DXPC code in NX, which I
+ happily granted with no new conditions beyond the BSD license already
+ in play.
+
+ It is possible, though by no means certain, that I could dig up
+ ancient email to corroborate this account if necessary. However, I am
+ more than willing to publicly state that I believe NoMachine's use of
+ DXPC code to be both legal and ethical, and that my intent when
+ changing the license to 2-clause BSD was simply to clarity the
+ existing intent and that it ought therefore be considered retroactive.
+
+ Yours,
+ Kevin Vigor
+
+[...]
+"""
+
+STEP 3:
+-------
+
+We were not able to dig out any recent mail address of Zachary Volner,
+another of the DXPC copyright holders, but a phone number.
+
+On Friday, May 15th, I (Mike Gabriel) called that phone number and left a
+message on - hopefully - Zach's voicebox, asking him to mail me, so I
+could explain everything. He mailed back and later on posted the below
+statement to the Debian BTS, also expressing his agreement to the
+retroactive re-licensing of DXPC.
+
+"""
+Date: Mon, 18 May 2015 10:05:38 -0500
+Subject: Re: Bug#784565: nx-libs-lite: parts are derived from non-free code
+From: Zach Vonler <zvonler@gmail.com>
+To: 784565@bugs.debian.org
+
+On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel <
+mike.gabriel@das-netzwerkteam.de> wrote:
+
+>
+> TL;DR; So here comes my actual question: are you (Brian Pane, Zachary
+> Vonler, Gian Filippo Pinzari) ok with retroactively regarding
+> pre-3.8.1 code of DXPC (that you probably all worked on at that time)
+> as BSD-2-clause? Are you ok with others having taken or taking the
+> pre-3.8.1 DXPC code and distribute it in a modified form?
+>
+
+
+> A yes from all of you as DXPC copyright holders is essential for the
+> continuation of nx-libs development under a free license. This may
+> also possibly be an issue for NXv4 in case parts of it have been
+> derived from DXPC.
+
+
+Yes, I am fine with considering the license change to be retroactive to
+cover the time I was the maintainer.
+
+I have no objections to others distributing modified versions of that code.
+
+Zach
+"""
+
+STEP 4:
+-------
+
+By 18th May 2015, Brian Pane had not mailed back to us. Hoping he is well
+and alive. Giving my personal gratitude to him for his work on DXPC back
+in the nighties.
+
+However, Kevin found an old archive of the DXPC mailing lists, esp. a
+post by Brian expressing openness to modifications of all DXPC code
+versions.
+
+We refer to this regarding his consent on the re-licensing.
+
+"""
+Date: Mon, 18 May 2015 15:11:42 -0600
+From: Kevin Vigor <kevin@vigor.nu>
+To: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>, 784565@bugs.debian.org, Francesco Poli <invernomuto@paranoici.org>
+CC: [...]
+Subject: Re: Bug#784565: nx-libs-lite: parts are derived from non-free code
+
+By the way, poking around the interwebs I find there is an archive of the old DXPC mailing list available at:
+
+http://marc.info/?l=dxpc&r=1&w=2
+
+I think you will find this of particular interest:
+
+
+http://marc.info/?l=dxpc&m=93093790813555&w=2
+
+
+List: dxpc
+Subject: Re: future tecnologies
+From: Brian Pane <brianp () cnet ! com>
+Date: 1999-07-02 16:42:18
+[Download message RAW]
+
+Kevin Vigor <kvigor@eng.ascend.com> wrote:
+> On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote:
+> > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc
+> > code itself under GPL, or are they going to use the original dxpc's
+> > licensing?
+>
+> No, as you can probably guess, I am no fan of the GPL. For stuff on
+> this level, where my hacking is pretty simple and probably devoid of
+> commercial value, I'll just release my changes to the public domain and
+> give up even a copyright interest in them.
+>
+> Your and Zach's copyrights still stand, of course.
+>
+> I *think* that fact that we use the LZO library and API, but do not
+> directly incorporate the code, allows us to escape the clutch of the GPL
+> virus.
+>
+> btw, is there an original dxpc license? I haven't seen anything but a
+> copyright notice, which to my non-lawyerly mind translates as "free to
+> all the world as is, negotiate with copyright owner if modifying or
+> including in some other product".
+
+The copyright banner in the Readme is all the documentation there's ever
+been. My intent was to allow _any_ distribution, use, and modification
+of the source, without imposing restrictions on the licensing style of
+any system into which others might incorporate the code. We probably
+should start stating this clearly in the distributions.
+
+-brian
+
+[prev in list] [next in list] [prev in thread] [next in thread]
+"""
+
+STEP 5:
+-------
+
+Last but not least, Kevin informed us that Gian Filippo Pinzari never
+contributed any code to any of the official DPXC releases. So we assumed
+that his copyrights on the code stem from the time where he - under the
+NoMachine umbrella - worked on the code and should probably be associated
+with the GPL-2 re-licensing of the code later on done by NoMachine
+(which we did in the LICENSE file).
+
+It also appears, that there has been an incongruity between the copyright
+statement in nxcomp/Misc.cpp and nxcomp/LICENSE for Gian Filippo Pinzari.
+We used the copyright years (2000,2003) from nxcomp/Misc.cpp instead of
+those originally given in nxcomp/LICENSE (2000,2006).
+
+"""
+Date: Mon, 18 May 2015 19:16:25 -0600
+From: Kevin Vigor <kevin@vigor.nu>
+To: Francesco Poli <invernomuto@paranoici.org>,
+ Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+CC: 784565@bugs.debian.org, [...]
+Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts are derived from non-free code
+
+On 5/18/2015 4:14 PM, Francesco Poli wrote:
+> If it is confirmed that Gian Filippo contributed to the forking of
+> DXPC within the NoMachine project, but not directly to DXPC, then I
+> think that he made his contributions available under the terms of the
+> GPL v2 of the NoMachine project. If this is the case, no feedback
+> should be required from his side.
+I can confirm that Gian Fillippo never contributed directly to DXPC.
+You'll note his name does not appear in the DXPC README, and never has.
+"""
diff --git a/doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdf b/doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdf
new file mode 100644
index 000000000..109f96ab7
--- /dev/null
+++ b/doc/nxcomp/nxcomp-3.6-drops-compat-code-3.4.x-testing.pdf
Binary files differ
diff --git a/doc/nxcompext/symbols/nxcompext::symbol-usage_internally.txt b/doc/nxcompext/symbols/nxcompext::symbol-usage_internally.txt
new file mode 100644
index 000000000..a18ba4a81
--- /dev/null
+++ b/doc/nxcompext/symbols/nxcompext::symbol-usage_internally.txt
@@ -0,0 +1,1089 @@
+
+#### AlphaCompressData ####
+Alpha.c:46:char *AlphaCompressData(const char *data, unsigned int size, unsigned int *compressed_size)
+Compext.c:2634: return AlphaCompressData(src_data, src_size, dst_size);
+Alpha.h:33:extern char *AlphaCompressData(
+
+#### BitmapCompressData ####
+Bitmap.c:38:char *BitmapCompressData(XImage *image, unsigned int *size)
+Bitmap.c:43: fprintf(stderr, "******BitmapCompressData: Nothing to do with image of [%d] bpp and size [%d].\n",
+Bitmap.c:66: fprintf(stderr, "******BitmapCompressData: PANIC! Image as [%d] bytes per line with expected [%d].\n",
+Bitmap.c:81: fprintf(stderr, "******BitmapCompressData: PANIC! Failed to allocate [%d] bytes for the destination.\n",
+Compext.c:2750: dst_image -> data = BitmapCompressData(src_image, &dst_size);
+Bitmap.h:33:extern char *BitmapCompressData(
+
+#### CleanXYImage ####
+Clean.c:40:int CleanXYImage(XImage *image)
+Compext.c:2094: return CleanXYImage(image);
+Compext.c:2103: return CleanXYImage(image);
+Clean.h:35:int CleanXYImage(XImage *image);
+
+#### CleanZImage ####
+Clean.c:85:int CleanZImage(XImage *image)
+Clean.c:92: fprintf(stderr, "*****CleanZImage: Going to clean image of [%d] bits per pixel.\n",
+Clean.c:113: fprintf(stderr, "*****CleanZImage: Cleaning [%d] bytes with bits per pixel [%d] "
+Clean.c:159: fprintf(stderr, "*****CleanZImage: PANIC! Cannot clean image with [%d] bits per pixel.\n",
+Compext.c:2098: return CleanZImage(image);
+Clean.h:36:int CleanZImage(XImage *image);
+
+#### ColormapCompressData ####
+Colormap.c:46:char *ColormapCompressData(const char *data, unsigned int size, unsigned int *compressed_size)
+Compext.c:2629: return ColormapCompressData(src_data, src_size, dst_size);
+Colormap.h:33:extern char *ColormapCompressData(
+
+#### CopyAndCleanImage ####
+Clean.c:189:int CopyAndCleanImage(XImage *src_image, XImage *dst_image)
+Compext.c:2215: if (CopyAndCleanImage(src_image, dst_image) <= 0)
+Clean.h:38:int CopyAndCleanImage(XImage *src_image, XImage *dst_image);
+
+#### FindLSB ####
+Jpeg.c:137: redShift = FindLSB(image -> red_mask) - 1;
+Jpeg.c:138: greenShift = FindLSB(image -> green_mask) - 1;
+Jpeg.c:139: blueShift = FindLSB(image -> blue_mask) - 1;
+Mask.c:785:int FindLSB(int word)
+Png.c:289: redShift = FindLSB(image -> red_mask) - 1;
+Png.c:290: greenShift = FindLSB(image -> green_mask) - 1;
+Png.c:291: blueShift = FindLSB(image -> blue_mask) - 1;
+Mask.h:42:int FindLSB(int word);
+
+#### JpegCompressData ####
+Compext.c:2810: dst_image -> data = JpegCompressData(src_image, quality, &size);
+Jpeg.c:109:char *JpegCompressData(XImage *image, int level, int *compressed_size)
+Jpeg.c:130: fprintf(stderr, "******JpegCompressData: Image byte order [%d] bitmap bit order [%d].\n",
+Jpeg.c:133: fprintf(stderr, "******JpegCompressData: Bits per pixel [%d] bytes per line [%d].\n",
+Jpeg.c:142: fprintf(stderr, "******JpegCompressData: Red mask [0x%lx] green mask [0x%lx] blue mask [0x%lx].\n",
+Jpeg.c:145: fprintf(stderr, "******JpegCompressData: Red shift [%d] green shift [%d] blue shift [%d].\n",
+Jpeg.c:154: fprintf(stderr, "******JpegCompressData: Red max [0x%x] green max [0x%x] blue max [0x%x].\n",
+Jpeg.c:164: fprintf(stderr, "******JpegCompressData: Width [%d] height [%d] level [%d].\n",
+Jpeg.c:172: fprintf(stderr, "******JpegCompressData: PANIC! Invalid bits per pixel [%d].\n",
+Jpeg.c:185: fprintf(stderr, "******JpegCompressData: Allocating [%d] bytes for the scanline.\n",
+Jpeg.c:194: fprintf(stderr, "******JpegCompressData: PANIC! Cannot allocate [%d] bytes.\n",
+Jpeg.c:223: fprintf(stderr, "******JpegCompressData: Allocating [%d] bytes for the destination data.\n",
+Jpeg.c:232: fprintf(stderr, "******JpegCompressData: PANIC! Error allocating [%d] bytes for the Jpeg data.\n",
+Jpeg.h:33:extern char *JpegCompressData(
+
+#### MaskImage ####
+Compext.c:247:#define CanMaskImage(image, mask) \
+Compext.c:254:#define ShouldMaskImage(image, mask) (mask -> color_mask != 0xff)
+Compext.c:2141: else if (CanMaskImage(src_image, mask) == 0)
+Compext.c:2208: ShouldMaskImage(src_image, mask) == 0)
+Compext.c:2228: else if (MaskImage(mask, src_image, dst_image) <= 0)
+Compext.c:2328: else if (CanMaskImage(src_image, mask) == 0)
+Compext.c:2381: ShouldMaskImage(src_image, mask) == 0)
+Compext.c:2934:void NXMaskImage(XImage *image, unsigned int method)
+Compext.c:2952: fprintf(stderr, "******NXMaskImage: Method is MASK_8_COLORS\n");
+Compext.c:2963: fprintf(stderr, "******NXMaskImage: Method is MASK_64K_COLORS\n");
+Compext.c:2974: fprintf(stderr, "******NXMaskImage: Method is MASK_256_COLORS\n");
+Compext.c:2985: fprintf(stderr, "******NXMaskImage: Method is MASK_512K_COLORS\n");
+Compext.c:2996: fprintf(stderr, "******NXMaskImage: Method is MASK_4K_COLORS\n");
+Compext.c:3007: fprintf(stderr, "******NXMaskImage: Method is MASK_32K_COLORS\n");
+Compext.c:3018: fprintf(stderr, "******NXMaskImage: Method is MASK_64K_COLORS\n");
+Compext.c:3029: fprintf(stderr, "******NXMaskImage: Method is MASK_256K_COLORS\n");
+Compext.c:3040: fprintf(stderr, "******NXMaskImage: Method is MASK_2M_COLORS\n");
+Compext.c:3051: fprintf(stderr, "******NXMaskImage: Method is MASK_16M_COLORS\n");
+Compext.c:3059: fprintf(stderr, "******NXMaskImage: PANIC! Cannot find mask method for pack method [%d]\n",
+Compext.c:3068: fprintf(stderr, "******NXMaskImage: packMethod[%d] => maskMethod[%d]\n",
+Compext.c:3083: fprintf(stderr, "******NXMaskImage: PANIC! No mask to apply for pack method [%d].\n",
+Compext.c:3089: else if (CanMaskImage(image, mask) == 0)
+Compext.c:3092: fprintf(stderr, "******NXMaskImage: PANIC! Invalid source with format [%d] depth [%d] bits per pixel [%d].\n",
+Compext.c:3095: fprintf(stderr, "******NXMaskImage: PANIC! Visual colormask is red 0x%lx green 0x%lx blue 0x%lx.\n",
+Compext.c:3103: * Calling ShouldMaskImage you get 0 in the case
+Compext.c:3108: if (ShouldMaskImage(image, mask) == 0)
+Compext.c:3111: fprintf(stderr, "******NXMaskImage: the image will not be masked\n");
+Compext.c:3119: fprintf(stderr, "******NXMaskImage: PANIC! Failed to apply the color mask in place.\n");
+Mask.c:67:int MaskImage(const ColorMask *mask, XImage *src_image, XImage *dst_image)
+Mask.c:82: fprintf(stderr, "******MaskImage: Going to mask image with [%d] bits per pixel.\n",
+Mask.c:101: fprintf(stderr, "******MaskImage: 24/32 bits original R [%d] G [%d] B [%d] A [%d].\n",
+Mask.c:108: fprintf(stderr, "******MaskImage: 24/32 bits masked R [%d] G [%d] B [%d] A [%d].\n",
+Mask.c:113: fprintf(stderr, "******MaskImage: 24/32 bits pixel 0x%lx", pixel);
+Mask.c:151: fprintf(stderr, "******MaskImage: 16 bits original R [%d] G [%d] B [%d].\n",
+Mask.c:158: fprintf(stderr, "******MaskImage: 16 bits masked R [%d] G [%d] B [%d].\n",
+Mask.c:167: fprintf(stderr, "******MaskImage: 16 bits pixel 0x%x", dst_pixels_addr[0]);
+Mask.c:175: fprintf(stderr, "******MaskImage: 16 bits original R [%d] G [%d] B [%d].\n",
+Mask.c:182: fprintf(stderr, "******MaskImage: 16 bits masked R [%d] G [%d] B [%d].\n",
+Mask.c:191: fprintf(stderr, "******MaskImage: 16 bits pixel 0x%x", dst_pixels_addr[0]);
+Mask.c:215: fprintf(stderr, "******MaskImage: PANIC! Cannot apply mask with [%d] bits per pixel.\n",
+Mask.c:371: fprintf(stderr, "******MaskImage: PANIC! Cannot apply mask with [%d] bits per pixel.\n",
+Compext.h:759:extern void NXMaskImage(
+Mask.h:35:extern int MaskImage(const ColorMask *mask, XImage *src_image, XImage *dst_image);
+
+#### MaskInPlaceImage ####
+Compext.c:2399: else if (MaskInPlaceImage(mask, dst_image) <= 0)
+Compext.c:3116: if (MaskInPlaceImage(mask, image) <= 0)
+Mask.c:225:int MaskInPlaceImage(const ColorMask *mask, XImage *image)
+Mask.c:240: fprintf(stderr, "******MaskInPlaceImage: Going to mask image with [%d] bits per pixel.\n",
+Mask.c:259: fprintf(stderr, "******MaskInPlaceImage: 24/32 bits original R [%d] G [%d] B [%d] A [%d].\n",
+Mask.c:266: fprintf(stderr, "******MaskInPlaceImage: 24/32 bits masked R [%d] G [%d] B [%d] A [%d].\n",
+Mask.c:271: fprintf(stderr, "******MaskInPlaceImage: 24/32 bits pixel 0x%lx", pixel);
+Mask.c:307: fprintf(stderr, "******MaskInPlaceImage: 16 bits original R [%d] G [%d] B [%d].\n",
+Mask.c:314: fprintf(stderr, "******MaskInPlaceImage: 16 bits masked R [%d] G [%d] B [%d].\n",
+Mask.c:323: fprintf(stderr, "******MaskInPlaceImage: 16 bits pixel 0x%x", pixels_addr[0]);
+Mask.c:331: fprintf(stderr, "******MaskInPlaceImage: 16 bits original R [%d] G [%d] B [%d].\n",
+Mask.c:338: fprintf(stderr, "******MaskInPlaceImage: 16 bits masked R [%d] G [%d] B [%d].\n",
+Mask.c:347: fprintf(stderr, "******MaskInPlaceImage: 16 bits pixel 0x%x", pixels_addr[1]);
+Mask.h:37:extern int MaskInPlaceImage(const ColorMask *mask, XImage *image);
+
+#### NXAbortSplit ####
+Compext.c:1418:int NXAbortSplit(Display *dpy, unsigned int resource)
+Compext.c:1420: register xNXAbortSplitReq *req;
+Compext.c:1424: GetReq(NXAbortSplit, req);
+Compext.c:1427: fprintf(stderr, "******NXAbortSplit: Sending message opcode [%d] with resource [%u].\n",
+Compext.c:1428: X_NXAbortSplit, resource);
+Compext.h:491:extern int NXAbortSplit(
+
+#### NXAllocColors ####
+Compext.c:2574:int NXAllocColors(Display *dpy, Colormap colormap, unsigned int entries,
+Compext.h:668:extern int NXAllocColors(
+
+#### NXAllocSplit ####
+Compext.c:1276:unsigned int NXAllocSplit(Display *dpy, unsigned int resource)
+Compext.c:1287: fprintf(stderr, "******NXAllocSplit: Reserved resource [%u].\n",
+Compext.c:1296: fprintf(stderr, "******NXAllocSplit: WARNING! Resource limit exausted.\n");
+Compext.c:1307: fprintf(stderr, "******NXAllocSplit: Reserved requested resource [%u].\n",
+Compext.c:1312: fprintf(stderr, "******NXAllocSplit: Requested resource [%u] already reserved.\n",
+Compext.c:1322: fprintf(stderr, "******NXAllocSplit: PANIC! Can't reserve requested resource [%u].\n",
+Compext.h:459:extern unsigned int NXAllocSplit(
+
+#### NXAllocUnpack ####
+Compext.c:1561:unsigned int NXAllocUnpack(Display *dpy, unsigned int resource)
+Compext.c:1572: fprintf(stderr, "******NXAllocUnpack: Reserved resource [%u].\n",
+Compext.c:1581: fprintf(stderr, "******NXAllocUnpack: WARNING! Resource limit exausted.\n");
+Compext.c:1592: fprintf(stderr, "******NXAllocUnpack: Reserved requested resource [%u].\n",
+Compext.c:1597: fprintf(stderr, "******NXAllocUnpack: Requested resource [%u] already reserved.\n",
+Compext.c:1607: fprintf(stderr, "******NXAllocUnpack: PANIC! Can't reserve requested resource [%u].\n",
+Compext.h:531:extern unsigned int NXAllocUnpack(
+
+#### NXCacheAddImage ####
+Compext.c:3318:int NXCacheAddImage(NXPackedImage *image, unsigned int method, unsigned char *md5)
+Compext.c:3325: fprintf(stderr, "******NXCacheAddImage: PANIC! Invalid image passed to function.\n");
+Compext.c:3336: fprintf(stderr, "******NXCacheAddImage: Freeing up the oldest entry.\n");
+Compext.c:3354: fprintf(stderr, "******NXCacheAddImage: Going to add new image with data size [%d].\n",
+Compext.c:3364: _NXCacheDump("******NXCacheAddImage");
+Compext.h:789:extern int NXCacheAddImage(
+
+#### NXCacheFindImage ####
+Compext.c:3205:XImage *NXCacheFindImage(NXPackedImage *src_image, unsigned int *method, unsigned char **md5)
+Compext.c:3226: fprintf(stderr, "******NXCacheFindImage: Can't allocate memory for the checksum.\n");
+Compext.c:3260: fprintf(stderr, "******NXCacheFindImage: Found at position [%d] with hits [%d] and [%d] packs.\n",
+Compext.c:3275: fprintf(stderr, "******NXCacheFindImage: Moving the image at the head of the list.\n");
+Compext.c:3286: _NXCacheDump("******NXCacheFindImage");
+Compext.h:781:extern XImage *NXCacheFindImage(
+
+#### NXCleanImage ####
+Compext.c:2082:int NXCleanImage(XImage *image)
+Compext.c:2085: fprintf(stderr, "******NXCleanImage: Cleaning image with format [%d] depth [%d] "
+Compext.c:2388: if (NXCleanImage(dst_image) <= 0)
+Compext.h:753:extern int NXCleanImage(
+
+#### NXCollectGrabPointer ####
+Compext.c:152:} _NXCollectGrabPointerState;
+Compext.c:154:static _NXCollectGrabPointerState *_NXCollectedGrabPointers[NXNumberOfResources];
+Compext.c:4204: async_event.xclient.data.l[0] = NXCollectGrabPointerNotify;
+Compext.c:4211:static Bool _NXCollectGrabPointerHandler(Display *dpy, xReply *rep, char *buf,
+Compext.c:4214: register _NXCollectGrabPointerState *state;
+Compext.c:4222: state = (_NXCollectGrabPointerState *) data;
+Compext.c:4228: fprintf(stderr, "******_NXCollectGrabPointerHandler: Unmatched sequence [%d] for opcode [%d] "
+Compext.c:4237: fprintf(stderr, "******_NXCollectGrabPointerHandler: Going to handle asynchronous GrabPointer reply.\n");
+Compext.c:4249: fprintf(stderr, "******_NXCollectGrabPointerHandler: Error received from X server for resource [%d].\n",
+Compext.c:4263: fprintf(stderr, "******_NXCollectGrabPointerHandler: Matched request with sequence [%ld].\n",
+Compext.c:4274: fprintf(stderr, "******_NXCollectGrabPointerHandler: PANIC! Failed to allocate memory with resource [%d].\n",
+Compext.c:4288: fprintf(stderr, "******_NXCollectGrabPointerHandler: Going to get reply with size [%d].\n",
+Compext.c:4297: fprintf(stderr, "******_NXCollectGrabPointerHandler: PANIC! Failed to get reply with resource [%d].\n",
+Compext.c:4313: fprintf(stderr, "******_NXCollectGrabPointerHandler: Got reply with status [%d] size [%d].\n",
+Compext.c:4341:int NXCollectGrabPointer(Display *dpy, unsigned int resource, Window grab_window, Bool owner_events,
+Compext.c:4347: _NXCollectGrabPointerState *state;
+Compext.c:4353: fprintf(stderr, "******NXCollectGrabPointer: PANIC! Provided resource [%u] is out of range.\n",
+Compext.c:4365: fprintf(stderr, "******NXCollectGrabPointer: PANIC! Having to remove previous state for resource [%u].\n",
+Compext.c:4395: fprintf(stderr, "******NXCollectGrabPointer: Sending message opcode [%d] sequence [%ld] "
+Compext.c:4399: state = Xmalloc(sizeof(_NXCollectGrabPointerState));
+Compext.c:4405: fprintf(stderr, "******NXCollectGrabPointer: Failed to allocate memory with resource [%d].\n",
+Compext.c:4433: handler -> handler = _NXCollectGrabPointerHandler;
+Compext.c:4448: register _NXCollectGrabPointerState *state;
+Compext.h:863:extern int NXCollectGrabPointer(
+
+#### NXCollectImage ####
+Compext.c:116:} _NXCollectImageState;
+Compext.c:118:static _NXCollectImageState *_NXCollectedImages[NXNumberOfResources];
+Compext.c:3441: async_event.xclient.data.l[0] = NXCollectImageNotify;
+Compext.c:3448:static Bool _NXCollectImageHandler(Display *dpy, xReply *rep, char *buf,
+Compext.c:3451: register _NXCollectImageState *state;
+Compext.c:3460: state = (_NXCollectImageState *) data;
+Compext.c:3466: fprintf(stderr, "******_NXCollectImageHandler: Unmatched sequence [%d] for opcode [%d] "
+Compext.c:3475: fprintf(stderr, "******_NXCollectImageHandler: Going to handle asynchronous GetImage reply.\n");
+Compext.c:3494: fprintf(stderr, "******_NXCollectImageHandler: Error received from X server for resource [%d].\n",
+Compext.c:3508: fprintf(stderr, "******_NXCollectImageHandler: Matched request with sequence [%ld].\n",
+Compext.c:3519: fprintf(stderr, "******_NXCollectImageHandler: PANIC! Failed to allocate memory with resource [%d].\n",
+Compext.c:3533: fprintf(stderr, "******_NXCollectImageHandler: Going to get reply with size [%d].\n",
+Compext.c:3542: fprintf(stderr, "******_NXCollectImageHandler: PANIC! Failed to get reply with resource [%d].\n",
+Compext.c:3558: fprintf(stderr, "******_NXCollectImageHandler: Got reply with depth [%d] visual [%d] size [%d].\n",
+Compext.c:3571: fprintf(stderr, "******_NXCollectImageHandler: PANIC! Failed to allocate memory with resource [%d].\n",
+Compext.c:3587: fprintf(stderr, "******_NXCollectImageHandler: Going to get data with size [%d].\n",
+Compext.c:3617: fprintf(stderr, "******_NXCollectImageHandler: PANIC! Failed to create image for resource [%d].\n",
+Compext.c:3634: fprintf(stderr, "******_NXCollectImageHandler: Successfully stored image data for resource [%d].\n",
+Compext.c:3641: fprintf(stderr, "******_NXCollectImageHandler: WARNING! Null image data stored for resource [%d].\n",
+Compext.c:3668:int NXCollectImage(Display *dpy, unsigned int resource, Drawable drawable,
+Compext.c:3674: _NXCollectImageState *state;
+Compext.c:3680: fprintf(stderr, "******NXCollectImage: PANIC! Provided resource [%u] is out of range.\n",
+Compext.c:3692: fprintf(stderr, "******NXCollectImage: PANIC! Having to remove previous state for resource [%u].\n",
+Compext.c:3726: fprintf(stderr, "******NXCollectImage: Sending message opcode [%d] sequence [%ld] for resource [%d].\n",
+Compext.c:3729: fprintf(stderr, "******NXCollectImage: Format [%d] drawable [%d] src_x [%d] src_y [%d].\n",
+Compext.c:3732: fprintf(stderr, "******NXCollectImage: Width [%d] height [%d] plane_mask [%x].\n",
+Compext.c:3736: state = Xmalloc(sizeof(_NXCollectImageState));
+Compext.c:3742: fprintf(stderr, "******NXCollectImage: PANIC! Failed to allocate memory with resource [%d].\n",
+Compext.c:3774: handler -> handler = _NXCollectImageHandler;
+Compext.c:3789: register _NXCollectImageState *state;
+Compext.h:804:extern int NXCollectImage(
+
+#### NXCollectInputFocus ####
+Compext.c:168:} _NXCollectInputFocusState;
+Compext.c:170:static _NXCollectInputFocusState *_NXCollectedInputFocuses[NXNumberOfResources];
+Compext.c:4488: async_event.xclient.data.l[0] = NXCollectInputFocusNotify;
+Compext.c:4495:static Bool _NXCollectInputFocusHandler(Display *dpy, xReply *rep, char *buf,
+Compext.c:4498: register _NXCollectInputFocusState *state;
+Compext.c:4506: state = (_NXCollectInputFocusState *) data;
+Compext.c:4512: fprintf(stderr, "******_NXCollectInputFocusHandler: Unmatched sequence [%d] for opcode [%d] "
+Compext.c:4521: fprintf(stderr, "******_NXCollectInputFocusHandler: Going to handle asynchronous GetInputFocus reply.\n");
+Compext.c:4533: fprintf(stderr, "******_NXCollectInputFocusHandler: Error received from X server for resource [%d].\n",
+Compext.c:4547: fprintf(stderr, "******_NXCollectInputFocusHandler: Matched request with sequence [%ld].\n",
+Compext.c:4558: fprintf(stderr, "******_NXCollectInputFocusHandler: PANIC! Failed to allocate memory with resource [%d].\n",
+Compext.c:4572: fprintf(stderr, "******_NXCollectInputFocusHandler: Going to get reply with size [%d].\n",
+Compext.c:4581: fprintf(stderr, "******_NXCollectInputFocusHandler: PANIC! Failed to get reply with resource [%d].\n",
+Compext.c:4597: fprintf(stderr, "******_NXCollectInputFocusHandler: Got reply with focus [%d] revert to [%d] "
+Compext.c:4627:int NXCollectInputFocus(Display *dpy, unsigned int resource)
+Compext.c:4631: _NXCollectInputFocusState *state;
+Compext.c:4637: fprintf(stderr, "******NXCollectInputFocus: PANIC! Provided resource [%u] is out of range.\n",
+Compext.c:4649: fprintf(stderr, "******NXCollectInputFocus: PANIC! Having to remove previous state for resource [%u].\n",
+Compext.c:4670: fprintf(stderr, "******NXCollectInputFocus: Sending message opcode [%d] sequence [%ld] for resource [%d].\n",
+Compext.c:4674: state = Xmalloc(sizeof(_NXCollectInputFocusState));
+Compext.c:4680: fprintf(stderr, "******NXCollectInputFocus: Failed to allocate memory with resource [%d].\n",
+Compext.c:4709: handler -> handler = _NXCollectInputFocusHandler;
+Compext.c:4725: register _NXCollectInputFocusState *state;
+Compext.h:892:extern int NXCollectInputFocus(
+
+#### NXCollectProperty ####
+Compext.c:137:} _NXCollectPropertyState;
+Compext.c:139:static _NXCollectPropertyState *_NXCollectedProperties[NXNumberOfResources];
+Compext.c:3834: async_event.xclient.data.l[0] = NXCollectPropertyNotify;
+Compext.c:3841:static Bool _NXCollectPropertyHandler(Display *dpy, xReply *rep, char *buf,
+Compext.c:3844: register _NXCollectPropertyState *state;
+Compext.c:3853: state = (_NXCollectPropertyState *) data;
+Compext.c:3859: fprintf(stderr, "******_NXCollectPropertyHandler: Unmatched sequence [%d] for opcode [%d] "
+Compext.c:3868: fprintf(stderr, "******_NXCollectPropertyHandler: Going to handle asynchronous GetProperty reply.\n");
+Compext.c:3887: fprintf(stderr, "******_NXCollectPropertyHandler: Error received from X server for resource [%d].\n",
+Compext.c:3901: fprintf(stderr, "******_NXCollectPropertyHandler: Matched request with sequence [%ld].\n",
+Compext.c:3912: fprintf(stderr, "******_NXCollectPropertyHandler: PANIC! Failed to allocate memory with resource [%d].\n",
+Compext.c:3926: fprintf(stderr, "******_NXCollectPropertyHandler: Going to get reply with size [%d].\n",
+Compext.c:3935: fprintf(stderr, "******_NXCollectPropertyHandler: PANIC! Failed to get reply with resource [%d].\n",
+Compext.c:3951: fprintf(stderr, "******_NXCollectPropertyHandler: Got reply with format [%d] type [%d] size [%d].\n",
+Compext.c:3954: fprintf(stderr, "******_NXCollectPropertyHandler: Bytes after [%d] number of items [%d].\n",
+Compext.c:3972: fprintf(stderr, "******_NXCollectPropertyHandler: PANIC! Failed to allocate memory with resource [%d].\n",
+Compext.c:3988: fprintf(stderr, "******_NXCollectPropertyHandler: Going to get data with size [%d].\n",
+Compext.c:4002: fprintf(stderr, "******_NXCollectPropertyHandler: Successfully stored property data for resource [%d].\n",
+Compext.c:4009: fprintf(stderr, "******_NXCollectPropertyHandler: WARNING! Null property data stored for resource [%d].\n",
+Compext.c:4036:int NXCollectProperty(Display *dpy, unsigned int resource, Window window, Atom property,
+Compext.c:4041: _NXCollectPropertyState *state;
+Compext.c:4047: fprintf(stderr, "******NXCollectProperty: PANIC! Provided resource [%u] is out of range.\n",
+Compext.c:4059: fprintf(stderr, "******NXCollectProperty: PANIC! Having to remove previous state for resource [%u].\n",
+Compext.c:4092: fprintf(stderr, "******NXCollectProperty: Sending message opcode [%d] sequence [%ld] for resource [%d].\n",
+Compext.c:4095: fprintf(stderr, "******NXCollectProperty: Delete [%u] window [%d] property [%d] type [%d].\n",
+Compext.c:4098: fprintf(stderr, "******NXCollectProperty: Long offset [%d] long length [%d].\n",
+Compext.c:4102: state = Xmalloc(sizeof(_NXCollectPropertyState));
+Compext.c:4108: fprintf(stderr, "******NXCollectProperty: Failed to allocate memory with resource [%d].\n",
+Compext.c:4142: handler -> handler = _NXCollectPropertyHandler;
+Compext.c:4159: register _NXCollectPropertyState *state;
+Compext.h:832:extern int NXCollectProperty(
+
+#### NXCommitSplit ####
+Compext.c:1391:int NXCommitSplit(Display *dpy, unsigned int resource, unsigned int propagate,
+Compext.c:1394: register xNXCommitSplitReq *req;
+Compext.c:1398: GetReq(NXCommitSplit, req);
+Compext.c:1406: fprintf(stderr, "******NXCommitSplit: Sending opcode [%d] with resource [%d] propagate [%d] "
+Compext.c:1407: "request [%d] position [%d].\n", X_NXCommitSplit, resource,
+Compext.h:426: * NXCommitSplitNotify One of the requests that made up the
+Compext.h:481:extern int NXCommitSplit(
+
+#### NXCreatePackedImage ####
+Compext.c:2050:NXPackedImage *NXCreatePackedImage(Display *dpy, Visual *visual, unsigned int method,
+Compext.h:601:NXPackedImage *NXCreatePackedImage(
+
+#### NXCreatePalette16 ####
+Png.c:176:int NXCreatePalette16(XImage *src_image, NXColorTable *color_table, CARD8 *image_index, int nb_max)
+Png.c:385: nb_colors = NXCreatePalette16(image, color_table, image_index, NB_COLOR_MAX);
+Png.h:53:int NXCreatePalette16(
+
+#### NXCreatePalette32 ####
+Png.c:112:int NXCreatePalette32(XImage *src_image, NXColorTable *color_table, CARD8 *image_index, int nb_max)
+Png.c:389: nb_colors = NXCreatePalette32(image, color_table, image_index, NB_COLOR_MAX);
+Png.h:62:int NXCreatePalette32(
+
+#### NXDestroyPackedImage ####
+Compext.c:2073:int NXDestroyPackedImage(NXPackedImage *image)
+Compext.h:617:extern int NXDestroyPackedImage(
+
+#### NXDisplayCongestion ####
+Compext.c:645:int NXDisplayCongestion(Display *dpy)
+Compext.c:651: fprintf(stderr, "******NXDisplayCongestion: Returning [%d] as congestion level for fd [%d].\n",
+Compext.h:192:extern int NXDisplayCongestion(
+
+#### NXDisplayError ####
+Compext.c:580:int NXDisplayError(Display *dpy)
+Compext.c:585: (_NXDisplayErrorFunction != NULL &&
+Compext.c:586: (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy))));
+Compext.c:689:NXDisplayErrorPredicate NXSetDisplayErrorPredicate(NXDisplayErrorPredicate predicate)
+Compext.c:691: NXDisplayErrorPredicate previous = _NXDisplayErrorFunction;
+Compext.c:693: _NXDisplayErrorFunction = predicate;
+Compext.h:156:extern int NXDisplayError(
+Compext.h:216:extern NXDisplayErrorPredicate NXSetDisplayErrorPredicate(
+Compext.h:218: NXDisplayErrorPredicate /* predicate */
+
+#### NXDisplayFlushable ####
+Compext.c:622:int NXDisplayFlushable(Display *dpy)
+Compext.c:631: fprintf(stderr, "******NXDisplayFlushable: Returning [%d+%d=%d] bytes flushable "
+Compext.c:683: NXDisplayFlushable(dpy));
+Compext.h:178:extern int NXDisplayFlushable(
+
+#### NXDisplayReadable ####
+Compext.c:597:int NXDisplayReadable(Display *dpy)
+Compext.c:607: fprintf(stderr, "******NXDisplayReadable: Returning [%d] bytes readable from fd [%d].\n",
+Compext.c:615: fprintf(stderr, "******NXDisplayReadable: WARNING! Error detected on display fd [%d].\n",
+Compext.h:167:extern int NXDisplayReadable(
+
+#### NXEncodeAlpha ####
+Compext.c:2632:char *NXEncodeAlpha(const char *src_data, unsigned int src_size, unsigned int *dst_size)
+Compext.h:690:extern char *NXEncodeAlpha(
+
+#### NXEncodeBitmap ####
+Compext.c:2727:NXPackedImage *NXEncodeBitmap(XImage *src_image, unsigned int method, unsigned int quality)
+Compext.c:2741: fprintf(stderr, "******NXEncodeBitmap: PANIC! Cannot allocate [%d] bytes for the image.\n",
+Compext.c:2755: fprintf(stderr, "******NXEncodeBitmap: PANIC! Bitmap compression failed.\n");
+Compext.h:745:extern NXPackedImage *NXEncodeBitmap(
+
+#### NXEncodeColormap ####
+Compext.c:2627:char *NXEncodeColormap(const char *src_data, unsigned int src_size, unsigned int *dst_size)
+Compext.h:682:extern char *NXEncodeColormap(
+
+#### NXEncodeColors ####
+Compext.c:2887:int NXEncodeColors(XImage *src_image, NXColorTable *color_table, int nb_max)
+Compext.h:729:extern int NXEncodeColors(
+
+#### NXEncodeJpeg ####
+Compext.c:2772:NXPackedImage *NXEncodeJpeg(XImage *src_image, unsigned int method, unsigned int quality)
+Compext.c:2786: fprintf(stderr, "******NXEncodeJpeg: PANIC! Invalid bpp for Jpeg compression [%d]\n.",
+Compext.c:2801: fprintf(stderr, "******NXEncodeJpeg: PANIC! Cannot allocate [%d] bytes for the Jpeg image.\n",
+Compext.c:2815: fprintf(stderr, "******NXEncodeJpeg: PANIC! Jpeg compression failed.\n");
+Compext.h:714:extern NXPackedImage *NXEncodeJpeg(
+
+#### NXEncodePng ####
+Compext.c:2832:NXPackedImage *NXEncodePng(XImage *src_image, unsigned int method, unsigned int quality)
+Compext.c:2846: fprintf(stderr, "******NXEncodePng: PANIC! Invalid bpp for Png compression [%d].\n",
+Compext.c:2856: fprintf(stderr, "******NXEncodePng: PANIC! Cannot allocate [%d] bytes for the Png image.\n",
+Compext.c:2870: fprintf(stderr, "******NXEncodePng: PANIC! Png compression failed.\n");
+Compext.h:737:extern NXPackedImage *NXEncodePng(
+
+#### NXEncodeRgb ####
+Compext.c:2637:NXPackedImage *NXEncodeRgb(XImage *src_image, unsigned int method, unsigned int quality)
+Compext.c:2651: fprintf(stderr, "******NXEncodeRgb: PANIC! Cannot allocate [%d] bytes for the image.\n",
+Compext.c:2665: fprintf(stderr, "******NXEncodeRgb: PANIC! Rgb compression failed.\n");
+Compext.h:698:extern NXPackedImage *NXEncodeRgb(
+
+#### NXEncodeRle ####
+Compext.c:2682:NXPackedImage *NXEncodeRle(XImage *src_image, unsigned int method, unsigned int quality)
+Compext.c:2696: fprintf(stderr, "******NXEncodeRle: PANIC! Cannot allocate [%d] bytes for the image.\n",
+Compext.c:2710: fprintf(stderr, "******NXEncodeRle: PANIC! Rle compression failed.\n");
+Compext.h:706:extern NXPackedImage *NXEncodeRle(
+
+#### NXEndSplit ####
+Compext.c:1361:int NXEndSplit(Display *dpy, unsigned int resource)
+Compext.c:1363: register xNXEndSplitReq *req;
+Compext.c:1367: GetReq(NXEndSplit, req);
+Compext.c:1372: fprintf(stderr, "******NXEndSplit: Sending opcode [%d] with resource [%d].\n",
+Compext.h:431: * NXEndSplitNotify The split was duly completed. The agent
+Compext.h:474:extern int NXEndSplit(
+
+#### NXFinishSplit ####
+Compext.c:1440:int NXFinishSplit(Display *dpy, unsigned int resource)
+Compext.c:1442: register xNXFinishSplitReq *req;
+Compext.c:1446: GetReq(NXFinishSplit, req);
+Compext.c:1449: fprintf(stderr, "******NXFinishSplit: Sending message opcode [%d] with resource [%u].\n",
+Compext.c:1450: X_NXFinishSplit, resource);
+Compext.h:498:extern int NXFinishSplit(
+
+#### NXFlushDisplay ####
+Compext.c:663:int NXFlushDisplay(Display *dpy, int what)
+Compext.c:669: fprintf(stderr, "******NXFlushDisplay: Writing with [%d] bytes in the buffer.\n",
+Compext.c:682: fprintf(stderr, "******NXFlushDisplay: Flushing with [%d] bytes in the NX transport.\n",
+Compext.h:204:extern int NXFlushDisplay(
+
+#### NXForceDisplayError ####
+Compext.c:550:Bool NXForceDisplayError(Display *dpy)
+Compext.h:143:extern Bool NXForceDisplayError(
+
+#### NXFreeCache ####
+Compext.c:3375:void NXFreeCache(Display *dpy)
+Compext.c:3382: fprintf(stderr, "******NXFreeCache: Nothing to do with a null image cache.\n");
+Compext.c:3389: fprintf(stderr, "******NXFreeCache: Freeing the cache with [%d] entries.\n",
+Compext.h:775:extern void NXFreeCache(
+
+#### NXFreeSplit ####
+Compext.c:1462:int NXFreeSplit(Display *dpy, unsigned int resource)
+Compext.c:1464: register xNXFreeSplitReq *req;
+Compext.c:1470: GetReq(NXFreeSplit, req);
+Compext.c:1473: fprintf(stderr, "******NXFreeSplit: Sending message opcode [%d] with resource [%u].\n",
+Compext.c:1474: X_NXFreeSplit, resource);
+Compext.c:1484: fprintf(stderr, "******NXFreeSplit: Making the resource [%u] newly available.\n",
+Compext.c:1493: fprintf(stderr, "******NXFreeSplit: Nothing to do for resource [%u].\n",
+Compext.h:505:extern int NXFreeSplit(
+
+#### NXFreeUnpack ####
+Compext.c:2004:int NXFreeUnpack(Display *dpy, unsigned int resource)
+Compext.c:2006: register xNXFreeUnpackReq *req;
+Compext.c:2012: GetReq(NXFreeUnpack, req);
+Compext.c:2015: fprintf(stderr, "******NXFreeUnpack: Sending message opcode [%d] with resource [%u].\n",
+Compext.c:2016: X_NXFreeUnpack, resource);
+Compext.c:2026: fprintf(stderr, "******NXFreeUnpack: Making the resource [%u] newly available.\n",
+Compext.c:2035: fprintf(stderr, "******NXFreeUnpack: Nothing to do for resource [%u].\n",
+Compext.h:586:extern int NXFreeUnpack(
+
+#### NXGetCollectGrabPointerResource ####
+Compext.c:4326:int NXGetCollectGrabPointerResource(Display *dpy)
+Compext.h:857:extern int NXGetCollectGrabPointerResource(
+
+#### NXGetCollectImageResource ####
+Compext.c:3653:int NXGetCollectImageResource(Display *dpy)
+Compext.h:798:extern int NXGetCollectImageResource(
+
+#### NXGetCollectInputFocusResource ####
+Compext.c:4612:int NXGetCollectInputFocusResource(Display *dpy)
+Compext.h:886:extern int NXGetCollectInputFocusResource(
+
+#### NXGetCollectPropertyResource ####
+Compext.c:4021:int NXGetCollectPropertyResource(Display *dpy)
+Compext.h:826:extern int NXGetCollectPropertyResource(
+
+#### NXGetCollectedGrabPointer ####
+Compext.c:4446:int NXGetCollectedGrabPointer(Display *dpy, unsigned int resource, int *status)
+Compext.c:4455: fprintf(stderr, "******NXGetCollectedGrabPointer: PANIC! No data collected for resource [%u].\n",
+Compext.c:4469: fprintf(stderr, "******NXGetCollectedGrabPointer: Returning GrabPointer data for resource [%u].\n",
+Compext.h:878:extern int NXGetCollectedGrabPointer(
+
+#### NXGetCollectedImage ####
+Compext.c:3787:int NXGetCollectedImage(Display *dpy, unsigned int resource, XImage **image)
+Compext.c:3796: fprintf(stderr, "******NXGetCollectedImage: PANIC! No image collected for resource [%u].\n",
+Compext.c:3810: fprintf(stderr, "******NXGetCollectedImage: Returning GetImage data for resource [%u].\n",
+Compext.h:818:extern int NXGetCollectedImage(
+
+#### NXGetCollectedInputFocus ####
+Compext.c:4722:int NXGetCollectedInputFocus(Display *dpy, unsigned int resource,
+Compext.c:4732: fprintf(stderr, "******NXGetCollectedInputFocus: PANIC! No data collected for resource [%u].\n",
+Compext.c:4747: fprintf(stderr, "******NXGetCollectedInputFocus: Returning GetInputFocus data for resource [%u].\n",
+Compext.h:899:extern int NXGetCollectedInputFocus(
+
+#### NXGetCollectedProperty ####
+Compext.c:4155:int NXGetCollectedProperty(Display *dpy, unsigned int resource, Atom *actual_type_return,
+Compext.c:4166: fprintf(stderr, "******NXGetCollectedProperty: PANIC! No data collected for resource [%u].\n",
+Compext.c:4185: fprintf(stderr, "******NXGetCollectedProperty: Returning GetProperty data for resource [%u].\n",
+Compext.h:845:extern int NXGetCollectedProperty(
+
+#### NXGetControlParameters ####
+Compext.c:813:Status NXGetControlParameters(Display *dpy, unsigned int *link_type, unsigned int *local_major,
+Compext.c:822: xNXGetControlParametersReply rep;
+Compext.c:828: GetEmptyReq(NXGetControlParameters, req);
+Compext.c:831: fprintf(stderr, "******NXGetControlParameters: Sending message opcode [%d].\n",
+Compext.c:832: X_NXGetControlParameters);
+Compext.c:838: fprintf(stderr, "******NXGetControlParameters: Error receiving reply.\n");
+Compext.c:849: fprintf(stderr, "******NXGetControlParameters: Got reply with link type [%u].\n", rep.linkType);
+Compext.c:851: fprintf(stderr, "******NXGetControlParameters: Local protocol major [%u] minor [%u] patch [%u].\n",
+Compext.c:854: fprintf(stderr, "******NXGetControlParameters: Remote protocol major [%u] minor [%u] patch [%u].\n",
+Compext.c:857: fprintf(stderr, "******NXGetControlParameters: Split timeout [%d] motion timeout [%d].\n",
+Compext.c:860: fprintf(stderr, "******NXGetControlParameters: Split mode [%d] split size [%d].\n",
+Compext.c:863: fprintf(stderr, "******NXGetControlParameters: Preferred pack method [%d] pack quality [%d].\n",
+Compext.c:866: fprintf(stderr, "******NXGetControlParameters: Data level [%d] stream level [%d] delta level [%d].\n",
+Compext.h:298:extern Status NXGetControlParameters(
+Compext.h:446: * current threshold can be found in the NXGetControlParameters()
+
+#### NXGetFontParameters ####
+Compext.c:1170:Status NXGetFontParameters(Display *dpy, unsigned int path_length, char path_data[])
+Compext.c:1172: register xNXGetFontParametersReq *req;
+Compext.c:1174: xNXGetFontParametersReply rep;
+Compext.c:1185: fprintf(stderr, "******NXGetFontParameters: No room to store the reply.\n");
+Compext.c:1195: GetReq(NXGetFontParameters, req);
+Compext.c:1198: fprintf(stderr, "******NXGetFontParameters: Sending message opcode [%d].\n",
+Compext.c:1199: X_NXGetFontParameters);
+Compext.c:1205: fprintf(stderr, "******NXGetFontParameters: Error receiving reply.\n");
+Compext.c:1218: fprintf(stderr, "******NXGetFontParameters: Got [%d] bytes of reply data with only room for [%d].\n",
+Compext.c:1232: fprintf(stderr, "******NXGetFontParameters: Reading [%d] bytes of reply data.\n", n);
+Compext.c:1245: fprintf(stderr, "******NXGetFontParameters: Inconsistent length in the returned string.\n");
+Compext.c:1257: fprintf(stderr, "******NXGetFontParameters: Got font path of [%d] bytes and value [",
+Compext.h:369:extern Status NXGetFontParameters(
+
+#### NXGetShmemParameters ####
+Compext.c:1021:Status NXGetShmemParameters(Display *dpy, unsigned int *enable_client,
+Compext.c:1026: register xNXGetShmemParametersReq *req;
+Compext.c:1030: xNXGetShmemParametersReply rep;
+Compext.c:1057: GetReq(NXGetShmemParameters, req);
+Compext.c:1068: fprintf(stderr, "******NXGetShmemParameters: Sending message opcode [%d] at stage [%d].\n",
+Compext.c:1069: X_NXGetShmemParameters, stage);
+Compext.c:1076: fprintf(stderr, "******NXGetShmemParameters: Enable client is [%u] enable server is [%u].\n",
+Compext.c:1079: fprintf(stderr, "******NXGetShmemParameters: Client segment is [%u] server segment is [%u].\n",
+Compext.c:1112: fprintf(stderr, "******NXGetShmemParameters: Error receiving reply.\n");
+Compext.c:1137: fprintf(stderr, "******NXGetShmemParameters: Got final reply with enabled client [%u] and server [%u].\n",
+Compext.c:1140: fprintf(stderr, "******NXGetShmemParameters: Client segment size [%u] server segment size [%u].\n",
+Compext.h:347:extern Status NXGetShmemParameters(
+
+#### NXGetUnpackParameters ####
+Compext.c:915:Status NXGetUnpackParameters(Display *dpy, unsigned int *entries, unsigned char supported_methods[])
+Compext.c:917: register xNXGetUnpackParametersReq *req;
+Compext.c:919: xNXGetUnpackParametersReply rep;
+Compext.c:930: fprintf(stderr, "******NXGetUnpackParameters: Requested only [%d] entries while they should be [%d].\n",
+Compext.c:939: GetReq(NXGetUnpackParameters, req);
+Compext.c:944: fprintf(stderr, "******NXGetUnpackParameters: Sending message opcode [%d] with [%d] requested entries.\n",
+Compext.c:945: X_NXGetUnpackParameters, *entries);
+Compext.c:951: fprintf(stderr, "******NXGetUnpackParameters: Error receiving reply.\n");
+Compext.c:964: fprintf(stderr, "******NXGetUnpackParameters: Got [%d] bytes of reply data while they should be [%d].\n",
+Compext.c:980: fprintf(stderr, "******NXGetUnpackParameters: Reading [%d] bytes of reply data.\n", n);
+Compext.c:987: fprintf(stderr, "******NXGetUnpackParameters: Got reply with methods: ");
+Compext.h:327:extern Status NXGetUnpackParameters(
+
+#### NXHandleDisplayError ####
+Compext.c:531:int NXHandleDisplayError(int value)
+Compext.c:533: int previous = _NXHandleDisplayError;
+Compext.c:535: _NXHandleDisplayError = value;
+Compext.c:538: fprintf(stderr, "******NXHandleDisplayError: Set the flag to [%d] with previous value [%d].\n",
+Compext.h:132:extern int NXHandleDisplayError(
+
+#### NXImageCache ####
+Compext.c:184:} _NXImageCacheEntry;
+Compext.c:186:int NXImageCacheSize = 0;
+Compext.c:187:int NXImageCacheHits = 0;
+Compext.c:188:int NXImageCacheOps = 0;
+Compext.c:190:_NXImageCacheEntry *NXImageCache = NULL;
+Compext.c:3131: if (NXImageCache != NULL && NXImageCacheSize == entries)
+Compext.c:3135: NXImageCache, NXImageCacheSize);
+Compext.c:3146: NXImageCacheSize = 0;
+Compext.c:3148: if (NXImageCache != NULL)
+Compext.c:3150: Xfree(NXImageCache);
+Compext.c:3152: NXImageCache = NULL;
+Compext.c:3157: NXImageCache = Xmalloc(entries * sizeof(_NXImageCacheEntry));
+Compext.c:3159: if (NXImageCache != NULL)
+Compext.c:3161: memset(NXImageCache, 0, entries * sizeof(_NXImageCacheEntry));
+Compext.c:3163: NXImageCacheSize = entries;
+Compext.c:3185: for (i = 0; i < NXImageCacheSize; i++)
+Compext.c:3187: if (NXImageCache[i].image == NULL)
+Compext.c:3194: sprintf(s + (j * 2), "%02X", ((unsigned char *) NXImageCache[i].md5)[j]);
+Compext.c:3211: if (NXImageCache == NULL)
+Compext.c:3243: for (i = 0; i < NXImageCacheSize; i++)
+Compext.c:3245: if (NXImageCache[i].image != NULL)
+Compext.c:3247: if (memcmp(NXImageCache[i].md5, new_md5, MD5_LENGTH) == 0)
+Compext.c:3249: _NXImageCacheEntry found;
+Compext.c:3251: found.image = NXImageCache[i].image;
+Compext.c:3252: found.method = NXImageCache[i].method;
+Compext.c:3253: found.md5 = NXImageCache[i].md5;
+Compext.c:3257: NXImageCacheHits++;
+Compext.c:3261: i, NXImageCacheHits, NXImageCacheOps);
+Compext.c:3278: memmove(&NXImageCache[1], &NXImageCache[0], (i * sizeof(_NXImageCacheEntry)));
+Compext.c:3280: NXImageCache[0].image = found.image;
+Compext.c:3281: NXImageCache[0].method = found.method;
+Compext.c:3282: NXImageCache[0].md5 = found.md5;
+Compext.c:3331: i = (NXImageCacheOps < NXImageCacheSize) ? NXImageCacheOps : NXImageCacheSize;
+Compext.c:3333: if (NXImageCacheOps >= NXImageCacheSize)
+Compext.c:3341: Xfree(NXImageCache[NXImageCacheSize - 1].image -> data);
+Compext.c:3342: Xfree(NXImageCache[NXImageCacheSize - 1].image);
+Compext.c:3343: Xfree(NXImageCache[NXImageCacheSize - 1].md5);
+Compext.c:3348: memmove(&NXImageCache[1], &NXImageCache[0], i * sizeof(_NXImageCacheEntry));
+Compext.c:3351: NXImageCacheOps++;
+Compext.c:3358: NXImageCache[0].image = image;
+Compext.c:3359: NXImageCache[0].method = method;
+Compext.c:3360: NXImageCache[0].md5 = md5;
+Compext.c:3379: if (NXImageCache == NULL)
+Compext.c:3390: NXImageCacheSize);
+Compext.c:3393: for (i = 0; i < NXImageCacheSize; i++)
+Compext.c:3395: if (NXImageCache[i].image != NULL)
+Compext.c:3397: if (NXImageCache[i].image -> data != NULL)
+Compext.c:3399: Xfree(NXImageCache[i].image -> data);
+Compext.c:3402: Xfree(NXImageCache[i].image);
+Compext.c:3404: NXImageCache[i].image = NULL;
+Compext.c:3407: if (NXImageCache[i].md5 != NULL)
+Compext.c:3409: Xfree(NXImageCache[i].md5);
+Compext.c:3411: NXImageCache[i].md5 = NULL;
+Compext.c:3415: Xfree(NXImageCache);
+Compext.c:3417: NXImageCache = NULL;
+Compext.c:3419: NXImageCacheSize = 0;
+Compext.c:3420: NXImageCacheHits = 0;
+Compext.c:3421: NXImageCacheOps = 0;
+Compext.h:766:extern int NXImageCacheSize;
+
+#### NXImageCacheHits ####
+Compext.c:187:int NXImageCacheHits = 0;
+Compext.c:3257: NXImageCacheHits++;
+Compext.c:3261: i, NXImageCacheHits, NXImageCacheOps);
+Compext.c:3420: NXImageCacheHits = 0;
+
+#### NXImageCacheOps ####
+Compext.c:188:int NXImageCacheOps = 0;
+Compext.c:3261: i, NXImageCacheHits, NXImageCacheOps);
+Compext.c:3331: i = (NXImageCacheOps < NXImageCacheSize) ? NXImageCacheOps : NXImageCacheSize;
+Compext.c:3333: if (NXImageCacheOps >= NXImageCacheSize)
+Compext.c:3351: NXImageCacheOps++;
+Compext.c:3421: NXImageCacheOps = 0;
+
+#### NXImageCacheSize ####
+Compext.c:186:int NXImageCacheSize = 0;
+Compext.c:3131: if (NXImageCache != NULL && NXImageCacheSize == entries)
+Compext.c:3135: NXImageCache, NXImageCacheSize);
+Compext.c:3146: NXImageCacheSize = 0;
+Compext.c:3163: NXImageCacheSize = entries;
+Compext.c:3185: for (i = 0; i < NXImageCacheSize; i++)
+Compext.c:3243: for (i = 0; i < NXImageCacheSize; i++)
+Compext.c:3331: i = (NXImageCacheOps < NXImageCacheSize) ? NXImageCacheOps : NXImageCacheSize;
+Compext.c:3333: if (NXImageCacheOps >= NXImageCacheSize)
+Compext.c:3341: Xfree(NXImageCache[NXImageCacheSize - 1].image -> data);
+Compext.c:3342: Xfree(NXImageCache[NXImageCacheSize - 1].image);
+Compext.c:3343: Xfree(NXImageCache[NXImageCacheSize - 1].md5);
+Compext.c:3390: NXImageCacheSize);
+Compext.c:3393: for (i = 0; i < NXImageCacheSize; i++)
+Compext.c:3419: NXImageCacheSize = 0;
+Compext.h:766:extern int NXImageCacheSize;
+
+#### NXInPlacePackImage ####
+Compext.c:2288: * NXInPlacePackImage creates a NXPackedImage
+Compext.c:2294:XImage *NXInPlacePackImage(Display *dpy, XImage *src_image, unsigned int method)
+Compext.c:2307: fprintf(stderr, "******NXInPlacePackImage: Going to pack a new image with method [%d].\n",
+Compext.c:2322: fprintf(stderr, "******NXInPlacePackImage: WARNING! No mask to apply for pack method [%d].\n",
+Compext.c:2331: fprintf(stderr, "******NXInPlacePackImage: PANIC! Invalid source with format [%d] depth [%d] bits per pixel [%d].\n",
+Compext.c:2334: fprintf(stderr, "******NXInPlacePackImage: PANIC! Visual colormask is red 0x%lx green 0x%lx blue 0x%lx.\n",
+Compext.c:2348: fprintf(stderr, "******NXInPlacePackImage: PANIC! Cannot allocate [%d] bytes for the image.\n",
+Compext.c:2358: fprintf(stderr, "******NXInPlacePackImage: Source width [%d], bytes per line [%d] with depth [%d].\n",
+Compext.c:2376: fprintf(stderr, "******NXInPlacePackImage: Destination depth [%d], bits per pixel [%d], packed bits per pixel [%d].\n",
+Compext.c:2384: fprintf(stderr, "******NXInPlacePackImage: Just clean image packed_bits_per_pixel[%d], bits_per_pixel[%d].\n",
+Compext.c:2391: fprintf(stderr, "******NXInPlacePackImage: PANIC! Failed to clean the image.\n");
+Compext.c:2402: fprintf(stderr, "******NXInPlacePackImage: PANIC! Failed to apply the color mask.\n");
+Compext.c:2419: fprintf(stderr, "******NXInPlacePackImage: Plain bits per pixel [%d], data size [%d].\n",
+Compext.c:2427: fprintf(stderr, "******NXInPlacePackImage: Packed bits per pixel [%d], data size [%d].\n",
+Compext.h:631:NXPackedImage *NXInPlacePackImage(
+
+#### NXInitCache ####
+Compext.c:3129:void NXInitCache(Display *dpy, int entries)
+Compext.c:3134: fprintf(stderr, "******NXInitCache: Nothing to do with image cache at [%p] and [%d] entries.\n",
+Compext.c:3142: fprintf(stderr, "******NXInitCache: Initializing the cache with [%d] entries.\n",
+Compext.c:3166: fprintf(stderr, "******NXInitCache: Image cache initialized with [%d] entries.\n", entries);
+Compext.h:768:extern void NXInitCache(
+
+#### NXInitDisplay ####
+Compext.c:265:int NXInitDisplay(Display *dpy)
+Compext.c:268: fprintf(stderr, "******NXInitDisplay: Called for display at [%p].\n", (void *) dpy);
+Compext.c:283: fprintf(stderr, "******NXInitDisplay: WARNING! Internal structures already initialized.\n");
+Compext.h:71:extern int NXInitDisplay(
+
+#### NXMaskImage ####
+Compext.c:2934:void NXMaskImage(XImage *image, unsigned int method)
+Compext.c:2952: fprintf(stderr, "******NXMaskImage: Method is MASK_8_COLORS\n");
+Compext.c:2963: fprintf(stderr, "******NXMaskImage: Method is MASK_64K_COLORS\n");
+Compext.c:2974: fprintf(stderr, "******NXMaskImage: Method is MASK_256_COLORS\n");
+Compext.c:2985: fprintf(stderr, "******NXMaskImage: Method is MASK_512K_COLORS\n");
+Compext.c:2996: fprintf(stderr, "******NXMaskImage: Method is MASK_4K_COLORS\n");
+Compext.c:3007: fprintf(stderr, "******NXMaskImage: Method is MASK_32K_COLORS\n");
+Compext.c:3018: fprintf(stderr, "******NXMaskImage: Method is MASK_64K_COLORS\n");
+Compext.c:3029: fprintf(stderr, "******NXMaskImage: Method is MASK_256K_COLORS\n");
+Compext.c:3040: fprintf(stderr, "******NXMaskImage: Method is MASK_2M_COLORS\n");
+Compext.c:3051: fprintf(stderr, "******NXMaskImage: Method is MASK_16M_COLORS\n");
+Compext.c:3059: fprintf(stderr, "******NXMaskImage: PANIC! Cannot find mask method for pack method [%d]\n",
+Compext.c:3068: fprintf(stderr, "******NXMaskImage: packMethod[%d] => maskMethod[%d]\n",
+Compext.c:3083: fprintf(stderr, "******NXMaskImage: PANIC! No mask to apply for pack method [%d].\n",
+Compext.c:3092: fprintf(stderr, "******NXMaskImage: PANIC! Invalid source with format [%d] depth [%d] bits per pixel [%d].\n",
+Compext.c:3095: fprintf(stderr, "******NXMaskImage: PANIC! Visual colormask is red 0x%lx green 0x%lx blue 0x%lx.\n",
+Compext.c:3111: fprintf(stderr, "******NXMaskImage: the image will not be masked\n");
+Compext.c:3119: fprintf(stderr, "******NXMaskImage: PANIC! Failed to apply the color mask in place.\n");
+Compext.h:759:extern void NXMaskImage(
+
+#### NXPackImage ####
+Compext.c:2107:NXPackedImage *NXPackImage(Display *dpy, XImage *src_image, unsigned int method)
+Compext.c:2120: fprintf(stderr, "******NXPackImage: Going to pack a new image with method [%d].\n",
+Compext.c:2135: fprintf(stderr, "******NXPackImage: WARNING! No mask to apply for pack method [%d].\n",
+Compext.c:2144: fprintf(stderr, "******NXPackImage: PANIC! Invalid source with format [%d] depth [%d] bits per pixel [%d].\n",
+Compext.c:2147: fprintf(stderr, "******NXPackImage: PANIC! Visual colormask is red 0x%lx green 0x%lx blue 0x%lx.\n",
+Compext.c:2162: fprintf(stderr, "******NXPackImage: PANIC! Cannot allocate [%d] bytes for the image.\n",
+Compext.c:2172: fprintf(stderr, "******NXPackImage: Source width [%d], bytes per line [%d] with depth [%d].\n",
+Compext.c:2183: fprintf(stderr, "******NXPackImage: PANIC! Cannot allocate [%d] bytes for masked image data.\n",
+Compext.c:2203: fprintf(stderr, "******NXPackImage: Destination depth [%d], bits per pixel [%d], packed bits per pixel [%d].\n",
+Compext.c:2218: fprintf(stderr, "******NXPackImage: PANIC! Failed to clean the image.\n");
+Compext.c:2231: fprintf(stderr, "******NXPackImage: PANIC! Failed to apply the color mask.\n");
+Compext.c:2250: fprintf(stderr, "******NXPackImage: Plain bits per pixel [%d], data size [%d].\n",
+Compext.c:2258: fprintf(stderr, "******NXPackImage: Packed bits per pixel [%d], data size [%d].\n",
+Compext.c:2266: fprintf(stderr, "******NXPackImage: PANIC! Failed to pack image from [%d] to [%d] bits per pixel.\n",
+Compext.h:623:NXPackedImage *NXPackImage(
+
+#### NXPutPackedImage ####
+Compext.c:2441:int NXPutPackedImage(Display *dpy, unsigned int resource, Drawable drawable,
+Compext.c:2446: register xNXPutPackedImageReq *req;
+Compext.c:2455: GetReq(NXPutPackedImage, req);
+Compext.c:2462: fprintf(stderr, "******NXPutPackedImage: Image resource [%d] drawable [%d] gc [%d].\n",
+Compext.c:2503: fprintf(stderr, "******NXPutPackedImage: Source image depth [%d] destination depth [%d] "
+Compext.c:2537: fprintf(stderr, "******NXPutPackedImage: Source data length [%d] request data length [%d].\n",
+Compext.h:645:extern int NXPutPackedImage(
+
+#### NXResetDisplay ####
+Compext.c:289:int NXResetDisplay(Display *dpy)
+Compext.c:292: fprintf(stderr, "******NXResetDisplay: Called for display at [%p].\n", (void *) dpy);
+Compext.c:307: fprintf(stderr, "******NXResetDisplay: WARNING! Internal structures already reset.\n");
+Compext.h:82:extern int NXResetDisplay(
+
+#### NXSetCacheParameters ####
+Compext.c:1534:int NXSetCacheParameters(Display *dpy, int enable_cache, int enable_split,
+Compext.c:1537: register xNXSetCacheParametersReq *req;
+Compext.c:1541: GetReq(NXSetCacheParameters, req);
+Compext.c:1549: fprintf(stderr, "******NXSetCacheParameters: Sending message opcode [%d] with "
+Compext.c:1550: "flags [%d][%d][%d][%d].\n", X_NXSetCacheParameters, req -> enableCache,
+Compext.h:521:extern int NXSetCacheParameters(
+
+#### NXSetDisplayBlockHandler ####
+Compext.c:703:NXDisplayBlockHandler NXSetDisplayBlockHandler(NXDisplayBlockHandler handler)
+Compext.c:710: fprintf(stderr, "******NXSetDisplayBlockHandler: Set the handler to [%p] with previous value [%p].\n",
+Compext.h:227:extern NXDisplayBlockHandler NXSetDisplayBlockHandler(
+
+#### NXSetDisplayBuffer ####
+Compext.c:447:int NXSetDisplayBuffer(Display *dpy, int size)
+Compext.c:462: fprintf(stderr, "******NXSetDisplayBuffer: Nothing to do with buffer size matching.\n");
+Compext.c:470: fprintf(stderr, "******NXSetDisplayBuffer: PANIC! The display buffer is not empty.\n");
+Compext.c:478: fprintf(stderr, "******NXSetDisplayBuffer: PANIC! Can't allocate [%d] bytes for the buffer.\n",
+Compext.c:495: fprintf(stderr, "******NXSetDisplayBuffer: Set the display output buffer size to [%d].\n",
+Compext.h:104:extern int NXSetDisplayBuffer(
+
+#### NXSetDisplayErrorPredicate ####
+Compext.c:689:NXDisplayErrorPredicate NXSetDisplayErrorPredicate(NXDisplayErrorPredicate predicate)
+Compext.c:696: fprintf(stderr, "******NXSetDisplayErrorPredicate: Set the predicate to [%p] with previous value [%p].\n",
+Compext.h:216:extern NXDisplayErrorPredicate NXSetDisplayErrorPredicate(
+
+#### NXSetDisplayFlushHandler ####
+Compext.c:731:NXDisplayFlushHandler NXSetDisplayFlushHandler(NXDisplayFlushHandler handler, Display *display)
+Compext.c:741: fprintf(stderr, "******NXSetDisplayFlushHandler: Set the handler to [%p] with display [%p] "
+Compext.h:258:extern NXDisplayFlushHandler NXSetDisplayFlushHandler(
+
+#### NXSetDisplayPolicy ####
+Compext.c:435:int NXSetDisplayPolicy(Display *dpy, int policy)
+Compext.h:93:extern int NXSetDisplayPolicy(
+
+#### NXSetDisplayStatisticsHandler ####
+Compext.c:748:NXDisplayStatisticsHandler NXSetDisplayStatisticsHandler(NXDisplayStatisticsHandler handler, char **buffer)
+Compext.c:762: fprintf(stderr, "******NXSetDisplayStatisticsHandler: Set the handler to [%p] with buffer pointer [%p] "
+Compext.h:270:extern NXDisplayStatisticsHandler NXSetDisplayStatisticsHandler(
+
+#### NXSetDisplayWriteHandler ####
+Compext.c:717:NXDisplayWriteHandler NXSetDisplayWriteHandler(NXDisplayWriteHandler handler)
+Compext.c:724: fprintf(stderr, "******NXSetDisplayWriteHandler: Set the handler to [%p] with previous value [%p].\n",
+Compext.h:239:extern NXDisplayWriteHandler NXSetDisplayWriteHandler(
+
+#### NXSetExposeParameters ####
+Compext.c:1506:int NXSetExposeParameters(Display *dpy, int expose, int graphics_expose, int no_expose)
+Compext.c:1508: register xNXSetExposeParametersReq *req;
+Compext.c:1512: GetReq(NXSetExposeParameters, req);
+Compext.c:1519: fprintf(stderr, "******NXSetExposeParameters: Sending message opcode [%d] with flags [%d][%d][%d].\n",
+Compext.c:1520: X_NXSetExposeParameters, req -> expose, req -> graphicsExpose, req -> noExpose);
+Compext.h:512:extern int NXSetExposeParameters(
+
+#### NXSetLostSequenceHandler ####
+Compext.c:769:NXLostSequenceHandler NXSetLostSequenceHandler(NXLostSequenceHandler handler)
+Compext.c:776: fprintf(stderr, "******NXSetLostSequenceHandler: Set the handler to [%p] with previous value [%p].\n",
+Compext.h:283:extern NXLostSequenceHandler NXSetLostSequenceHandler(
+
+#### NXSetUnpackAlpha ####
+Compext.c:1735:int NXSetUnpackAlpha(Display *dpy, unsigned int resource, unsigned int method,
+Compext.c:1738: register xNXSetUnpackAlphaReq *req;
+Compext.c:1744: GetReq(NXSetUnpackAlpha, req);
+Compext.c:1757: fprintf(stderr, "******NXSetUnpackAlpha: Resource [%u] data size [%u] destination data size [%u].\n",
+Compext.c:1897:#define sz_xNXSetUnpackAlphaCompatReq 8
+Compext.c:1899:typedef struct _NXSetUnpackAlphaCompatReq {
+Compext.c:1904:} xNXSetUnpackAlphaCompatReq;
+Compext.c:1906:#define X_NXSetUnpackAlphaCompat X_NXSetUnpackAlpha
+Compext.c:1908:int NXSetUnpackAlphaCompat(Display *dpy, unsigned int resource,
+Compext.c:1911: register xNXSetUnpackAlphaCompatReq *req;
+Compext.c:1925: GetReq(NXSetUnpackAlphaCompat, req);
+Compext.c:1935: fprintf(stderr, "******NXSetUnpackAlphaCompat: Resource [%u] number of entries [%u] "
+Compext.c:1950: fprintf(stderr, "******NXSetUnpackAlphaCompat: PANIC! Cannot allocate memory.\n");
+Compext.c:1953: UnGetReq(NXSetUnpackAlphaCompat);
+Compext.c:1970: fprintf(stderr, "******NXSetUnpackAlphaCompat: Dumping alpha channel data:\n");
+Compext.c:1974: fprintf(stderr, "******NXSetUnpackAlphaCompat: [%d] -> [0x%02x].\n",
+Compext.h:557:extern int NXSetUnpackAlpha(
+Compext.h:577:extern int NXSetUnpackAlphaCompat(
+
+#### NXSetUnpackAlphaCompat ####
+Compext.c:1897:#define sz_xNXSetUnpackAlphaCompatReq 8
+Compext.c:1899:typedef struct _NXSetUnpackAlphaCompatReq {
+Compext.c:1904:} xNXSetUnpackAlphaCompatReq;
+Compext.c:1906:#define X_NXSetUnpackAlphaCompat X_NXSetUnpackAlpha
+Compext.c:1908:int NXSetUnpackAlphaCompat(Display *dpy, unsigned int resource,
+Compext.c:1911: register xNXSetUnpackAlphaCompatReq *req;
+Compext.c:1925: GetReq(NXSetUnpackAlphaCompat, req);
+Compext.c:1935: fprintf(stderr, "******NXSetUnpackAlphaCompat: Resource [%u] number of entries [%u] "
+Compext.c:1950: fprintf(stderr, "******NXSetUnpackAlphaCompat: PANIC! Cannot allocate memory.\n");
+Compext.c:1953: UnGetReq(NXSetUnpackAlphaCompat);
+Compext.c:1970: fprintf(stderr, "******NXSetUnpackAlphaCompat: Dumping alpha channel data:\n");
+Compext.c:1974: fprintf(stderr, "******NXSetUnpackAlphaCompat: [%d] -> [0x%02x].\n",
+Compext.h:577:extern int NXSetUnpackAlphaCompat(
+
+#### NXSetUnpackColormap ####
+Compext.c:1672:int NXSetUnpackColormap(Display *dpy, unsigned int resource, unsigned int method,
+Compext.c:1675: register xNXSetUnpackColormapReq *req;
+Compext.c:1681: GetReq(NXSetUnpackColormap, req);
+Compext.c:1694: fprintf(stderr, "******NXSetUnpackColormap: Resource [%u] data size [%u] destination "
+Compext.c:1802:#define sz_xNXSetUnpackColormapCompatReq 8
+Compext.c:1804:typedef struct _NXSetUnpackColormapCompatReq {
+Compext.c:1809:} xNXSetUnpackColormapCompatReq;
+Compext.c:1811:#define X_NXSetUnpackColormapCompat X_NXSetUnpackColormap
+Compext.c:1813:int NXSetUnpackColormapCompat(Display *dpy, unsigned int resource,
+Compext.c:1816: register xNXSetUnpackColormapCompatReq *req;
+Compext.c:1830: GetReq(NXSetUnpackColormapCompat, req);
+Compext.c:1840: fprintf(stderr, "******NXSetUnpackColormapCompat: Resource [%u] number of entries [%u] "
+Compext.c:1855: fprintf(stderr, "******NXSetUnpackColormapCompat: PANIC! Cannot allocate memory.\n");
+Compext.c:1858: UnGetReq(NXSetUnpackColormapCompat);
+Compext.c:1870: fprintf(stderr, "******NXSetUnpackColormapCompat: Dumping colormap entries:\n");
+Compext.c:1874: fprintf(stderr, "******NXSetUnpackColormapCompat: [%d] -> [0x%x].\n",
+Compext.h:546:extern int NXSetUnpackColormap(
+Compext.h:568:extern int NXSetUnpackColormapCompat(
+
+#### NXSetUnpackColormapCompat ####
+Compext.c:1802:#define sz_xNXSetUnpackColormapCompatReq 8
+Compext.c:1804:typedef struct _NXSetUnpackColormapCompatReq {
+Compext.c:1809:} xNXSetUnpackColormapCompatReq;
+Compext.c:1811:#define X_NXSetUnpackColormapCompat X_NXSetUnpackColormap
+Compext.c:1813:int NXSetUnpackColormapCompat(Display *dpy, unsigned int resource,
+Compext.c:1816: register xNXSetUnpackColormapCompatReq *req;
+Compext.c:1830: GetReq(NXSetUnpackColormapCompat, req);
+Compext.c:1840: fprintf(stderr, "******NXSetUnpackColormapCompat: Resource [%u] number of entries [%u] "
+Compext.c:1855: fprintf(stderr, "******NXSetUnpackColormapCompat: PANIC! Cannot allocate memory.\n");
+Compext.c:1858: UnGetReq(NXSetUnpackColormapCompat);
+Compext.c:1870: fprintf(stderr, "******NXSetUnpackColormapCompat: Dumping colormap entries:\n");
+Compext.c:1874: fprintf(stderr, "******NXSetUnpackColormapCompat: [%d] -> [0x%x].\n",
+Compext.h:568:extern int NXSetUnpackColormapCompat(
+
+#### NXSetUnpackGeometry ####
+Compext.c:1614:int NXSetUnpackGeometry(Display *dpy, unsigned int resource, Visual *visual)
+Compext.c:1616: register xNXSetUnpackGeometryReq *req;
+Compext.c:1620: GetReq(NXSetUnpackGeometry, req);
+Compext.c:1640: fprintf(stderr, "******NXSetUnpackGeometry: PANIC! Can't set the geometry without a visual.\n");
+Compext.c:1643: UnGetReq(NXSetUnpackGeometry);
+Compext.c:1651: fprintf(stderr, "******NXSetUnpackGeometry: Resource [%u] Depth/Bpp [1/%d][4/%d][8/%d]"
+Compext.c:1655: fprintf(stderr, "******NXSetUnpackGeometry: red [0x%x] green [0x%x] blue [0x%x].\n",
+Compext.h:538:extern int NXSetUnpackGeometry(
+
+#### NXStartSplit ####
+Compext.c:1333:int NXStartSplit(Display *dpy, unsigned int resource, unsigned int mode)
+Compext.c:1335: register xNXStartSplitReq *req;
+Compext.c:1339: GetReq(NXStartSplit, req);
+Compext.c:1345: fprintf(stderr, "******NXStartSplit: Sending opcode [%d] with resource [%d] mode [%d].\n",
+Compext.c:1346: X_NXStartSplit, resource, mode);
+Compext.c:1373: X_NXStartSplit, resource);
+Compext.h:421: * NXStartSplitNotify One or more messages were split, so,
+Compext.h:466:extern int NXStartSplit(
+
+#### NXUnsetLibraryPath ####
+Compext.c:509:int NXUnsetLibraryPath(int value)
+Compext.c:511: int previous = _NXUnsetLibraryPath;
+Compext.c:513: _NXUnsetLibraryPath = value;
+Compext.c:516: fprintf(stderr, "******NXUnsetLibraryPath: Set the flag to [%d] with previous value [%d].\n",
+Compext.h:119:extern int NXUnsetLibraryPath(
+
+#### PackImage ####
+Compext.c:2107:NXPackedImage *NXPackImage(Display *dpy, XImage *src_image, unsigned int method)
+Compext.c:2120: fprintf(stderr, "******NXPackImage: Going to pack a new image with method [%d].\n",
+Compext.c:2135: fprintf(stderr, "******NXPackImage: WARNING! No mask to apply for pack method [%d].\n",
+Compext.c:2144: fprintf(stderr, "******NXPackImage: PANIC! Invalid source with format [%d] depth [%d] bits per pixel [%d].\n",
+Compext.c:2147: fprintf(stderr, "******NXPackImage: PANIC! Visual colormask is red 0x%lx green 0x%lx blue 0x%lx.\n",
+Compext.c:2162: fprintf(stderr, "******NXPackImage: PANIC! Cannot allocate [%d] bytes for the image.\n",
+Compext.c:2172: fprintf(stderr, "******NXPackImage: Source width [%d], bytes per line [%d] with depth [%d].\n",
+Compext.c:2183: fprintf(stderr, "******NXPackImage: PANIC! Cannot allocate [%d] bytes for masked image data.\n",
+Compext.c:2203: fprintf(stderr, "******NXPackImage: Destination depth [%d], bits per pixel [%d], packed bits per pixel [%d].\n",
+Compext.c:2218: fprintf(stderr, "******NXPackImage: PANIC! Failed to clean the image.\n");
+Compext.c:2231: fprintf(stderr, "******NXPackImage: PANIC! Failed to apply the color mask.\n");
+Compext.c:2245: * tination. This means that PackImage() must
+Compext.c:2250: fprintf(stderr, "******NXPackImage: Plain bits per pixel [%d], data size [%d].\n",
+Compext.c:2258: fprintf(stderr, "******NXPackImage: Packed bits per pixel [%d], data size [%d].\n",
+Compext.c:2262: if (PackImage(method, dst_data_size, dst_image,
+Compext.c:2266: fprintf(stderr, "******NXPackImage: PANIC! Failed to pack image from [%d] to [%d] bits per pixel.\n",
+Compext.c:2288: * NXInPlacePackImage creates a NXPackedImage
+Compext.c:2294:XImage *NXInPlacePackImage(Display *dpy, XImage *src_image, unsigned int method)
+Compext.c:2307: fprintf(stderr, "******NXInPlacePackImage: Going to pack a new image with method [%d].\n",
+Compext.c:2322: fprintf(stderr, "******NXInPlacePackImage: WARNING! No mask to apply for pack method [%d].\n",
+Compext.c:2331: fprintf(stderr, "******NXInPlacePackImage: PANIC! Invalid source with format [%d] depth [%d] bits per pixel [%d].\n",
+Compext.c:2334: fprintf(stderr, "******NXInPlacePackImage: PANIC! Visual colormask is red 0x%lx green 0x%lx blue 0x%lx.\n",
+Compext.c:2348: fprintf(stderr, "******NXInPlacePackImage: PANIC! Cannot allocate [%d] bytes for the image.\n",
+Compext.c:2358: fprintf(stderr, "******NXInPlacePackImage: Source width [%d], bytes per line [%d] with depth [%d].\n",
+Compext.c:2376: fprintf(stderr, "******NXInPlacePackImage: Destination depth [%d], bits per pixel [%d], packed bits per pixel [%d].\n",
+Compext.c:2384: fprintf(stderr, "******NXInPlacePackImage: Just clean image packed_bits_per_pixel[%d], bits_per_pixel[%d].\n",
+Compext.c:2391: fprintf(stderr, "******NXInPlacePackImage: PANIC! Failed to clean the image.\n");
+Compext.c:2402: fprintf(stderr, "******NXInPlacePackImage: PANIC! Failed to apply the color mask.\n");
+Compext.c:2414: * tination. This means that PackImage() must
+Compext.c:2419: fprintf(stderr, "******NXInPlacePackImage: Plain bits per pixel [%d], data size [%d].\n",
+Compext.c:2427: fprintf(stderr, "******NXInPlacePackImage: Packed bits per pixel [%d], data size [%d].\n",
+Mask.c:393: fprintf(stderr, "******PackImage: Pixel [%d] value [0x%x] red [0x%x] green [0x%x] blue [0x%x].\n",
+Mask.c:414: fprintf(stderr, "******PackImage: Pixel [%d] destination [0x%x].\n",
+Mask.c:444: fprintf(stderr, "******PackImage: Pixel [%d] value [0x%x%x%x] red [0x%x] green [0x%x] blue [0x%x].\n",
+Mask.c:477: fprintf(stderr, "******PackImage: Pixel [%d] destination [0x%x].\n",
+Mask.c:512: fprintf(stderr, "******PackImage: Pixel [%d] value [0x%x%x%x] red [0x%x] green [0x%x] blue [0x%x].\n",
+Mask.c:543: fprintf(stderr, "******PackImage: Pixel [%d] destination [0x%x].\n",
+Mask.c:570: fprintf(stderr, "******PackImage: Pixel [%d] value [0x%x] red [0x%x] green [0x%x] blue [0x%x].\n",
+Mask.c:591: fprintf(stderr, "******PackImage: Pixel [%d] destination [0x%x].\n",
+Mask.c:614: fprintf(stderr, "******PackImage: Pixel [%d] value [0x%x] red [0x%x] green [0x%x] blue [0x%x].\n",
+Mask.c:635: fprintf(stderr, "******PackImage: Pixel [%d] destination [0x%x].\n",
+Mask.c:658: fprintf(stderr, "******PackImage: Pixel [%d] value [0x%x] red [0x%x] green [0x%x] blue [0x%x].\n",
+Mask.c:679: fprintf(stderr, "******PackImage: Pixel [%d] destination [0x%x], [0x%x], [0x%x].\n",
+Mask.c:690:int PackImage(unsigned int method, unsigned int src_data_size, XImage *src_image,
+Mask.c:700: fprintf(stderr, "******PackImage: Source bits per pixel [%d], destination bits per pixel [%d].\n",
+Mask.c:703: fprintf(stderr, "******PackImage: Source data size [%d], destination data size [%d].\n",
+Mask.c:710: fprintf(stderr, "******PackImage: PANIC! Cannot pack image from [%d] to [%d] bytes per pixel.\n",
+Compext.h:623:NXPackedImage *NXPackImage(
+Compext.h:631:NXPackedImage *NXInPlacePackImage(
+Mask.h:39:extern int PackImage(unsigned int method, unsigned int src_data_size, XImage *src_image,
+
+#### PngCompareColorTable ####
+Png.c:105:int PngCompareColorTable(NXColorTable *c1, NXColorTable *c2)
+Png.h:39:extern int PngCompareColorTable(
+
+#### PngCompressData ####
+Compext.c:2865: dst_image -> data = PngCompressData(dst_image, &size);
+Png.c:244:char *PngCompressData(XImage *image, int *compressed_size)
+Png.c:282: fprintf(stderr, "******PngCompressData: PANIC! Can't compress images with [%d] bits per pixel.\n",
+Png.c:302: fprintf(stderr, "******PngCompressData: Compressing image with width [%d] height [%d].\n",
+Png.c:315: fprintf(stderr, "******PngCompressData: PANIC! Failed creating the png_create_write_struct.\n");
+Png.c:326: fprintf(stderr, "******PngCompressData: PANIC! Failed creating the png_create_info_struct.\n");
+Png.c:337: fprintf(stderr, "******PngCompressData: PANIC! Error during compression initialization.\n");
+Png.c:350: fprintf(stderr, "******PngCompressData: Allocating [%d] bytes for the destination data.\n",
+Png.c:359: fprintf(stderr, "******PngCompressData: PANIC! Error allocating [%d] bytes for the Png data.\n",
+Png.c:371: fprintf(stderr, "******PngCompressData: PANIC! Error writing the header.\n");
+Png.c:437: fprintf(stderr, "******PngCompressData: pixel[%d] r[%d] g[%d] b[%d].\n",
+Png.c:467: fprintf(stderr, "******PngCompressData: PANIC! Error while writing the image rows.\n");
+Png.c:484: fprintf(stderr, "******PngCompressData: PANIC! Cannot allocate [%d] bytes.\n",
+Png.c:514: fprintf(stderr, "******PngCompressData: PANIC! Cannot allocate [%d] bytes.\n",
+Png.c:548: fprintf(stderr, "******PngCompressData: PANIC! error during end of write.\n");
+Png.h:46:extern char *PngCompressData(
+
+#### RgbCompressData ####
+Compext.c:2660: dst_image -> data = RgbCompressData(src_image, &dst_size);
+Rgb.c:46:char *RgbCompressData(XImage *image, unsigned int *size)
+Rgb.h:33:extern char *RgbCompressData(
+
+#### RleCompressData ####
+Compext.c:2705: dst_image -> data = RleCompressData(src_image, &dst_size);
+Rle.c:46:char *RleCompressData(XImage *image, unsigned int *size)
+Rle.h:33:extern char *RleCompressData(
+
+#### ZCompressData ####
+Alpha.c:48: return ZCompressData(data, size, alphaCompressionThreshold, alphaCompressionLevel,
+Colormap.c:48: return ZCompressData(data, size, colormapCompressionThreshold, colormapCompressionLevel,
+Rgb.c:48: return ZCompressData(image -> data, image -> bytes_per_line * image -> height,
+Rle.c:48: return ZCompressData(image -> data, image -> bytes_per_line * image -> height,
+Z.c:57:char *ZCompressData(const char *plainData, unsigned int plainSize, int threshold,
+Z.c:75: fprintf(stderr, "******ZCompressData: PANIC! Failed to allocate [%d] bytes for the destination.\n",
+Z.c:87: fprintf(stderr, "******ZCompressData: Not compressing [%d] bytes with level [%d] and "
+Z.c:128: fprintf(stderr, "******ZCompressData: PANIC! Failed to compress [%d] bytes with error [%s].\n",
+Z.c:140: fprintf(stderr, "******ZCompressData: Source data of [%d] bytes compressed to [%d].\n",
+Z.h:45:extern char *ZCompressData(
+
+#### ZInitEncoder ####
+Compext.c:423: ZInitEncoder();
+Z.c:242:int ZInitEncoder()
+Z.c:253: fprintf(stderr, "******ZInitEncoder: PANIC! Failed to allocate memory for the stream.\n");
+Z.c:264: fprintf(stderr, "******ZInitEncoder: Initializing compressor with level [%d] and startegy [%d].\n",
+Z.c:274: fprintf(stderr, "******ZInitEncoder: Failed to initialize the compressor with error [%s].\n",
+Z.h:33:int ZInitEncoder(
+
+#### ZResetEncoder ####
+Compext.c:430: ZResetEncoder();
+Z.c:287:int ZResetEncoder()
+Z.c:298: fprintf(stderr, "******ZResetEncoder: WARNING! Failed to deinitialize the compressor with error [%s].\n",
+Z.h:39:int ZResetEncoder(
+
+#### _NXInternalInitEncoders ####
+Compext.c:262:extern int _NXInternalInitEncoders(Display *dpy);
+Compext.c:275: _NXInternalInitEncoders(dpy);
+Compext.c:421:int _NXInternalInitEncoders(Display *dpy)
+
+#### _NXInternalInitResources ####
+Compext.c:260:extern int _NXInternalInitResources(Display *dpy);
+Compext.c:273: _NXInternalInitResources(dpy);
+Compext.c:313:int _NXInternalInitResources(Display *dpy)
+
+#### _NXInternalResetEncoders ####
+Compext.c:263:extern int _NXInternalResetEncoders(Display *dpy);
+Compext.c:299: _NXInternalResetEncoders(dpy);
+Compext.c:428:int _NXInternalResetEncoders(Display *dpy)
+
+#### _NXInternalResetResources ####
+Compext.c:261:extern int _NXInternalResetResources(Display *dpy);
+Compext.c:297: _NXInternalResetResources(dpy);
+Compext.c:315: return _NXInternalResetResources(dpy);
+Compext.c:318:int _NXInternalResetResources(Display *dpy)
+Compext.c:323: fprintf(stderr, "******_NXInternalResetResources: Clearing all the internal structures.\n");
+Compext.c:334: fprintf(stderr, "******_NXInternalResetResources: WARNING! Clearing collect image data "
+Compext.c:358: fprintf(stderr, "******_NXInternalResetResources: WARNING! Clearing collect property data "
+Compext.c:382: fprintf(stderr, "******_NXInternalResetResources: WARNING! Clearing grab pointer data "
+Compext.c:401: fprintf(stderr, "******_NXInternalResetResources: WARNING! Clearing collect input focus data "
+
+#### color_type ####
+Png.c:76:png_byte color_type;
+Png.c:394: color_type = PNG_COLOR_TYPE_PALETTE;
+Png.c:398: color_type = PNG_COLOR_TYPE_RGB;
+Png.c:402: 8, color_type, PNG_INTERLACE_NONE,
+Png.c:405: if (color_type == PNG_COLOR_TYPE_PALETTE)
+Png.c:477: if (color_type == PNG_COLOR_TYPE_PALETTE)
+Png.c:525: if (color_type == PNG_COLOR_TYPE_RGB)
+Png.c:560: if (color_type == PNG_COLOR_TYPE_PALETTE)
+
+#### info_ptr ####
+Png.c:78:png_infop info_ptr;
+Png.c:321: info_ptr = png_create_info_struct(png_ptr);
+Png.c:323: if (info_ptr == NULL)
+Png.c:340: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:374: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:401: png_set_IHDR(png_ptr, info_ptr, w, h,
+Png.c:442: png_set_PLTE(png_ptr, info_ptr, palette, num);
+Png.c:453: png_write_info(png_ptr, info_ptr);
+Png.c:470: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:551: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:565: png_destroy_write_struct(&png_ptr, &info_ptr);
+
+#### palette ####
+Png.c:79:png_colorp palette;
+Png.c:87: * space to include the palette and the
+Png.c:407: palette = png_malloc(png_ptr, sizeof(*palette) * 256);
+Png.c:412: * memset(palette, 0, sizeof(*palette) * 256);
+Png.c:419: palette[num].red = (color_table[num].pixel >> redShift) & redMax;
+Png.c:420: palette[num].green = (color_table[num].pixel >> greenShift) & greenMax;
+Png.c:421: palette[num].blue = color_table[num].pixel >> blueShift & blueMax;
+Png.c:431: palette[num].red = (CARD8)((inRed * 255 + redMax / 2) / redMax);
+Png.c:432: palette[num].green = (CARD8)((inGreen * 255 + greenMax / 2) / greenMax);
+Png.c:433: palette[num].blue = (CARD8)((inBlue * 255 + blueMax / 2) / blueMax);
+Png.c:438: (int) color_table[num].pixel,palette[num].red,palette[num].green,palette[num].blue);
+Png.c:442: png_set_PLTE(png_ptr, info_ptr, palette, num);
+Png.c:445: fprintf(stderr, "******PngCompressedData: Setting palette.\n");
+Png.c:450: * End of palette.
+Png.c:562: png_free(png_ptr, palette);
+
+#### png_ptr ####
+Png.c:57:static void PngWriteData(png_structp png_ptr, png_bytep data, png_size_t length);
+Png.c:58:static void PngFlushData(png_structp png_ptr);
+Png.c:77:png_structp png_ptr;
+Png.c:310: png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+Png.c:312: if (png_ptr == NULL)
+Png.c:321: info_ptr = png_create_info_struct(png_ptr);
+Png.c:329: png_destroy_write_struct(&png_ptr, NULL);
+Png.c:334: if (setjmp(png_jmpbuf(png_ptr)))
+Png.c:340: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:366: png_set_write_fn(png_ptr, (void *) pngCompBuf, PngWriteData, PngFlushData);
+Png.c:368: if (setjmp(png_jmpbuf(png_ptr)))
+Png.c:374: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:381: png_set_compression_level(png_ptr, PNG_Z_LEVEL);
+Png.c:401: png_set_IHDR(png_ptr, info_ptr, w, h,
+Png.c:407: palette = png_malloc(png_ptr, sizeof(*palette) * 256);
+Png.c:442: png_set_PLTE(png_ptr, info_ptr, palette, num);
+Png.c:453: png_write_info(png_ptr, info_ptr);
+Png.c:464: if (setjmp(png_jmpbuf(png_ptr)))
+Png.c:470: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:534: png_write_row(png_ptr, srcBuf);
+Png.c:545: if (setjmp(png_jmpbuf(png_ptr)))
+Png.c:551: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:558: png_write_end(png_ptr, NULL);
+Png.c:562: png_free(png_ptr, palette);
+Png.c:565: png_destroy_write_struct(&png_ptr, &info_ptr);
+Png.c:610:static void PngWriteData(png_structp png_ptr, png_bytep data, png_size_t length)
+Png.c:612: memcpy(((char *) png_get_io_ptr(png_ptr) + pngDataLen), data, length);
+Png.c:617:static void PngFlushData(png_structp png_ptr)
diff --git a/doc/nxcompext/symbols/nxcompext::symbol-usage_nxagent.txt b/doc/nxcompext/symbols/nxcompext::symbol-usage_nxagent.txt
new file mode 100644
index 000000000..47c2a68a0
--- /dev/null
+++ b/doc/nxcompext/symbols/nxcompext::symbol-usage_nxagent.txt
@@ -0,0 +1,351 @@
+
+#### AlphaCompressData ####
+
+#### BitmapCompressData ####
+
+#### CleanXYImage ####
+
+#### CleanZImage ####
+
+#### ColormapCompressData ####
+
+#### CopyAndCleanImage ####
+
+#### FindLSB ####
+
+#### JpegCompressData ####
+
+#### MaskImage ####
+NXdixfonts.c:225: BitmapFormatMaskImageRectangle |
+
+#### MaskInPlaceImage ####
+
+#### NXAbortSplit ####
+Split.c:506: NXAbortSplit(nxagentDisplay, pResource -> split);
+
+#### NXAllocColors ####
+
+#### NXAllocSplit ####
+Split.c:104: resource = NXAllocSplit(nxagentDisplay, NXAnyResource);
+
+#### NXAllocUnpack ####
+
+#### NXCacheAddImage ####
+Image.c:1495: NXCacheAddImage(packedImage, packMethod, packedChecksum);
+
+#### NXCacheFindImage ####
+Image.c:1305: packedImage = NXCacheFindImage(plainImage, &packMethod, &packedChecksum);
+
+#### NXCleanImage ####
+Cursor.c:209: NXCleanImage(image);
+Cursor.c:227: NXCleanImage(image);
+Image.c:1294: NXCleanImage(plainImage);
+Image.c:1393: NXCleanImage(plainImage);
+Image.c:1533: NXCleanImage(plainImage);
+Pixmap.c:1102: NXCleanImage(image);
+Pixmap.c:1434: NXCleanImage(image);
+Pixmap.c:1596: NXCleanImage(image);
+Screen.c:4567: NXCleanImage(image);
+Screen.c:4680: NXCleanImage(image);
+
+#### NXCollectGrabPointer ####
+Events.c:1246: NXCollectGrabPointer(nxagentDisplay, resource,
+Events.c:3055: case NXCollectGrabPointerNotify:
+Events.c:3060: fprintf(stderr, "nxagentHandleProxyEvent: NXCollectGrabPointerNotify received with resource [%d].\n",
+Events.c:3884: NXCollectGrabPointer(nxagentDisplay, resource,
+Events.c:3967: X -> xclient.data.l[0] == NXCollectGrabPointerNotify);
+NXevents.c:213: NXCollectGrabPointer(nxagentDisplay, resource, nxagentWindow(grab -> window),
+
+#### NXCollectImage ####
+
+#### NXCollectInputFocus ####
+Events.c:3068: case NXCollectInputFocusNotify:
+Events.c:3077: fprintf(stderr, "nxagentHandleProxyEvent: NXCollectInputFocusNotify received with resource [%d].\n",
+Handlers.c:1039: X -> xclient.data.l[0] == NXCollectInputFocusNotify);
+Handlers.c:1331: NXCollectInputFocus(nxagentDisplay, resource);
+
+#### NXCollectProperty ####
+Clipboard.c:560: result = NXCollectProperty(nxagentDisplay,
+Clipboard.c:616: result = NXCollectProperty(nxagentDisplay,
+Events.c:2372: NXCollectProperty(nxagentDisplay, resource,
+Events.c:3042: case NXCollectPropertyNotify:
+Events.c:3047: fprintf(stderr, "nxagentHandleProxyEvent: NXCollectPropertyNotify received with resource [%d].\n",
+
+#### NXCommitSplit ####
+Client.c:319: event -> xclient.data.l[0] == NXCommitSplitNotify ||
+Events.c:2986: case NXCommitSplitNotify:
+Events.c:3001: fprintf(stderr, "nxagentHandleProxyEvent: NXCommitSplitNotify received with "
+Split.c:814: event -> xclient.data.l[0] == NXCommitSplitNotify &&
+Split.c:1032: NXCommitSplit(nxagentDisplay, resource, 1, request, position);
+Split.c:1041: NXCommitSplit(nxagentDisplay, resource, 0, request, position);
+
+#### NXCreatePackedImage ####
+
+#### NXCreatePalette16 ####
+
+#### NXCreatePalette32 ####
+
+#### NXDestroyPackedImage ####
+
+#### NXDisplayCongestion ####
+Display.c:783: nxagentCongestion = NXDisplayCongestion(nxagentDisplay);
+
+#### NXDisplayError ####
+Client.c:378: NXDisplayError(nxagentDisplay) == 1)
+Dialog.c:367: if (NXDisplayError(nxagentDisplay) == 0 &&
+Dialog.c:377: while (NXDisplayError(nxagentDisplay) == 0 &&
+Drawable.c:1348: if (NXDisplayError(nxagentDisplay) == 1)
+Events.c:4541: if (NXDisplayError(dpy) == 1)
+Font.c:233: if (NXDisplayError(nxagentDisplay) == 1)
+Font.c:608: if (nxagentRemoteFontList.length == 0 && (NXDisplayError(nxagentDisplay) == 0))
+Font.c:660: if (NXDisplayError(nxagentDisplay) == 0)
+Handlers.c:249: if (NXDisplayError(nxagentDisplay) == 1 && nxagentShadowCounter == 0 && nxagentOption(SleepTime) > 0)
+Handlers.c:544: if (NXDisplayError(nxagentDisplay) == 0 &&
+Image.c:523: NXDisplayError(nxagentDisplay) == 1 &&
+Image.c:626: if (NXDisplayError(nxagentDisplay) == 1)
+Image.c:946: if (NXDisplayError(nxagentDisplay) == 1)
+Keyboard.c:708: if (NXDisplayError(nxagentDisplay) == 1)
+Keyboard.c:1162: if (NXDisplayError(nxagentDisplay) == 1)
+Keyboard.c:1191: if (NXDisplayError(nxagentDisplay) == 1)
+Keyboard.c:1291: if (NXDisplayError(nxagentDisplay) == 1)
+Pixmap.c:858: NXDisplayError(nxagentDisplay) == 1)
+Pointer.c:119: if (NXDisplayError(nxagentDisplay) == 1)
+Pointer.c:138: if (NXDisplayError(nxagentDisplay) == 1)
+Pointer.c:155: if (NXDisplayError(nxagentDisplay) == 1)
+Reconnect.c:712: if (NXDisplayError(nxagentDisplay) == 0)
+Rootless.c:466: if (NXDisplayError(nxagentDisplay) == 1)
+Rootless.c:1179: if (NXDisplayError(nxagentDisplay) == 1)
+Split.c:783: NXDisplayError(nxagentDisplay) == 1)
+Split.c:787: if (NXDisplayError(nxagentDisplay) == 1)
+Split.c:885: if (NXDisplayError(nxagentDisplay) == 1)
+Window.c:2312: if (NXDisplayError(nxagentDisplay) == 1)
+
+#### NXDisplayFlushable ####
+Handlers.c:467: flushable = NXDisplayFlushable(nxagentDisplay);
+
+#### NXDisplayReadable ####
+
+#### NXEncodeAlpha ####
+
+#### NXEncodeBitmap ####
+Image.c:1410: packedImage = NXEncodeBitmap(plainImage, packMethod, packQuality);
+
+#### NXEncodeColormap ####
+
+#### NXEncodeColors ####
+
+#### NXEncodeJpeg ####
+Image.c:1431: packedImage = NXEncodeJpeg(plainImage, packMethod, packQuality);
+
+#### NXEncodePng ####
+Image.c:1436: packedImage = NXEncodePng(plainImage, packMethod, packQuality);
+
+#### NXEncodeRgb ####
+Image.c:1416: packedImage = NXEncodeRgb(plainImage, packMethod, packQuality);
+
+#### NXEncodeRle ####
+Image.c:1422: packedImage = NXEncodeRle(plainImage, packMethod, packQuality);
+
+#### NXEndSplit ####
+Client.c:320: event -> xclient.data.l[0] == NXEndSplitNotify ||
+Events.c:3010: case NXEndSplitNotify:
+Events.c:3020: fprintf(stderr, "nxagentHandleProxyEvent: NXEndSplitNotify received with "
+Image.c:835: NXEndSplit(nxagentDisplay, resource);
+
+#### NXFinishSplit ####
+Client.c:351: NXFinishSplit(nxagentDisplay, client -> index);
+Split.c:756: NXFinishSplit(nxagentDisplay, pResource -> split);
+
+#### NXFlushDisplay ####
+Client.c:355: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Events.c:3354: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Events.c:4517: NXFlushDisplay(dpy, NXFlushLink);
+Handlers.c:487: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Handlers.c:524: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Handlers.c:838: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+Handlers.c:1333: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Split.c:760: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Split.c:874: NXFlushDisplay(nxagentDisplay, NXFlushBuffer);
+Window.c:2493: NXFlushDisplay(nxagentDisplay, NXFlushLink);
+
+#### NXForceDisplayError ####
+Display.c:834: NXForceDisplayError(display);
+Display.c:2989: NXForceDisplayError(nxagentDisplay);
+Events.c:4498: NXForceDisplayError(dpy);
+
+#### NXFreeCache ####
+Display.c:1854: NXFreeCache(nxagentDisplay);
+
+#### NXFreeSplit ####
+Split.c:185: NXFreeSplit(nxagentDisplay, pResource -> split);
+
+#### NXFreeUnpack ####
+
+#### NXGetCollectGrabPointerResource ####
+Events.c:1240: int resource = nxagentWaitForResource(NXGetCollectGrabPointerResource,
+Events.c:3881: resource = nxagentWaitForResource(NXGetCollectGrabPointerResource,
+NXevents.c:210: int resource = nxagentWaitForResource(NXGetCollectGrabPointerResource,
+
+#### NXGetCollectImageResource ####
+
+#### NXGetCollectInputFocusResource ####
+Handlers.c:1312: resource = nxagentWaitForResource(NXGetCollectInputFocusResource,
+
+#### NXGetCollectPropertyResource ####
+Clipboard.c:548: nxagentLastClipboardClient = NXGetCollectPropertyResource(nxagentDisplay);
+Clipboard.c:604: nxagentLastClipboardClient = NXGetCollectPropertyResource(nxagentDisplay);
+Events.c:2361: resource = NXGetCollectPropertyResource(nxagentDisplay);
+
+#### NXGetCollectedGrabPointer ####
+Events.c:3974: if (NXGetCollectedGrabPointer(nxagentDisplay, resource, &status) == 0)
+
+#### NXGetCollectedImage ####
+
+#### NXGetCollectedInputFocus ####
+Handlers.c:1011: if (NXGetCollectedInputFocus(nxagentDisplay, resource, &window, &revert_to) == 0)
+
+#### NXGetCollectedProperty ####
+Clipboard.c:677: result = NXGetCollectedProperty(nxagentDisplay,
+Events.c:4013: result = NXGetCollectedProperty(nxagentDisplay,
+
+#### NXGetControlParameters ####
+Args.c:1800: if (NXGetControlParameters(dpy, &linkType, &localMajor, &localMinor,
+
+#### NXGetFontParameters ####
+Font.c:1417: if (NXGetFontParameters(nxagentDisplay, 256, path) == True)
+
+#### NXGetShmemParameters ####
+Args.c:1873: if (NXGetShmemParameters(dpy, &enableClient, &enableServer, &clientSegment,
+
+#### NXGetUnpackParameters ####
+Args.c:2228: if (NXGetUnpackParameters(nxagentDisplay, &entries, supportedMethods) == 0 ||
+
+#### NXHandleDisplayError ####
+Display.c:860: NXHandleDisplayError(1);
+
+#### NXImageCache ####
+Image.c:1277: nxagentLosslessTrap == 0 && NXImageCacheSize > 0)
+Image.c:1476: if (NXImageCacheSize > 0 && packedChecksum != NULL)
+
+#### NXImageCacheHits ####
+
+#### NXImageCacheOps ####
+
+#### NXImageCacheSize ####
+Image.c:1277: nxagentLosslessTrap == 0 && NXImageCacheSize > 0)
+Image.c:1476: if (NXImageCacheSize > 0 && packedChecksum != NULL)
+
+#### NXInPlacePackImage ####
+
+#### NXInitCache ####
+Display.c:909: NXInitCache(nxagentDisplay, 128);
+Display.c:911: NXInitCache(nxagentDisplay, 256);
+
+#### NXInitDisplay ####
+Display.c:905: NXInitDisplay(nxagentDisplay);
+
+#### NXMaskImage ####
+
+#### NXPackImage ####
+
+#### NXPutPackedImage ####
+Image.c:933: * NXPutPackedImage is longer than PutPackedImage
+Image.c:937: const int subSize = (MAX_REQUEST_SIZE << 2) - sizeof(xNXPutPackedImageReq);
+Image.c:1317: NXPutPackedImage(nxagentDisplay, client -> index, nxagentDrawable(pDrawable),
+Image.c:1465: NXPutPackedImage(nxagentDisplay, client -> index, nxagentDrawable(pDrawable),
+
+#### NXResetDisplay ####
+Display.c:932: NXResetDisplay(nxagentDisplay);
+Display.c:1856: NXResetDisplay(nxagentDisplay);
+
+#### NXSetCacheParameters ####
+Image.c:776: NXSetCacheParameters(nxagentDisplay, 0, 1, 0, 0);
+Image.c:913: NXSetCacheParameters(nxagentDisplay, 1, 1, 1, 1);
+
+#### NXSetDisplayBlockHandler ####
+Display.c:862: NXSetDisplayBlockHandler(nxagentDisplayBlockHandler);
+
+#### NXSetDisplayBuffer ####
+Args.c:2538: if (NXSetDisplayBuffer(nxagentDisplay, nxagentBuffer) < 0)
+Handlers.c:430: NXSetDisplayBuffer(nxagentDisplay, nxagentBuffer);
+Handlers.c:442: NXSetDisplayBuffer(nxagentDisplay, nxagentBuffer);
+
+#### NXSetDisplayErrorPredicate ####
+Display.c:889: NXSetDisplayErrorPredicate(nxagentDisplayErrorPredicate);
+
+#### NXSetDisplayFlushHandler ####
+Display.c:866: NXSetDisplayFlushHandler(nxagentDisplayFlushHandler, NULL);
+Display.c:913: NXSetDisplayFlushHandler(nxagentDisplayFlushHandler, nxagentDisplay);
+
+#### NXSetDisplayPolicy ####
+Display.c:661: NXSetDisplayPolicy(nxagentDisplay, NXPolicyImmediate);
+Init.c:457: NXSetDisplayPolicy(nxagentDisplay, NXPolicyDeferred);
+Reconnect.c:669: NXSetDisplayPolicy(nxagentDisplay, NXPolicyDeferred);
+
+#### NXSetDisplayStatisticsHandler ####
+
+#### NXSetDisplayWriteHandler ####
+Display.c:864: NXSetDisplayWriteHandler(nxagentDisplayWriteHandler);
+
+#### NXSetExposeParameters ####
+Args.c:1896: NXSetExposeParameters(nxagentDisplay, 1, 1, 0);
+Events.c:614: NXSetExposeParameters(nxagentDisplay, 0, 0, 0);
+Screen.c:969: NXSetExposeParameters(nxagentDisplay, 0, 0, 0);
+
+#### NXSetLostSequenceHandler ####
+
+#### NXSetUnpackAlpha ####
+Image.c:449: NXSetUnpackAlpha(nxagentDisplay, resource, PACK_NONE, size, data, size);
+Image.c:453: NXSetUnpackAlphaCompat(nxagentDisplay, resource, size, data);
+
+#### NXSetUnpackAlphaCompat ####
+Image.c:453: NXSetUnpackAlphaCompat(nxagentDisplay, resource, size, data);
+
+#### NXSetUnpackColormap ####
+
+#### NXSetUnpackColormapCompat ####
+
+#### NXSetUnpackGeometry ####
+Image.c:1247: NXSetUnpackGeometry(nxagentDisplay, client -> index, pVisual);
+
+#### NXStartSplit ####
+Client.c:318: event -> xclient.data.l[0] == NXStartSplitNotify ||
+Events.c:2958: case NXStartSplitNotify:
+Events.c:2978: fprintf(stderr, "nxagentHandleProxyEvent: PANIC! NXStartSplitNotify received "
+Image.c:827: NXStartSplit(nxagentDisplay, resource, NXSplitModeDefault);
+Split.c:857: event -> xclient.data.l[0] == NXStartSplitNotify) &&
+
+#### NXUnsetLibraryPath ####
+Init.c:276: NXUnsetLibraryPath(1);
+
+#### PackImage ####
+
+#### PngCompareColorTable ####
+
+#### PngCompressData ####
+
+#### RgbCompressData ####
+
+#### RleCompressData ####
+
+#### ZCompressData ####
+
+#### ZInitEncoder ####
+
+#### ZResetEncoder ####
+
+#### _NXInternalInitEncoders ####
+
+#### _NXInternalInitResources ####
+
+#### _NXInternalResetEncoders ####
+
+#### _NXInternalResetResources ####
+
+#### color_type ####
+
+#### info_ptr ####
+
+#### palette ####
+
+#### png_ptr ####
diff --git a/doc/nxcompext/symbols/nxcompext::symbols.txt b/doc/nxcompext/symbols/nxcompext::symbols.txt
new file mode 100644
index 000000000..5439f75b2
--- /dev/null
+++ b/doc/nxcompext/symbols/nxcompext::symbols.txt
@@ -0,0 +1,102 @@
+AlphaCompressData
+BitmapCompressData
+CleanXYImage
+CleanZImage
+ColormapCompressData
+CopyAndCleanImage
+FindLSB
+JpegCompressData
+MaskImage
+MaskInPlaceImage
+NXAbortSplit
+NXAllocColors
+NXAllocSplit
+NXAllocUnpack
+NXCacheAddImage
+NXCacheFindImage
+NXCleanImage
+NXCollectGrabPointer
+NXCollectImage
+NXCollectInputFocus
+NXCollectProperty
+NXCommitSplit
+NXCreatePackedImage
+NXCreatePalette16
+NXCreatePalette32
+NXDestroyPackedImage
+NXDisplayCongestion
+NXDisplayError
+NXDisplayFlushable
+NXDisplayReadable
+NXEncodeAlpha
+NXEncodeBitmap
+NXEncodeColormap
+NXEncodeColors
+NXEncodeJpeg
+NXEncodePng
+NXEncodeRgb
+NXEncodeRle
+NXEndSplit
+NXFinishSplit
+NXFlushDisplay
+NXForceDisplayError
+NXFreeCache
+NXFreeSplit
+NXFreeUnpack
+NXGetCollectGrabPointerResource
+NXGetCollectImageResource
+NXGetCollectInputFocusResource
+NXGetCollectPropertyResource
+NXGetCollectedGrabPointer
+NXGetCollectedImage
+NXGetCollectedInputFocus
+NXGetCollectedProperty
+NXGetControlParameters
+NXGetFontParameters
+NXGetShmemParameters
+NXGetUnpackParameters
+NXHandleDisplayError
+NXImageCache
+NXImageCacheHits
+NXImageCacheOps
+NXImageCacheSize
+NXInPlacePackImage
+NXInitCache
+NXInitDisplay
+NXMaskImage
+NXPackImage
+NXPutPackedImage
+NXResetDisplay
+NXSetCacheParameters
+NXSetDisplayBlockHandler
+NXSetDisplayBuffer
+NXSetDisplayErrorPredicate
+NXSetDisplayFlushHandler
+NXSetDisplayPolicy
+NXSetDisplayStatisticsHandler
+NXSetDisplayWriteHandler
+NXSetExposeParameters
+NXSetLostSequenceHandler
+NXSetUnpackAlpha
+NXSetUnpackAlphaCompat
+NXSetUnpackColormap
+NXSetUnpackColormapCompat
+NXSetUnpackGeometry
+NXStartSplit
+NXUnsetLibraryPath
+PackImage
+PngCompareColorTable
+PngCompressData
+RgbCompressData
+RleCompressData
+ZCompressData
+ZInitEncoder
+ZResetEncoder
+_NXInternalInitEncoders
+_NXInternalInitResources
+_NXInternalResetEncoders
+_NXInternalResetResources
+color_type
+info_ptr
+palette
+png_ptr
diff --git a/doc/nxproxy/README-VALGRIND b/doc/nxproxy/README-VALGRIND
new file mode 100644
index 000000000..ce4d513a4
--- /dev/null
+++ b/doc/nxproxy/README-VALGRIND
@@ -0,0 +1,39 @@
+README-VALGRIND
+---------------
+
+You can run nxproxy (and nxcomp) under the supervision of valgrind
+(a very good memory debugger) by wrapping nxproxy in the following
+script:
+
+<snip>
+#!/bin/bash
+
+# Enable core dumps.
+
+ulimit -c unlimited
+
+# Set this to directory where nxproxy is located.
+
+NXPROXY_DIR=~/NX/nxproxy
+
+# Set this to directory where valgrind is located.
+
+VALGRIND_DIR=/usr/local/bin
+
+exec ${VALGRIND_DIR}/valgrind -v --leak-check=yes --leak-resolution=high \
+ --show-reachable=yes --show-reachable=yes \
+ --suppressions=${NXPROXY_DIR}/nxproxy.supp \
+ --num-callers=16 --logfile-fd=2 \
+\
+${NXPROXY_DIR}/nxproxy $1 $2 $3 $4 $5 $6 $7 $8 $9
+<snip>
+
+Run the following commands on your shell, right in the place where
+the nxproxy executable is to be placed in your setup:
+
+$ cat >nxproxy
+<copy paste the previous lines here>
+$ chmod a+x nxproxy
+
+Output of valgrind will go on stderr, that is in session file, if
+run in NX environment.