Index 1 LD_PRELOADµÄÒâÒå ºÍ XA+CVµÄÔÀí 2 DEBUG OUTPUT 3 Ö¸¶¨ libX11.soµÄλÖà 4 ÊäÈëģʽºÍÏÔʾģʽ 5 ÊÊÓÃÈíÌå 6 +CV 7 ÒÑÖª BUG 1 LD_PRELOAD µÄÒâÒå ÔÚÐí¶à×÷ҵϵͳÏÂ(sunos , linux , freebsd ....) Ö´ÐгÌʽ»á×Ô¶¯¶¯Ì¬Áª½áµ½»·¾³±äÊýLD_PRELOADËùÖ¸ÏòµÄ¶¯Ì¬³Ìʽ¿âµµ XA µÄÔÀí¾ÍÊÇÀûÓÃÕâ¸ö·½·¨À¹½Ø libX11.so µÄº¯Êý¹¦ÄÜ,Ö»Òª³Ìʽ±¾Éí Ô±¾Óкô½ÐlibX11.so µÄ NextEvent »ò XLookupStringsµÄ»°,¶¼»á±»XA À¹½Ø,ÒÀÕÕÒ»°ãµÄ³Ìʽд×÷·½Ê½,¿ÉÒÔÈñ»À¹½ØµÄ³ÌʽӵÓкÍXcin¹µÍ¨µÄ»ú»á. ½ø¶øÓµÓÐÖÐÎÄÊäÈëµÄÄÜÁ¦. ÓÉì¶XAµÄÔÀí¾ÍÊÇÀûÓÃÀ¹½Øº¯ÊýµÄ·½Ê½ÆÛÉÏÂ÷ÏÂ,ËùÒÔÓкܶàÇéÐÎXAµÄÆÊõ»á ʧÁé,¾ÍÈçͬDOSʱ´úµÄÖÐÎÄϵͳһÑù,µ«Ò»°ãµÄÇéÐÎÏÂÊÇ¿ÉÒÔµÄ,²»¹ýÓÐЩӢ ÎÄÈíÌåÓÐÓÉûÓп¼Âǵ½8bitµÄÊäÈë,ËùÒÔÓÐʱҪ°Ñlocaleµ÷¶Ô²ÅÐÐ,²»¹ýÕâÊÇ ÈíÌåµÄÎÊÌâ,XA or Xcin ²»¸ºÔð,¾ÍÈçͬcwin95ÏÂÓÐЩÈíÌåÖÐÎÄÒ²ÓÐÎÊÌâ. ÁíÍâÒ»¸öÎÊÌâÊÇ LD_PRELOAD±¾ÉíµÄÏÞÖÆ,ÓÉ춰²È«ÉϵÄÎÊÌâ, µ±ÄãÖ´Ðе½ ¸Ä±äÉí·Ý»òȨÏ޵ijÌʽʱ,µ¼ÖÂuid!=euid,ÔòLD_PRELOAD×Ô¶¯Ê§Ð§,XAµ±È» ʧȥ×÷ÓÃ,¿ÉÒÔÀûÓÃXAµÄ°ì·¨ÐÞ¸ÄlibX11.so,¾Í²»ÓÃLD_PRELOADÁË. ±È½ÏÄѽâ¾õµÃÎÊÌâÊÇ,Èç¹û³ÌʽÊÇstatic linked µÄ»°,ÄǾÍËãÐÞ¸ÄlibX11.so ҲûÓÃ,Ö»ºÃÀûÓÃ"ÀàËÆ"XAµÄ·½·¨ÐÞ¸ÄXserver . ÔÚһЩ×÷ҵϵͳÏÂ,ûÓÐLD_*ϵÁеĻ·¾³±äÊý,µ«ÓÐ_RLD_*ϵÁеÄ, Ó÷¨ÓÐÒ»µã²îÒì,µ«²î²»¶à +CV ÀàËÆ XA ,Ö»²»¹ýËûÈ¡´úµÄÊÇ ÏÔʾµÄ²¿·Ý(XDraw.....Strings) 2 DEBUG OUTPUT /tmp/wraplog ÊÇ log ËùÔÚ,¿ÉÒÔµ¼Ïòµ½/dev/stderr µÈµÈµØ·½, Èç¹ûÐèÒª½Ï¶àµÄ³ý´íѶϢ,ÇëÔÚmakeʱdefine P_LOG 3 Ö¸¶¨ libX11.soµÄλÖà compileÊÇ»á²ÂÒ»ÏÂÄãµÄlibX11.so µÄλÖÃ,´óÖÂÉÏ»á²Â¶Ô, Èç¹ûÄãÓõÄÊÇÆäËûµØ·½compileÀ´µÄbinary,»òÕ߸ıäϵͳµÄ»° ¿ÉÒÔÓà »·¾³±äÊý XA_LIBX11 µÄÖÊ,È¡´úÔ±¾ÄÚ¶¨µÄlibX11.so µÄ·¾¶, ±È·½XA_LIBX11=/usr/X11/lib/libX11.so 4 ÊäÈëģʽºÍÏÔʾģʽ ÊäÈëģʽÓÐÈýÖÖ 0) Disable ʹXAµÄ¹¦ÄÜʧЧ, ÓÃÔÚʹÓñ¾À´¾ÍÖ§Ô®xcinÈíÌåµÄʱºò 1) Tradition XA0.3֮ǰµÄ·½·¨,ÊäÈëʱÅäºÏCXwinµÄ»Ãæ±È½ÏºÃ 2) Discrete Ò»¼ü 1byte,ÄÜʹÓõÄÈíÌå½Ï¶à, cmdtool, textedit, xcoral µÈµÈ.µ«ÊäÈëʱÅäºÏCXwinÏÔʾ±È½ÏÓÐÎÊÌâ,ÕâÖ÷ ÒªÊÇCXwinµÄÎÊÌâ,²»ÊÇXAµÄÎÊÌâ,´ËģʽÄÚ¶¨ Òª¸Ä±äÊäÈëģʽ,Ö»Òª°´Ï F12 Õâ¸ö¼ü ,»áÅܳöÒ»¸ö´°×Ó,ÏÔʾÏÖÔÚµÄģʽ È»áá°´Ï 0 ,1 ,or 2 Ñ¡Ôñģʽ,´°×ӾͻáÏûʧ,Èç¹û°´Ïµļü²»ÊÇ 0,1,2µÄ»° ÊäÈëģʽ²»¸Ä±ä. »·¾³±äÊý XA_MODE ¿ÉÒÔÈ¡´úÔÀ´µÄÄÚ¶¨Ä£Ê½ ¿ÉÄܵÄÖÊÊÇ 0 ,1 , 2 ÈýÖÖ(eg export XA_MODE=1 or setenv XA_MODE 1 ) ÏÔʾģʽÓÐÁ½ÖÖ a ´ò¿ª b ¹Ø±Õ Ó÷¨ÓëÊäÈëģʽÀàËÆ, ,Ö»Òª°´Ï F12 Õâ¸ö¼ü ,ÔÙ°´Ï a »ò b ¿É¸Ä±ä Ô¤ÉèÖµÊÇ´ò¿ª. XA_CVMODE Õâ¸ö»·¾³±äÊý¿ÉÒԸıäÔ¤ÉèÖµ ¿É½ÓÊܵÄÖµÊÇ a ºÍ b 5 ÊÊÓÃÈíÌå ³É¹¦Õß : xedit , xpaint , xterm ,color_xterm ,cxterm,rxvt netscape (3.x 4.x linux ʹÓÃmode 1) , xmftp , chpower ,nedit, xjed ,nedit ,xxgdb , xman , xclipboard , xposit+ (²»´ú±íÅäºÏCXwinÖÐÎÄÏÔʾûÎÊÌâ) ÐèÒªmode 2Õß: textedit , cmdtool ,µÈopenwin³Ìʽ xcoral: xcoralÖеÄf_asciiÖÐÓÐÓõ½ isprint( infos -> ch ) isprint ºÍ localeÓÐ¹Ø (at least linux and freebsd) Èç¹ûÉèºÃµÄ»°¾ÉûÎÊÌâ,Òª²»È»ÓÐÁ½¸ö°ì·¨.... 1) ¸Ä xcoralµÄsource °Ñisprint remarkµô 2) ÔÚ XA ÖÐÀ¹½Ø isprint (Õâ¿ÉûÄÇ÷á¼òµ¥ ,ÒòΪ ÿ¸ö³Ìʽ¿â¶ÔisprintÓв»Í¬µÄ´¦Àí·½Ê½ ÓÐЩÓÃdefine µÄ) ÐèÒª mode 0(disable)Õß: crxvt ,ted(ÖÐÎÄ)µÈµÈ±¾À´¾ÍÖ§Ô®xcinµÄÈíÌå ʧ°ÜÕß: netscape(sunos4 version) ÒòΪ ûÓÐÁª½áµ½ libX11.so staroffice: swrite ʧ°Ü (xa 0.3) xcoral: xcoralÖеÄf_asciiÖÐÓÐÓõ½ isprint( infos -> ch ) isprint ºÍ localeÓÐ¹Ø (at least linux and freebsd) Èç¹ûÉèºÃµÄ»°¾Í¿ÉÒÔÓÃmode 2ûÎÊÌâ,(ÖÐÎÄÏÔʾµÄ²»´í) Òª²»È»ÓÐÁ½¸ö°ì·¨.... 1) ¸Ä xcoralµÄsource °Ñisprint remarkµô 2) ÔÚ XA ÖÐÀ¹½Ø isprint (Õâ¿ÉûÄÇ÷á¼òµ¥,ÒòΪ²»Í¬»·¾³¶Ô isprintÓв»Í¬´¦Àí·¨,ÓÐЩ»á°ÑisprintµÈµÈµÄctype ×öÒ»¸ö#define) xv: ºÍxcoralÎÊÌâÓ¦¸ÃÀàËÆ ´ó¶àÊýµÄÈíÌå ÓÃÔ¤ÉèÖµ ÊäÈëģʽ 2 , ÏÔʾģʽ a(´ò¿ª) ¿ÉÕý³£ÔË×ö µ«ÈÔÓв»ÉÙÈíÌåÐèÒªÌض¨Ä£Ê½ netscape ×îºÃÉè³É XA_MODE=1 XA_CVMODE=b crxvt µÈµÈ±¾À´ÓÐÖ§Ô® xcinµÄÈíÌå ͨ³£±ØÐë XA_MODE=0 Èç¹û±¾À´¾ÍÓÐÖÐÎÄÏÔʾµÄÈíÌå,×îºÃÒ² XA_CMODE=b Ê¡µÃÂé·³, ²»¹ý´ó¶àÊýÓ¦¸ÃûÓÐÌ«´óÎÊÌâ, ÓÐCXwin ÖÐÎÄXserverʱ,Ò²¿ÉʹÓà XA_CVMODE=a ´ò¿ª,ÏÔʾЧ¹ûͨ³£»á±ÈÖ»Óà CXwin ʱºÃ,(µ«ËÙ¶ÈÓпÉÄܱȽÏÂý) ijЩXA_MODE=1 ¿ÉÓõÄÈíÌå, XA_MODE=1 ʱ±È XA_MODE=2 Êæ·þ, µ«XA_MODE=2 ÈÔÈ»¿ÉÓà 6 +CV ¿ÉÓà XA_FACEÕâ¸öÖµÀ´Ö¸¶¨ ×ÖÌå ,Èç XA_FACE=kai XA_FACE=ming µ±È»,ÄãÏà¶ÔÓ³µÄ×ÖÐÎҪװºÃ ÏÔʾģʽ²¿·Ý²Î¿¼Ç°Ãæ "4 ÊäÈëģʽºÍÏÔʾģʽ" ÆäËû¿É²Î¿¼ README.+CV 7 ÒÑÖª BUG Ä¿Ç°,ÒÑÖªµÄbugÈçÏ xa µÄbug , crtl-win95 Ϊcore dump ³£³£°´Ï ÓÒÏÂ½ÇµÄ 0/Ins »áÖжϳÌʽ °´Ï F12 ʱ »á²Áµô²¿·ÝÓ©Ä» ¶øÇÒ, ÏÔʾºÜ²î,×ÖÐÎÓÐʱ̫С,ÓÐʱ¿´²»µ½,´ý¸Ä½ø +cv bug ×ÖÐδóСÅжÏÈÔ²»¹»ºÃ,ÓеÄʱºò»áʹµÃÓ©Ä»¿´ÆðÀ´ÔàÔàµÄ,ÓÐʱ»áÓÐÎÊÌâ ÖÐÎĶÏ×ÖÎÄ·¨´¦Àí