rumai 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. data/CREDITS +2 -0
  2. data/bin/rumai +20 -8
  3. data/doc/api/classes/IO.html +72 -0
  4. data/doc/api/classes/Integer.html +110 -0
  5. data/doc/api/classes/Object.html +60 -0
  6. data/doc/api/classes/Rumai.html +867 -0
  7. data/doc/api/classes/Rumai/Area.html +836 -0
  8. data/doc/api/classes/Rumai/Chain.html +197 -0
  9. data/doc/api/classes/Rumai/Client.html +865 -0
  10. data/doc/api/classes/Rumai/ClientContainer.html +191 -0
  11. data/doc/api/classes/Rumai/ExportInstanceMethods.html +69 -0
  12. data/doc/api/classes/Rumai/IXP.html +131 -0
  13. data/doc/api/classes/Rumai/IXP/Agent.html +836 -0
  14. data/doc/api/classes/Rumai/IXP/Agent/FidStream.html +456 -0
  15. data/doc/api/classes/Rumai/IXP/Agent/MODES.html +108 -0
  16. data/doc/api/classes/Rumai/IXP/Agent/RangedPool.html +241 -0
  17. data/doc/api/classes/Rumai/IXP/Error.html +67 -0
  18. data/doc/api/classes/Rumai/IXP/Fcall.html +323 -0
  19. data/doc/api/classes/Rumai/IXP/Qid.html +153 -0
  20. data/doc/api/classes/Rumai/IXP/Rattach.html +67 -0
  21. data/doc/api/classes/Rumai/IXP/Rauth.html +67 -0
  22. data/doc/api/classes/Rumai/IXP/Rclunk.html +67 -0
  23. data/doc/api/classes/Rumai/IXP/Rcreate.html +67 -0
  24. data/doc/api/classes/Rumai/IXP/Rerror.html +67 -0
  25. data/doc/api/classes/Rumai/IXP/Rflush.html +67 -0
  26. data/doc/api/classes/Rumai/IXP/Ropen.html +67 -0
  27. data/doc/api/classes/Rumai/IXP/Rread.html +67 -0
  28. data/doc/api/classes/Rumai/IXP/Rremove.html +67 -0
  29. data/doc/api/classes/Rumai/IXP/Rstat.html +67 -0
  30. data/doc/api/classes/Rumai/IXP/Rversion.html +67 -0
  31. data/doc/api/classes/Rumai/IXP/Rwalk.html +67 -0
  32. data/doc/api/classes/Rumai/IXP/Rwrite.html +67 -0
  33. data/doc/api/classes/Rumai/IXP/Rwstat.html +67 -0
  34. data/doc/api/classes/Rumai/IXP/Stat.html +252 -0
  35. data/doc/api/classes/Rumai/IXP/Stream.html +131 -0
  36. data/doc/api/classes/Rumai/IXP/Struct.html +315 -0
  37. data/doc/api/classes/Rumai/IXP/Struct/Field.html +415 -0
  38. data/doc/api/classes/Rumai/IXP/Struct/Field/CounteeField.html +153 -0
  39. data/doc/api/classes/Rumai/IXP/Struct/Field/CounterField.html +104 -0
  40. data/doc/api/classes/Rumai/IXP/Tattach.html +68 -0
  41. data/doc/api/classes/Rumai/IXP/Tauth.html +67 -0
  42. data/doc/api/classes/Rumai/IXP/Tclunk.html +67 -0
  43. data/doc/api/classes/Rumai/IXP/Tcreate.html +68 -0
  44. data/doc/api/classes/Rumai/IXP/Terror.html +110 -0
  45. data/doc/api/classes/Rumai/IXP/Tflush.html +67 -0
  46. data/doc/api/classes/Rumai/IXP/Topen.html +165 -0
  47. data/doc/api/classes/Rumai/IXP/Tread.html +67 -0
  48. data/doc/api/classes/Rumai/IXP/Tremove.html +67 -0
  49. data/doc/api/classes/Rumai/IXP/Tstat.html +67 -0
  50. data/doc/api/classes/Rumai/IXP/Tversion.html +86 -0
  51. data/doc/api/classes/Rumai/IXP/Twalk.html +68 -0
  52. data/doc/api/classes/Rumai/IXP/Twrite.html +68 -0
  53. data/doc/api/classes/Rumai/IXP/Twstat.html +67 -0
  54. data/doc/api/classes/Rumai/Node.html +817 -0
  55. data/doc/api/classes/Rumai/View.html +818 -0
  56. data/doc/api/classes/Rumai/WidgetImpl.html +65 -0
  57. data/doc/api/classes/Rumai/WidgetNode.html +68 -0
  58. data/doc/api/classes/String.html +163 -0
  59. data/doc/api/classes/StringIO.html +72 -0
  60. data/doc/api/classes/Time.html +156 -0
  61. data/doc/api/created.rid +1 -0
  62. data/doc/api/css/main.css +263 -0
  63. data/doc/api/css/panel.css +383 -0
  64. data/doc/api/css/reset.css +53 -0
  65. data/doc/api/files/CREDITS.html +64 -0
  66. data/doc/api/files/LICENSE.html +76 -0
  67. data/doc/api/files/lib/rumai/fs_rb.html +75 -0
  68. data/doc/api/files/lib/rumai/ixp/message_rb.html +91 -0
  69. data/doc/api/files/lib/rumai/ixp/transport_rb.html +75 -0
  70. data/doc/api/files/lib/rumai/ixp_rb.html +69 -0
  71. data/doc/api/files/lib/rumai/wm_rb.html +77 -0
  72. data/doc/api/files/lib/rumai_rb.html +65 -0
  73. data/doc/api/i/arrows.png +0 -0
  74. data/doc/api/i/results_bg.png +0 -0
  75. data/doc/api/i/tree_bg.png +0 -0
  76. data/doc/api/index.html +14 -18
  77. data/doc/api/js/jquery-1.3.2.min.js +19 -0
  78. data/doc/api/js/jquery-effect.js +593 -0
  79. data/doc/api/js/main.js +22 -0
  80. data/doc/api/js/searchdoc.js +605 -0
  81. data/doc/api/panel/index.html +63 -0
  82. data/doc/api/panel/search_index.js +1 -0
  83. data/doc/api/panel/tree.js +1 -0
  84. data/doc/history.erb +41 -16
  85. data/doc/index.erb +14 -11
  86. data/doc/index.xhtml +519 -846
  87. data/doc/intro.erb +33 -32
  88. data/doc/setup.erb +14 -13
  89. data/doc/usage.erb +69 -35
  90. data/lib/rumai.rb +13 -5
  91. data/lib/rumai/fs.rb +71 -27
  92. data/lib/rumai/ixp.rb +4 -0
  93. data/lib/rumai/ixp/message.rb +178 -81
  94. data/lib/rumai/ixp/transport.rb +144 -91
  95. data/lib/rumai/wm.rb +717 -593
  96. data/rakefile +14 -0
  97. data/test/rumai/ixp/message.rb +42 -54
  98. metadata +110 -89
  99. data/Rakefile +0 -8
  100. data/doc/api/IO.html +0 -53
  101. data/doc/api/Integer.html +0 -102
  102. data/doc/api/Object.html +0 -23
  103. data/doc/api/Rumai.html +0 -1218
  104. data/doc/api/Rumai/Area.html +0 -1088
  105. data/doc/api/Rumai/Chain.html +0 -230
  106. data/doc/api/Rumai/Client.html +0 -1264
  107. data/doc/api/Rumai/ClientContainer.html +0 -227
  108. data/doc/api/Rumai/ExportInstMethods.html +0 -115
  109. data/doc/api/Rumai/IXP.html +0 -23
  110. data/doc/api/Rumai/IXP/Agent.html +0 -1222
  111. data/doc/api/Rumai/IXP/Agent/FidStream.html +0 -602
  112. data/doc/api/Rumai/IXP/Agent/RangedPool.html +0 -263
  113. data/doc/api/Rumai/IXP/Error.html +0 -32
  114. data/doc/api/Rumai/IXP/Fcall.html +0 -398
  115. data/doc/api/Rumai/IXP/Qid.html +0 -99
  116. data/doc/api/Rumai/IXP/Rattach.html +0 -71
  117. data/doc/api/Rumai/IXP/Rauth.html +0 -71
  118. data/doc/api/Rumai/IXP/Rclunk.html +0 -71
  119. data/doc/api/Rumai/IXP/Rcreate.html +0 -71
  120. data/doc/api/Rumai/IXP/Rerror.html +0 -71
  121. data/doc/api/Rumai/IXP/Rflush.html +0 -71
  122. data/doc/api/Rumai/IXP/Ropen.html +0 -71
  123. data/doc/api/Rumai/IXP/Rread.html +0 -71
  124. data/doc/api/Rumai/IXP/Rremove.html +0 -71
  125. data/doc/api/Rumai/IXP/Rstat.html +0 -71
  126. data/doc/api/Rumai/IXP/Rversion.html +0 -71
  127. data/doc/api/Rumai/IXP/Rwalk.html +0 -71
  128. data/doc/api/Rumai/IXP/Rwrite.html +0 -71
  129. data/doc/api/Rumai/IXP/Rwstat.html +0 -71
  130. data/doc/api/Rumai/IXP/Stat.html +0 -188
  131. data/doc/api/Rumai/IXP/Stream.html +0 -112
  132. data/doc/api/Rumai/IXP/Struct.html +0 -348
  133. data/doc/api/Rumai/IXP/Struct/ClassField.html +0 -177
  134. data/doc/api/Rumai/IXP/Struct/Field.html +0 -549
  135. data/doc/api/Rumai/IXP/Struct/Field/CounteeField.html +0 -175
  136. data/doc/api/Rumai/IXP/Struct/Field/CounterField.html +0 -95
  137. data/doc/api/Rumai/IXP/Struct/Integer8Field.html +0 -181
  138. data/doc/api/Rumai/IXP/Struct/StringField.html +0 -128
  139. data/doc/api/Rumai/IXP/Tattach.html +0 -71
  140. data/doc/api/Rumai/IXP/Tauth.html +0 -71
  141. data/doc/api/Rumai/IXP/Tclunk.html +0 -71
  142. data/doc/api/Rumai/IXP/Tcreate.html +0 -71
  143. data/doc/api/Rumai/IXP/Terror.html +0 -156
  144. data/doc/api/Rumai/IXP/Tflush.html +0 -71
  145. data/doc/api/Rumai/IXP/Topen.html +0 -113
  146. data/doc/api/Rumai/IXP/Tread.html +0 -71
  147. data/doc/api/Rumai/IXP/Tremove.html +0 -71
  148. data/doc/api/Rumai/IXP/Tstat.html +0 -71
  149. data/doc/api/Rumai/IXP/Tversion.html +0 -83
  150. data/doc/api/Rumai/IXP/Twalk.html +0 -71
  151. data/doc/api/Rumai/IXP/Twrite.html +0 -71
  152. data/doc/api/Rumai/IXP/Twstat.html +0 -71
  153. data/doc/api/Rumai/Node.html +0 -1139
  154. data/doc/api/Rumai/View.html +0 -1280
  155. data/doc/api/Rumai/WidgetImpl.html +0 -196
  156. data/doc/api/Rumai/WidgetNode.html +0 -184
  157. data/doc/api/String.html +0 -180
  158. data/doc/api/StringIO.html +0 -53
  159. data/doc/api/Time.html +0 -175
  160. data/doc/api/all-methods.html +0 -1436
  161. data/doc/api/all-namespaces.html +0 -140
  162. data/doc/api/app.js +0 -18
  163. data/doc/api/jquery.js +0 -11
  164. data/doc/api/readme.html +0 -38
  165. data/doc/api/style.css +0 -68
  166. data/doc/api/syntax_highlight.css +0 -21
  167. data/doc/theory.erb +0 -3
@@ -0,0 +1,63 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
6
+ <head>
7
+ <title>layout</title>
8
+ <link rel="stylesheet" href="../css/reset.css" type="text/css" media="screen" charset="utf-8" />
9
+ <link rel="stylesheet" href="../css/panel.css" type="text/css" media="screen" charset="utf-8" />
10
+ <script src="search_index.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="tree.js" type="text/javascript" charset="utf-8"></script>
12
+ <script src="../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="../js/searchdoc.js" type="text/javascript" charset="utf-8"></script>
14
+ <script type="text/javascript" charset="utf-8">
15
+ //<![CDATA[
16
+ function placeholder() {
17
+ if (jQuery.browser.safari) return;
18
+ $('#search-label').click(function() {
19
+ $('#search').focus();
20
+ $('#search-label').hide();
21
+ });
22
+
23
+ $('#search').focus(function() {
24
+ $('#search-label').hide();
25
+ });
26
+ $('#search').blur(function() {
27
+ this.value == '' && $('#search-label').show()
28
+ });
29
+
30
+ $('#search')[0].value == '' && $('#search-label').show();
31
+
32
+ setInterval(function() { $('#search')[0].value != '' && $('#search-label').hide() }, 100)
33
+ }
34
+ $(function() {
35
+ placeholder();
36
+ new Searchdoc.Panel($('#panel'), search_data, tree, top.frames[1]);
37
+ $('#search').focus();
38
+ })
39
+ //]]>
40
+ </script>
41
+ </head>
42
+ <body>
43
+ <div class="panel panel_tree" id="panel">
44
+ <div class="header">
45
+ <div>
46
+ <label for="search" id="search-label" style="display: none">Search</label>
47
+ <table>
48
+ <tr><td>
49
+ <input type="Search" placeholder="Search" autosave="searchdoc" results="10" id="search" autocomplete="off"/>
50
+ </td></tr>
51
+ </table></div>
52
+ </div>
53
+ <div class="tree">
54
+ <ul>
55
+ </ul>
56
+ </div>
57
+ <div class="result">
58
+ <ul>
59
+ </ul>
60
+ </div>
61
+ </div>
62
+ </body>
63
+ </html>
@@ -0,0 +1 @@
1
+ var search_data = {"index":{"info":[["IO","lib\/rumai\/ixp\/message.rb","classes\/IO.html"," < Object","",1],["Integer","lib\/rumai\/ixp\/message.rb","classes\/Integer.html"," < Object","",1],["Rumai","lib\/rumai\/ixp\/message.rb","classes\/Rumai.html","","Primitives for the 9P2000 protocol. See http:\/\/cm.bell-labs.com\/sys\/man\/5\/INDEX.html See http:\/\/swtch.com\/plan9port\/man\/man9\/",1],["Area","Rumai","classes\/Rumai\/Area.html"," < Object","A region that contains clients. This can be either the floating area or a column in the managed area.",1],["Chain","Rumai","classes\/Rumai\/Chain.html","","NOTE: Inheritors must override the 'chain' method. ",1],["Client","Rumai","classes\/Rumai\/Client.html"," < WidgetNode","A graphical program that is running in your current X Windows session. ",1],["ClientContainer","Rumai","classes\/Rumai\/ClientContainer.html","","NOTE: Inheritors should override the 'client_ids' method. ",1],["ExportInstanceMethods","Rumai","classes\/Rumai\/ExportInstanceMethods.html","","Makes instance methods accessible through class methods. This is done to emulate the File class: File.exist?",1],["IXP","Rumai","classes\/Rumai\/IXP.html","","",1],["Agent","Rumai::IXP","classes\/Rumai\/IXP\/Agent.html"," < Object","A thread-safe proxy that multiplexes many threads onto a single 9P2000 connection. ",1],["FidStream","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent\/FidStream.html"," < Object","Encapsulates I\/O access over a file handle (fid). NOTE: this class is NOT thread-safe. ",1],["MODES","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent\/MODES.html","","",1],["RangedPool","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent\/RangedPool.html"," < Object","A finite, thread-safe pool of range members. ",1],["Error","Rumai::IXP","classes\/Rumai\/IXP\/Error.html"," < StandardError","A common container for exceptions concerning IXP. ",1],["Fcall","Rumai::IXP","classes\/Rumai\/IXP\/Fcall.html"," < Object","A remote function call (fcall). ",1],["Qid","Rumai::IXP","classes\/Rumai\/IXP\/Qid.html"," < Object","Holds information about a file being accessed on a 9P2000 server. See http:\/\/cm.bell-labs.com\/magic\/man2html\/5\/intro",1],["Rattach","Rumai::IXP","classes\/Rumai\/IXP\/Rattach.html"," < Fcall","size[4] Rattach tag[2] qid[13] ",1],["Rauth","Rumai::IXP","classes\/Rumai\/IXP\/Rauth.html"," < Fcall","size[4] Rauth tag[2] aqid[13] ",1],["Rclunk","Rumai::IXP","classes\/Rumai\/IXP\/Rclunk.html"," < Fcall","size[4] Rclunk tag[2] ",1],["Rcreate","Rumai::IXP","classes\/Rumai\/IXP\/Rcreate.html"," < Fcall","size[4] Rcreate tag[2] qid[13] iounit[4] ",1],["Rerror","Rumai::IXP","classes\/Rumai\/IXP\/Rerror.html"," < Fcall","size[4] Rerror tag[2] ename[s] ",1],["Rflush","Rumai::IXP","classes\/Rumai\/IXP\/Rflush.html"," < Fcall","size[4] Rflush tag[2] ",1],["Ropen","Rumai::IXP","classes\/Rumai\/IXP\/Ropen.html"," < Fcall","size[4] Ropen tag[2] qid[13] iounit[4] ",1],["Rread","Rumai::IXP","classes\/Rumai\/IXP\/Rread.html"," < Fcall","size[4] Rread tag[2] count[4] data[count] ",1],["Rremove","Rumai::IXP","classes\/Rumai\/IXP\/Rremove.html"," < Fcall","size[4] Rremove tag[2] ",1],["Rstat","Rumai::IXP","classes\/Rumai\/IXP\/Rstat.html"," < Fcall","size[4] Rstat tag[2] stat[n] ",1],["Rversion","Rumai::IXP","classes\/Rumai\/IXP\/Rversion.html"," < Fcall","size[4] Rversion tag[2] msize[4] version[s] ",1],["Rwalk","Rumai::IXP","classes\/Rumai\/IXP\/Rwalk.html"," < Fcall","size[4] Rwalk tag[2] nwqid[2] nwqid*(wqid[13]) ",1],["Rwrite","Rumai::IXP","classes\/Rumai\/IXP\/Rwrite.html"," < Fcall","size[4] Rwrite tag[2] count[4] ",1],["Rwstat","Rumai::IXP","classes\/Rumai\/IXP\/Rwstat.html"," < Fcall","size[4] Rwstat tag[2] ",1],["Stat","Rumai::IXP","classes\/Rumai\/IXP\/Stat.html"," < Object","Holds information about a file on a 9P2000 server. See http:\/\/cm.bell-labs.com\/magic\/man2html\/5\/stat",1],["Stream","Rumai::IXP","classes\/Rumai\/IXP\/Stream.html","","A 9P2000 byte stream. ",1],["Struct","Rumai::IXP","classes\/Rumai\/IXP\/Struct.html","","A serializable 9P2000 data structure. ",1],["Field","Rumai::IXP::Struct","classes\/Rumai\/IXP\/Struct\/Field.html"," < Object","A field inside a Struct. A field's value is considered to be either: * array of format when <code>counter",1],["CounteeField","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field\/CounteeField.html","","Methods for a field whose length is counted by another field. ",1],["CounterField","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field\/CounterField.html","","Methods for a field that counts the length of another field. ",1],["Tattach","Rumai::IXP","classes\/Rumai\/IXP\/Tattach.html"," < Fcall","size[4] Tattach tag[2] fid[4] afid[4] uname[s] aname[s] ",1],["Tauth","Rumai::IXP","classes\/Rumai\/IXP\/Tauth.html"," < Fcall","size[4] Tauth tag[2] afid[4] uname[s] aname[s] ",1],["Tclunk","Rumai::IXP","classes\/Rumai\/IXP\/Tclunk.html"," < Fcall","size[4] Tclunk tag[2] fid[4] ",1],["Tcreate","Rumai::IXP","classes\/Rumai\/IXP\/Tcreate.html"," < Fcall","size[4] Tcreate tag[2] fid[4] name[s] perm[4] mode[1] ",1],["Terror","Rumai::IXP","classes\/Rumai\/IXP\/Terror.html"," < Fcall","illegal ",1],["Tflush","Rumai::IXP","classes\/Rumai\/IXP\/Tflush.html"," < Fcall","size[4] Tflush tag[2] oldtag[2] ",1],["Topen","Rumai::IXP","classes\/Rumai\/IXP\/Topen.html"," < Fcall","size[4] Topen tag[2] fid[4] mode[1] ",1],["Tread","Rumai::IXP","classes\/Rumai\/IXP\/Tread.html"," < Fcall","size[4] Tread tag[2] fid[4] offset[8] count[4] ",1],["Tremove","Rumai::IXP","classes\/Rumai\/IXP\/Tremove.html"," < Fcall","size[4] Tremove tag[2] fid[4] ",1],["Tstat","Rumai::IXP","classes\/Rumai\/IXP\/Tstat.html"," < Fcall","size[4] Tstat tag[2] fid[4] ",1],["Tversion","Rumai::IXP","classes\/Rumai\/IXP\/Tversion.html"," < Fcall","size[4] Tversion tag[2] msize[4] version[s] ",1],["Twalk","Rumai::IXP","classes\/Rumai\/IXP\/Twalk.html"," < Fcall","size[4] Twalk tag[2] fid[4] newfid[4] nwname[2] nwname*(wname[s]) ",1],["Twrite","Rumai::IXP","classes\/Rumai\/IXP\/Twrite.html"," < Fcall","size[4] Twrite tag[2] fid[4] offset[8] count[4] data[count] ",1],["Twstat","Rumai::IXP","classes\/Rumai\/IXP\/Twstat.html"," < Fcall","size[4] Twstat tag[2] fid[4] stat[n] ",1],["Node","Rumai","classes\/Rumai\/Node.html"," < Object","An entry in the IXP file system. ",1],["View","Rumai","classes\/Rumai\/View.html"," < WidgetNode","The visualization of a tag. ",1],["String","lib\/rumai\/ixp\/message.rb","classes\/String.html"," < Object","count[2] s[count] ",1],["StringIO","lib\/rumai\/ixp\/message.rb","classes\/StringIO.html"," < Object","",1],["Time","lib\/rumai\/ixp\/message.rb","classes\/Time.html"," < Object","",1],["<<","Rumai::Area","classes\/Rumai\/Area.html#M000075","(*clients)","Alias for #push",2],["<<","Rumai::IXP::Agent::FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html#M000083","(content)","Alias for #write",2],["[]","Rumai::Node","classes\/Rumai\/Node.html#M000014","(sub_path)","Returns the given sub-path as a Node object. ",2],["__from_9p__","Rumai::IXP::Fcall","classes\/Rumai\/IXP\/Fcall.html#M000150","(stream)","Alias for #from_9p",2],["area","Rumai::Client","classes\/Rumai\/Client.html#M000037","(view = View.curr)","Returns the area that contains this client within the given view. ",2],["area_ids","Rumai::View","classes\/Rumai\/View.html#M000099","()","Returns the IDs of all areas in this view. ",2],["area_of_client","Rumai::View","classes\/Rumai\/View.html#M000096","(client_or_id)","Returns the area which contains the given client in this view. ",2],["areas","Rumai::View","classes\/Rumai\/View.html#M000101","()","Returns all areas in this view. ",2],["arrange_as_larswm","Rumai::View","classes\/Rumai\/View.html#M000109","()","Arranges the clients in this view, while maintaining their relative order, in the tiling fashion of LarsWM.",2],["arrange_in_diamond","Rumai::View","classes\/Rumai\/View.html#M000113","()","Arranges the clients in this view, while maintaining their relative order, in a (at best) equilateral",2],["arrange_in_grid","Rumai::View","classes\/Rumai\/View.html#M000111","(max_clients_per_column = nil)","Arranges the clients in this view, while maintaining their relative order, in a (at best) square grid.",2],["attach","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000108","(root_fid, auth_fid = Fcall::NOFID, auth_name = ENV['USER'])","Associates the given FID with the FS root. ",2],["chain","Rumai::Area","classes\/Rumai\/Area.html#M000063","()","Returns a list of all areas in the current view. ",2],["chain","Rumai::Chain","classes\/Rumai\/Chain.html#M000024","()","Returns an array of objects related to this one. ",2],["chain","Rumai::Client","classes\/Rumai\/Client.html#M000032","()","Returns a list of all clients in the current view. ",2],["chain","Rumai::View","classes\/Rumai\/View.html#M000090","()","Returns a list of all views. ",2],["children","Rumai::Node","classes\/Rumai\/Node.html#M000019","()","Returns all child nodes of this node. ",2],["clear","Rumai::Node","classes\/Rumai\/Node.html#M000023","()","Deletes all child nodes. ",2],["client_ids","Rumai","classes\/Rumai.html#M000015","()","Returns the IDs of the current set of clients. ",2],["client_ids","Rumai::Area","classes\/Rumai\/Area.html#M000065","()","Returns the IDs of the clients in this area. ",2],["client_ids","Rumai::ClientContainer","classes\/Rumai\/ClientContainer.html#M000053","()","Returns the IDs of the clients in this container. ",2],["client_ids","Rumai::View","classes\/Rumai\/View.html#M000092","(area_id = '\\S+')","Returns the IDs of the clients contained in the given area within this view. ",2],["clients","Rumai::ClientContainer","classes\/Rumai\/ClientContainer.html#M000054","()","Returns the clients contained in this container. ",2],["close","Rumai::IXP::Agent::FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html#M000073","()","Closes this stream. ",2],["closed?","Rumai::IXP::Agent::FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html#M000074","()","Returns true if this stream is closed. ",2],["clunk","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000110","(fid)","Retires the given FID from use. ",2],["column?","Rumai::Area","classes\/Rumai\/Area.html#M000060","()","Checks if this is a managed area (a column). ",2],["columns","Rumai::View","classes\/Rumai\/View.html#M000105","()","Returns all columns (managed areas) in this view. ",2],["concat","Rumai::Area","classes\/Rumai\/Area.html#M000079","(area)","Concatenates the given area to the bottom of this area. ",2],["countee=","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field.html#M000138","(field)","Sets the countee for this field (implying that this field counts the length of the given field). ",2],["counter=","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field.html#M000137","(field)","Sets the counter for this field (implying that the length of this field is counted by the given field).",2],["create","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000091","(path, mode = 'rw', perm = 0644)","Creates a new file at the given path that is accessible using the given modes for a user having the given",2],["create","Rumai::Node","classes\/Rumai\/Node.html#M000011","(*args)","Creates a file corresponding to this node on the IXP server. See Rumai::IXP::Client#create for details.",2],["curr","Rumai::Area","classes\/Rumai\/Area.html#M000061","()","Returns the currently focused area. ",2],["curr","Rumai::Client","classes\/Rumai\/Client.html#M000031","()","Returns the currently focused client. ",2],["curr","Rumai::View","classes\/Rumai\/View.html#M000087","()","Returns the currently focused view. ",2],["curr_area","Rumai","classes\/Rumai.html#M000119","()","",2],["curr_client","Rumai","classes\/Rumai.html#M000116","()","",2],["curr_tag","Rumai","classes\/Rumai.html#M000016","()","Returns the name of the currently focused tag. ",2],["curr_view","Rumai","classes\/Rumai.html#M000122","()","",2],["directory?","Rumai::IXP::Stat","classes\/Rumai\/IXP\/Stat.html#M000147","()","Tests if this file is a directory. ",2],["directory?","Rumai::Node","classes\/Rumai\/Node.html#M000003","()","Tests if this node is a directory. ",2],["each","Rumai::Area","classes\/Rumai\/Area.html#M000066","(&block)","Iterates through each client in this container. ",2],["each","Rumai::Node","classes\/Rumai\/Node.html#M000022","(&block)","Iterates through each child of this directory. ",2],["each","Rumai::View","classes\/Rumai\/View.html#M000093","(&block)","Iterates through each area in this view. ",2],["each_column","Rumai::View","classes\/Rumai\/View.html#M000106","(starting_column_id = 1)","Resiliently iterates through possibly destructive changes to each column. That is, if the given block",2],["each_line","Rumai::Node","classes\/Rumai\/Node.html#M000007","(&block)","Invokes the given block for every line in the content of this node. ",2],["entries","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000086","(path)","Returns the names of all files inside the directory whose path is given. ",2],["entries","Rumai::Node","classes\/Rumai\/Node.html#M000004","()","Returns the names of all files in this directory. ",2],["exist?","Rumai::Area","classes\/Rumai\/Area.html#M000064","()","Checks if this object exists in the chain. ",2],["exist?","Rumai::Node","classes\/Rumai\/Node.html#M000002","()","Tests if this node exists on the IXP server. ",2],["factory","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field.html#M000139","(format)","Returns a Field class that best represents the given format. ",2],["float?","Rumai::Area","classes\/Rumai\/Area.html#M000059","()","Checks if this area is the floating area. ",2],["floater","Rumai::View","classes\/Rumai\/View.html#M000102","()","Returns the floating area of this view. ",2],["focus","Rumai::Area","classes\/Rumai\/Area.html#M000068","()","Puts focus on this area. ",2],["focus","Rumai::Client","classes\/Rumai\/Client.html#M000033","(view = nil)","Focuses this client within the given view. ",2],["focus","Rumai::View","classes\/Rumai\/View.html#M000088","()","Focuses this view. ",2],["focus_area","Rumai","classes\/Rumai.html#M000127","(id)","",2],["focus_client","Rumai","classes\/Rumai.html#M000126","(id)","",2],["focus_view","Rumai","classes\/Rumai.html#M000128","(id)","",2],["from_9p","Rumai::IXP::Fcall","classes\/Rumai\/IXP\/Fcall.html#M000149","(stream)","Creates a new instance of this class from the given 9P2000 byte stream and returns the instance. ",2],["from_9p","String","classes\/String.html#M000156","(stream)","Creates a new instance of this class from the given 9P2000 byte stream and returns the instance. ",2],["from_9p","Time","classes\/Time.html#M000158","(stream)","Creates a new instance of this class from the given 9P2000 byte stream and returns the instance. ",2],["fs","Rumai","classes\/Rumai.html#M000008","()","Returns the root of IXP file system hierarchy. ",2],["group","Rumai::Client","classes\/Rumai\/Client.html#M000047","()","Adds this client to the current grouping. ",2],["group?","Rumai::Client","classes\/Rumai\/Client.html#M000046","()","Checks if this client is included in the current grouping. ",2],["grouping","Rumai","classes\/Rumai.html#M000021","()","Returns a list of all grouped clients in the currently focused view. If there are no grouped clients,",2],["grouping","Rumai::ClientContainer","classes\/Rumai\/ClientContainer.html#M000056","()","Returns all grouped clients in this container. ",2],["included","Rumai::IXP::Struct","classes\/Rumai\/IXP\/Struct.html#M000132","(target)","Provides a convenient DSL (for defining fields) to all objects which *include* this module. ",2],["insert","Rumai::Area","classes\/Rumai\/Area.html#M000076","(*clients)","Inserts the given clients after the currently focused client in this area. ",2],["kill","Rumai::Client","classes\/Rumai\/Client.html#M000036","()","Terminates this client nicely (requests this window to be closed). ",2],["layout=","Rumai::Area","classes\/Rumai\/Area.html#M000067","(mode)","Sets the layout of clients in this column. ",2],["length","Rumai::Area","classes\/Rumai\/Area.html#M000070","()","Returns the number of clients in this area. ",2],["length=","Rumai::Area","classes\/Rumai\/Area.html#M000080","(max_clients)","Ensures that this area has at most the given number of clients. Areas to the right of this one serve",2],["load_9p","Rumai::IXP::Struct","classes\/Rumai\/IXP\/Struct.html#M000131","(stream)","Populates this object with information from the given 9P2000 byte stream. ",2],["load_9p","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field.html#M000141","(stream, field_values)","Populates this object with information taken from the given 9P2000 byte stream. ",2],["load_9p","Rumai::IXP::Struct::Field::CounteeField","classes\/Rumai\/IXP\/Struct\/Field\/CounteeField.html#M000146","(stream, field_values)","",2],["manifest","Rumai::View","classes\/Rumai\/View.html#M000095","()","Returns the manifest of all areas and clients in this view. ",2],["method_missing","Rumai::Node","classes\/Rumai\/Node.html#M000025","(meth, *args)","Provides access to child nodes through method calls. ",2],["new","Rumai::Area","classes\/Rumai\/Area.html#M000058","(area_id, view = View.curr)","[view] the view object which contains this area ",2],["new","Rumai::Client","classes\/Rumai\/Client.html#M000030","(client_id)","",2],["new","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000038","(stream)","",2],["new","Rumai::IXP::Agent::FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html#M000069","(agent, path_fid, message_size)","",2],["new","Rumai::IXP::Agent::RangedPool","classes\/Rumai\/IXP\/Agent\/RangedPool.html#M000045","(range)","",2],["new","Rumai::IXP::Struct","classes\/Rumai\/IXP\/Struct.html#M000129","(field_values = {})","Allows field values to be initialized via the constructor. [field_values] a mapping from field name to",2],["new","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field.html#M000136","(name, format = nil, counter = nil)","[name] unique (among all fields in a struct) name for the field [format] number of bytes, a class, or",2],["new","Rumai::Node","classes\/Rumai\/Node.html#M000000","(path)","",2],["new","Rumai::View","classes\/Rumai\/View.html#M000094","(view_id)","",2],["next","Rumai::Chain","classes\/Rumai\/Chain.html#M000026","()","Returns the object after this one in the chain. ",2],["next_area","Rumai","classes\/Rumai.html#M000120","()","",2],["next_client","Rumai","classes\/Rumai.html#M000117","()","",2],["next_tag","Rumai","classes\/Rumai.html#M000017","()","Returns the name of the next tag. ",2],["next_view","Rumai","classes\/Rumai.html#M000123","()","",2],["obtain","Rumai::IXP::Agent::RangedPool","classes\/Rumai\/IXP\/Agent\/RangedPool.html#M000048","()","Returns an unoccupied range member from the pool. ",2],["open","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000062","(path, mode = 'r')","Opens the given path for I\/O access through a FidStream object. If a block is given, it is invoked with",2],["open","Rumai::Node","classes\/Rumai\/Node.html#M000005","(mode = 'r', &block)","Opens this node for I\/O access. See Rumai::IXP::Client#open for details. ",2],["parent","Rumai::Node","classes\/Rumai\/Node.html#M000018","()","Returns the parent node of this node. ",2],["parse","Rumai::IXP::Agent::MODES","classes\/Rumai\/IXP\/Agent\/MODES.html#M000057","(mode)","Converts the given mode string into an integer. ",2],["prev","Rumai::Chain","classes\/Rumai\/Chain.html#M000027","()","Returns the object before this one in the chain. ",2],["prev_area","Rumai","classes\/Rumai.html#M000121","()","",2],["prev_client","Rumai","classes\/Rumai.html#M000118","()","",2],["prev_tag","Rumai","classes\/Rumai.html#M000020","()","Returns the name of the previous tag. ",2],["prev_view","Rumai","classes\/Rumai.html#M000125","()","",2],["push","Rumai::Area","classes\/Rumai\/Area.html#M000071","(*clients)","Inserts the given clients at the bottom of this area. ",2],["read","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000085","(path, *args)","Returns the content of the file\/directory at the given path. ",2],["read","Rumai::IXP::Agent::FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html#M000077","(partial = false)","Reads some data from this stream at the current position. [partial] When false, the entire content of",2],["read","Rumai::Node","classes\/Rumai\/Node.html#M000006","(*args)","Returns the entire content of this node. See Rumai::IXP::Client#read for details. ",2],["read_9p","Rumai::IXP::Stream","classes\/Rumai\/IXP\/Stream.html#M000124","(num_bytes)","Unpacks the given number of bytes from this 9P2000 byte stream. ",2],["release","Rumai::IXP::Agent::RangedPool","classes\/Rumai\/IXP\/Agent\/RangedPool.html#M000052","(member)","Marks the given member as being unoccupied so that it may be occupied again in the future. ",2],["remove","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000097","(path)","Deletes the file at the given path. ",2],["remove","Rumai::Node","classes\/Rumai\/Node.html#M000013","()","Deletes the file corresponding to this node on the IXP server. ",2],["remove_fid","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000098","(path_fid)","Deletes the file corresponding to the given FID and clunks the given FID. ",2],["rewind","Rumai::IXP::Agent::FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html#M000072","()","Rewinds the stream to the beginning. ",2],["send","Rumai::Client","classes\/Rumai\/Client.html#M000034","(area_or_id, view = View.curr)","Sends this client to the given destination within the given view. ",2],["stat","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000100","(path)","Returns information about the file at the given path. ",2],["stat","Rumai::Node","classes\/Rumai\/Node.html#M000001","()","Returns file statistics about this node. See Rumai::IXP::Client#stat for details. ",2],["stat_fid","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000103","(path_fid)","Returns information about the file referenced by the given FID. ",2],["swap","Rumai::Client","classes\/Rumai\/Client.html#M000035","(area_or_id, view = View.curr)","Swaps this client with the given destination within the given view. ",2],["tag","Rumai::Client","classes\/Rumai\/Client.html#M000043","(*tags)","Adds the given tags to this client. ",2],["tags","Rumai","classes\/Rumai.html#M000009","()","Returns the current set of tags. ",2],["tags","Rumai::Client","classes\/Rumai\/Client.html#M000040","()","Returns the tags associated with this client. ",2],["tags=","Rumai::Client","classes\/Rumai\/Client.html#M000041","(*tags)","Modifies the tags associated with this client. ",2],["talk","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000055","(request)","Sends the given message (Rumai::IXP::Fcall) and returns its response. This method allows you to perform",2],["to_9p","Integer","classes\/Integer.html#M000154","(num_bytes)","Transforms this object into a string of 9P2000 bytes. ",2],["to_9p","Rumai::IXP::Fcall","classes\/Rumai\/IXP\/Fcall.html#M000148","()","Transforms this object into a string of 9P2000 bytes. ",2],["to_9p","Rumai::IXP::Struct","classes\/Rumai\/IXP\/Struct.html#M000130","()","Transforms this object into a string of 9P2000 bytes. ",2],["to_9p","Rumai::IXP::Struct::Field","classes\/Rumai\/IXP\/Struct\/Field.html#M000140","(field_values)","Transforms this object into a string of 9P2000 bytes. ",2],["to_9p","Rumai::IXP::Struct::Field::CounteeField","classes\/Rumai\/IXP\/Struct\/Field\/CounteeField.html#M000145","(field_values)","",2],["to_9p","Rumai::IXP::Struct::Field::CounterField","classes\/Rumai\/IXP\/Struct\/Field\/CounterField.html#M000144","(field_values)","",2],["to_9p","Rumai::IXP::Terror","classes\/Rumai\/IXP\/Terror.html#M000151","()","",2],["to_9p","String","classes\/String.html#M000155","()","Transforms this object into a string of 9P2000 bytes. ",2],["to_9p","Time","classes\/Time.html#M000157","()","Transforms this object into a string of 9P2000 bytes. ",2],["toggle_group","Rumai::Client","classes\/Rumai\/Client.html#M000050","()","Toggles the presence of this client in the current grouping. ",2],["type","Rumai::IXP::Fcall","classes\/Rumai\/IXP\/Fcall.html#M000153","()","Returns the value of the 'type' field for this fcall. ",2],["type","Rumai::IXP::Fcall","classes\/Rumai\/IXP\/Fcall.html#M000152","()","Returns the value of the 'type' field for this fcall. ",2],["ungroup","Rumai::Client","classes\/Rumai\/Client.html#M000049","()","Removes this client to the current grouping. ",2],["unshift","Rumai::Area","classes\/Rumai\/Area.html#M000078","(*clients)","Inserts the given clients at the top of this area. ",2],["untag","Rumai::Client","classes\/Rumai\/Client.html#M000044","(*tags)","Removes the given tags from this client. ",2],["views","Rumai","classes\/Rumai.html#M000012","()","Returns the current set of views. ",2],["views","Rumai::Client","classes\/Rumai\/Client.html#M000039","()","Returns the views that contain this client. ",2],["walk","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000104","(path)","Returns an FID corresponding to the given path. ",2],["walk_fid","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000107","(path_fid, path)","Associates the given FID to the given path. ",2],["with_tags","Rumai::Client","classes\/Rumai\/Client.html#M000042","(&block)","Evaluates the given block within the context of this client's list of tags. ",2],["write","Rumai::IXP::Agent","classes\/Rumai\/IXP\/Agent.html#M000089","(path, content)","Returns the content of the file\/directory at the given path. ",2],["write","Rumai::IXP::Agent::FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html#M000081","(content)","Writes the given content at the current position in this stream. ",2],["write","Rumai::Node","classes\/Rumai\/Node.html#M000010","(content)","Writes the given content to this node. ",2],["CREDITS","files\/CREDITS.html","files\/CREDITS.html","","* Michael Andrus * [Simon Hafner](http:\/\/github.com\/Tass) ",3],["LICENSE","files\/LICENSE.html","files\/LICENSE.html","","(the ISC license) Copyright 2006 Suraj N. Kurapati <sunaku@gmail.com> Permission to use, copy, modify,",3],["rumai.rb","files\/lib\/rumai_rb.html","files\/lib\/rumai_rb.html",""," ",3],["fs.rb","files\/lib\/rumai\/fs_rb.html","files\/lib\/rumai\/fs_rb.html","","File system abstractions over the 9P2000 protocol. ",3],["ixp.rb","files\/lib\/rumai\/ixp_rb.html","files\/lib\/rumai\/ixp_rb.html","","An interface to wmii's IXP library for Rumai. ",3],["message.rb","files\/lib\/rumai\/ixp\/message_rb.html","files\/lib\/rumai\/ixp\/message_rb.html","","Primitives for the 9P2000 protocol. See http:\/\/cm.bell-labs.com\/sys\/man\/5\/INDEX.html See http:\/\/swtch.com\/plan9port\/man\/man9\/",3],["transport.rb","files\/lib\/rumai\/ixp\/transport_rb.html","files\/lib\/rumai\/ixp\/transport_rb.html","","Transport layer for 9P2000 protocol. ",3],["wm.rb","files\/lib\/rumai\/wm_rb.html","files\/lib\/rumai\/wm_rb.html","","Abstractions for the window manager. ",3]],"searchIndex":["io","integer","rumai","area","chain","client","clientcontainer","exportinstancemethods","ixp","agent","fidstream","modes","rangedpool","error","fcall","qid","rattach","rauth","rclunk","rcreate","rerror","rflush","ropen","rread","rremove","rstat","rversion","rwalk","rwrite","rwstat","stat","stream","struct","field","counteefield","counterfield","tattach","tauth","tclunk","tcreate","terror","tflush","topen","tread","tremove","tstat","tversion","twalk","twrite","twstat","node","view","string","stringio","time","<<()","<<()","[]()","__from_9p__()","area()","area_ids()","area_of_client()","areas()","arrange_as_larswm()","arrange_in_diamond()","arrange_in_grid()","attach()","chain()","chain()","chain()","chain()","children()","clear()","client_ids()","client_ids()","client_ids()","client_ids()","clients()","close()","closed?()","clunk()","column?()","columns()","concat()","countee=()","counter=()","create()","create()","curr()","curr()","curr()","curr_area()","curr_client()","curr_tag()","curr_view()","directory?()","directory?()","each()","each()","each()","each_column()","each_line()","entries()","entries()","exist?()","exist?()","factory()","float?()","floater()","focus()","focus()","focus()","focus_area()","focus_client()","focus_view()","from_9p()","from_9p()","from_9p()","fs()","group()","group?()","grouping()","grouping()","included()","insert()","kill()","layout=()","length()","length=()","load_9p()","load_9p()","load_9p()","manifest()","method_missing()","new()","new()","new()","new()","new()","new()","new()","new()","new()","next()","next_area()","next_client()","next_tag()","next_view()","obtain()","open()","open()","parent()","parse()","prev()","prev_area()","prev_client()","prev_tag()","prev_view()","push()","read()","read()","read()","read_9p()","release()","remove()","remove()","remove_fid()","rewind()","send()","stat()","stat()","stat_fid()","swap()","tag()","tags()","tags()","tags=()","talk()","to_9p()","to_9p()","to_9p()","to_9p()","to_9p()","to_9p()","to_9p()","to_9p()","to_9p()","toggle_group()","type()","type()","ungroup()","unshift()","untag()","views()","views()","walk()","walk_fid()","with_tags()","write()","write()","write()","credits","license","rumai.rb","fs.rb","ixp.rb","message.rb","transport.rb","wm.rb"],"longSearchIndex":["message.rb","message.rb","message.rb","rumai","rumai","rumai","rumai","rumai","rumai","ixp","agent","agent","agent","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","struct","field","field","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","ixp","rumai","rumai","message.rb","message.rb","message.rb","area","fidstream","node","fcall","client","view","view","view","view","view","view","agent","area","chain","client","view","node","node","rumai","area","clientcontainer","view","clientcontainer","fidstream","fidstream","agent","area","view","area","field","field","agent","node","area","client","view","rumai","rumai","rumai","rumai","stat","node","area","node","view","view","node","agent","node","area","node","field","area","view","area","client","view","rumai","rumai","rumai","fcall","string","time","rumai","client","client","rumai","clientcontainer","struct","area","client","area","area","area","struct","field","counteefield","view","node","area","client","agent","fidstream","rangedpool","struct","field","node","view","chain","rumai","rumai","rumai","rumai","rangedpool","agent","node","node","modes","chain","rumai","rumai","rumai","rumai","area","agent","fidstream","node","stream","rangedpool","agent","node","agent","fidstream","client","agent","node","agent","client","client","rumai","client","client","agent","integer","fcall","struct","field","counteefield","counterfield","terror","string","time","client","fcall","fcall","client","area","client","rumai","client","agent","agent","client","agent","fidstream","node","files\/credits.html","files\/license.html","files\/lib\/rumai_rb.html","files\/lib\/rumai\/fs_rb.html","files\/lib\/rumai\/ixp_rb.html","files\/lib\/rumai\/ixp\/message_rb.html","files\/lib\/rumai\/ixp\/transport_rb.html","files\/lib\/rumai\/wm_rb.html"]}}
@@ -0,0 +1 @@
1
+ var tree = [["IO","classes\/IO.html"," < Object",[]],["Integer","classes\/Integer.html"," < Object",[]],["Rumai","classes\/Rumai.html","",[["Area","classes\/Rumai\/Area.html"," < Object",[]],["Chain","classes\/Rumai\/Chain.html","",[]],["Client","classes\/Rumai\/Client.html"," < WidgetNode",[]],["ClientContainer","classes\/Rumai\/ClientContainer.html","",[]],["ExportInstanceMethods","classes\/Rumai\/ExportInstanceMethods.html","",[]],["IXP","classes\/Rumai\/IXP.html","",[["Agent","classes\/Rumai\/IXP\/Agent.html"," < Object",[["FidStream","classes\/Rumai\/IXP\/Agent\/FidStream.html"," < Object",[]],["MODES","classes\/Rumai\/IXP\/Agent\/MODES.html","",[]],["RangedPool","classes\/Rumai\/IXP\/Agent\/RangedPool.html"," < Object",[]]]],["Error","classes\/Rumai\/IXP\/Error.html"," < StandardError",[]],["Fcall","classes\/Rumai\/IXP\/Fcall.html"," < Object",[]],["Qid","classes\/Rumai\/IXP\/Qid.html"," < Object",[]],["Rattach","classes\/Rumai\/IXP\/Rattach.html"," < Fcall",[]],["Rauth","classes\/Rumai\/IXP\/Rauth.html"," < Fcall",[]],["Rclunk","classes\/Rumai\/IXP\/Rclunk.html"," < Fcall",[]],["Rcreate","classes\/Rumai\/IXP\/Rcreate.html"," < Fcall",[]],["Rerror","classes\/Rumai\/IXP\/Rerror.html"," < Fcall",[]],["Rflush","classes\/Rumai\/IXP\/Rflush.html"," < Fcall",[]],["Ropen","classes\/Rumai\/IXP\/Ropen.html"," < Fcall",[]],["Rread","classes\/Rumai\/IXP\/Rread.html"," < Fcall",[]],["Rremove","classes\/Rumai\/IXP\/Rremove.html"," < Fcall",[]],["Rstat","classes\/Rumai\/IXP\/Rstat.html"," < Fcall",[]],["Rversion","classes\/Rumai\/IXP\/Rversion.html"," < Fcall",[]],["Rwalk","classes\/Rumai\/IXP\/Rwalk.html"," < Fcall",[]],["Rwrite","classes\/Rumai\/IXP\/Rwrite.html"," < Fcall",[]],["Rwstat","classes\/Rumai\/IXP\/Rwstat.html"," < Fcall",[]],["Stat","classes\/Rumai\/IXP\/Stat.html"," < Object",[]],["Stream","classes\/Rumai\/IXP\/Stream.html","",[]],["Struct","classes\/Rumai\/IXP\/Struct.html","",[["Field","classes\/Rumai\/IXP\/Struct\/Field.html"," < Object",[["CounteeField","classes\/Rumai\/IXP\/Struct\/Field\/CounteeField.html","",[]],["CounterField","classes\/Rumai\/IXP\/Struct\/Field\/CounterField.html","",[]]]]]],["Tattach","classes\/Rumai\/IXP\/Tattach.html"," < Fcall",[]],["Tauth","classes\/Rumai\/IXP\/Tauth.html"," < Fcall",[]],["Tclunk","classes\/Rumai\/IXP\/Tclunk.html"," < Fcall",[]],["Tcreate","classes\/Rumai\/IXP\/Tcreate.html"," < Fcall",[]],["Terror","classes\/Rumai\/IXP\/Terror.html"," < Fcall",[]],["Tflush","classes\/Rumai\/IXP\/Tflush.html"," < Fcall",[]],["Topen","classes\/Rumai\/IXP\/Topen.html"," < Fcall",[]],["Tread","classes\/Rumai\/IXP\/Tread.html"," < Fcall",[]],["Tremove","classes\/Rumai\/IXP\/Tremove.html"," < Fcall",[]],["Tstat","classes\/Rumai\/IXP\/Tstat.html"," < Fcall",[]],["Tversion","classes\/Rumai\/IXP\/Tversion.html"," < Fcall",[]],["Twalk","classes\/Rumai\/IXP\/Twalk.html"," < Fcall",[]],["Twrite","classes\/Rumai\/IXP\/Twrite.html"," < Fcall",[]],["Twstat","classes\/Rumai\/IXP\/Twstat.html"," < Fcall",[]]]],["Node","classes\/Rumai\/Node.html"," < Object",[]],["View","classes\/Rumai\/View.html"," < WidgetNode",[]]]],["String","classes\/String.html"," < Object",[]],["StringIO","classes\/StringIO.html"," < Object",[]],["Time","classes\/Time.html"," < Object",[]]]
@@ -1,27 +1,52 @@
1
- <% chapter "History" do %>
2
- <% project_history do %>
3
- <% section "Version 2.0.2 (2009-02-26)" do %>
1
+ %#--
2
+ %# Copyright 2008 Suraj N. Kurapati
3
+ %# See the LICENSE file for details.
4
+ %#++
5
+
6
+ %|chapter "History"
7
+ %|history
8
+ %|section "Version 2.1.0 (2009-05-09)"
9
+ This release improves client arrangement, fixes several bugs, and cleans up the code.
10
+
11
+ %|paragraph "Thank you"
12
+ * Simon Hafner reported several bugs.
13
+ * Michael Andrus verified bug fixes.
14
+
15
+ %|paragraph "New features"
16
+ * Focus is now restored on the initially focused client after applying <%= xref "Automated client arrangement" %>s.
17
+
18
+ * The push(), insert(), and unshift() instance methods of the `Rumai::Area` class now preserve the order of inserted clients.
19
+
20
+ * The `Rumai::View#arrange_in_grid()` method now accepts 1 as a parameter. This invocation causes every column to contain at most 1 client.
21
+
22
+ %|paragraph "Bug fixes"
23
+ * Fix error caused by focusing the top/bottom client in the destination area before sending new clients into that area.
24
+
25
+ * Fix error when importing clients into an empty area.
26
+
27
+ %|paragraph "Housekeeping"
28
+ * Use snake_case instead of camelCase for variable names.
29
+
30
+ * Add copyright notice at the top of every file.
31
+
32
+ * Plenty of code formatting and beautification.
33
+
34
+ %|section "Version 2.0.2 (2009-02-26)"
4
35
  This release fixes a connection bug.
5
36
 
6
- <% paragraph "Bug fixes" do %>
7
- * wmii omits the fractional portion of `$DISPLAY` in its socket file path. Rumai was trying to connect with the entire `$DISPLAY` value (including the fractional portion) and thus could not find wmii's socket file.
37
+ %|paragraph "Thank you"
38
+ * Simon Hafner reported and helped debug the `$DISPLAY` bug.
8
39
 
9
- Thanks to Simon Hafner for helping me debug this.
10
- <% end %>
11
- <% end %>
40
+ %|paragraph "Bug fixes"
41
+ * wmii omits the fractional portion of `$DISPLAY` in its socket file path. Rumai was trying to connect with the entire `$DISPLAY` value (including the fractional portion) and thus could not find wmii's socket file.
12
42
 
13
- <% section "Version 2.0.1 (2009-01-25)" do %>
43
+ %|section "Version 2.0.1 (2009-01-25)"
14
44
  This release simplifies project administrivia using [<%= Inochi::PROJECT %>](<%= Inochi::WEBSITE %>), improves the unit tests, and revises the user manual.
15
45
 
16
- <% paragraph "Bug fixes" do %>
46
+ %|paragraph "Bug fixes"
17
47
  * The <tt>lib/rumai/ixp/message.rb</tt> library's unit test would fail if <tt>/rbar/status</tt> did not already exist in wmii.
18
- <% end %>
19
48
 
20
- <% paragraph "Housekeeping" do %>
49
+ %|paragraph "Housekeeping"
21
50
  * Store IXP socket address in `Rumai::IXP_SOCK_ADDR`.
22
51
 
23
52
  * Added missing test cases for (TR)create and (TR)remove messages in the unit test for the <tt>lib/rumai/ixp/message.rb</tt> library.
24
- <% end %>
25
- <% end %>
26
- <% end %>
27
- <% end %>
@@ -1,13 +1,16 @@
1
- <%
2
- Inochi.book :Rumai, self
1
+ %#--
2
+ %# Copyright 2008 Suraj N. Kurapati
3
+ %# See the LICENSE file for details.
4
+ %#++
3
5
 
4
- ruby_url = 'http://ruby-lang.org'
5
- wmii_url = 'http://www.suckless.org/wiki/wmii'
6
- wmii_ixp_url = 'http://www.suckless.org/wiki/libs/libixp'
7
- p9p_url = 'http://cm.bell-labs.com/magic/man2html/5/intro'
8
- %>
6
+ % Inochi.book :Rumai, self
9
7
 
10
- <%# include intro.erb #%>
11
- <%# include setup.erb #%>
12
- <%# include usage.erb #%>
13
- <%# include history.erb #%>
8
+ % ruby_url = 'http://ruby-lang.org'
9
+ % wmii_url = 'http://www.suckless.org/wiki/wmii'
10
+ % wmii_ixp_url = 'http://www.suckless.org/wiki/libs/libixp'
11
+ % p9p_url = 'http://cm.bell-labs.com/magic/man2html/5/intro'
12
+
13
+ %+ "intro.erb"
14
+ %+ "setup.erb"
15
+ %+ "usage.erb"
16
+ %+ "history.erb"
@@ -1,610 +1,46 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
3
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
4
- <!ENTITY icon_caution "data:image/png;base64,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">
5
- <!ENTITY icon_tip "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAyOSURBVGiB1ZlrkB3Fdcf/5/Q87r1z7z7uvrSrXa3QC7EIyUFCSWwnJIANFiGJXdQSICRllGDni4LjqviDnQ+ufHEKx2BXygg9cEwVriBcMsZOHFlEWCo/glFhrAeSxe6ifWnvPu7evc+Z6Z6ezoe7S7aUQO1qF5N01anpmaqZ/v/6nNMzfYaMMfj/3Pj9FrDSZq3Wg4iIPvnIX+8G2fcS2R+BiTtMHGUBgNiaBfGkMeo4jPr2Nw589edmlVxPq/Gchx/5m1uJnWdT6aZMz+ZdXsfaXuF5KXipBAQDoQwR+D5yV0b14BuvVstz+bKJ5YNPH/jKyfcVYO/ez2ViQV9zk8l7b761P93a1oF8SWKm7KMaSgRSARQj5QpkkjZ6Wj30tnuYmp7F8RefrVbL1edZm32HD/9D+dcOsPeRz3wMZD/TtemW9I07b01MFBRGpipoyhAa04yGlECjJ5BwGLUwQiVQmJ4LMFUM0NfTgh3rszh58sfh+dOnyjDqzw4fePwHvzaAhz/92ftsJ3V4+4fv87zGdlwar8JLxtix0UM2YwEwMCYGMcWAMXE8f8kASsf4xeCMqYWab9veI6rlCr773D/XfL/08NP7//G59xzgk488eguR+/KuO//CC+IU8mWJD2xKYG2rM69Sg5g0DAwRYgMYoJ6yxhgYA4SRxqlzkzqUWuza3OG0p23+5pNPVI0Jf/8bB554dTl6lrWM7tu3zyVyv7d+58c9djLIFUL83o4M1rY6MEYDiGMmigiImBAxEDGRYpASzFIwSyZSjhDRTb3N2rbYf21wqmY7Tvw7d9+XInK+t2/fPvc9AygH9qNeS29mXe8GDOVq+OCNHlIJQhxrACYGjAYjYkAzkyImxYSImRUBigiKmSQTVFtjQids4duC/RNnRyu/u/MG07FuU6Yc2I++JwD9/V90mPgLfbfcmRqe8nF9t4uWRgs6jmBgYiJEND/7xKQIpJigBJEkMkrMe4JBipmkxayyDa50LAp0ZPyTb4zXHry/PyHY+kJ//xedVQfwGoq3NbX3xkakUKgodLfai2YeGoCuhw7Vw4ahBLGszzhLYpJCsGRBUjBLIUimXVs5tvBti/3R6XJZG9ab+7YZr6F426oDsO0+0LZuW2auGsFLxnAcQMcRANJEiJhYEUERkySGYqqHEJFRgiGZIJkQMkEKppAJUkZxxWEObIsD2+Lwrcmi/4GbdyXZth9YdQADfKi5pYuKVYmWRp6ffWgg1kSIQCYipohBiogWYl0K5lAwSUuQZKK6eCYZxybQ2lRsWwS2zaEtOBjLV8qb1/cQAR9cqq4lfwuR1m1uIoUwKkOQQGxiI5g0EUcEiogQzcd9RIBiQgQiTfXQqr8JBIwxBJiYQqVDx6aAYjIUsQGAmlTsJV0ycdy2VF1L8kB/f78gMp5hG0CE2WoNhLpwABEIEYEVs1FEJAWRIiJpEYUWc8jMoRAc2IICixGaGP5sReZsmwNHiMAWHNjMoS04jA1iwZTu7+8XqwZw5MgRHRsTCY5AHKEShFrHWhNBA0bDIALqHqgvlyQFkWRBITOFFiMgQkigEKBgphiMAKbqChHYdj3+LebQEiK0BCOOY33kyBG9agAAQGQVfL+KpEtgoujyVCUEEDEoYmYl3k5cSCEoZIGQASnIhIIptJgCFuSXamokMig4lvBtiwNbcGBZFNoWhdm0wxU/jEBcXKqupe8HmC+WSzMd6WQGJR9qYtb3u1o8ZDOuJsQRIBQR1VccQNbXf1JMFIGgZaQLs2U5o1SsHYutiIwmig3AgDYcW0a0N3n2bLEUgnh8ybKWDBAF3yrnBmtNKUcL4kgIigaulEpXZqolP4z9G9c1re9tTXWnHJEAQRJRoGNTVHGcmyvLC8WSHEQcV9akwts3NslPuRYHjuDQEhQKi6UlWGbTicTY6KihWL2w6gDKEi9Mjf4qziaNSbpWLIgiY4ycLgbFoVxpohqqCgkRrW3xNq/NJn/DFXGTDe0ZFTa5HHa3efrDG9qsvWtas31uwpu1hAhsiwNLCGkJlgnbitZmvc4zp19ho6NvrzrAM08+NqXC4DMXXv1RsLWzWRCTZqZICERCIHprovymiuLayTMT3xzP106lHCvdmLG3dDQld63Jenc0pJPX+YE8z0IMGTt53LI4FBZJS0BagmVfT8vWgYFBNTw6+tyhQ189t1Rdy9oTH3rqy4f2fvpv7990/cju69q7nemSr5k5YuJoPF+7srGzoSvtuTxZlueKfvRz1xK+Y1MgiBUxdCKZabFd975CoXzOYbKMERwLspqSdk9z0tnwT//yrYqR+OxyNC27KqHI3P+Tl/99LhEVM+taMykGacGkY4OgUAlGshm30WFSQpC0bAotQYHlkG8Ly29IJZuVil+3iSqWTaHFpFoyybbetoY79z+1P/arlQeXu71cNsAzTz42pf3ybx974Xk/EVfbmtNugpk0Mel8RY3ZZFLMpGzByiaWjuDQsThIuuzHMsjIOD4rLAotwdKxLNPZ6N375P798fDl0T89fOArLy1XzzXVhQ4e/NpYFNRu/8mJY4muZq9FEDQT6WIlmC3MzrgUKVcQKWGRFMSha7EfVqtObvKKkKEcFcRSCFYtDcntA0OD/uWRkS89ffCx716LlmsubB08+PiF3MTEf2q/mBVCMBEMk1D5QqkwV8hliVhbhMh2WDmCw6HBX7UX8rMjlu34FkGxYe0w73jp+Esp24ivX6uOFVXmlAyfGR8doUbPTVP9O81EhmeGBy+1MyM24FgwtBCWOnfm9U4IGnSEUUKwZmFiBrpzE7lzTz31pSW/ea9uK6rMCYhTA5cuJbfuuLljYLw0JaszbYh8PXz54gbvZ9V7PC+yTRxWpqcKswMD422t7cmhwC+ku9dv9710U28gQxOE/rI28asKcOjQl4f/8q8+NzQ5ermjwTaNuZk32i2KUglX0dTUOPr6NsC2ErgyNon16zNIuDN/ODY2PjYydun0H+z51Ieeff5IYCJ97H0DAIBYqo9/5/nnzv753ofaUj3brOn8KLq6Q0xOXIFtJ2FbgON42LxlM7q62oUxTm8qtaX3/PkzpXPnz506dOjxf13J+KtSG+3/k4/8sr1j1/aPfuyjuOH6LSiWp6CjKrSuQVCIVDKNZKoJqWQWrtuC4y8dMz/84alAgK47ePCJyfcVYM+ezRu71mYH7rijD2fPr4FlZ7F79060tWXR3NwML+XB9yuYmysgN5HDf5z4GfzaKMZHX/u3F1/85d0rGhyrEEKJhDVXLgVBpILEA/e3Y67YjMGhi3j9F3PIz1RQrkg0NrpoyDCaGgxu2FxDaU5hfFQtufLwngIcPXohf889N/x4eKR6x+7fymL7tl246aYCAIMwlNCRRLVaRbEwi8JsHoMDs3hrOAdj8PIq6F/5H5q77urrbG3N3L5jexatLduRSd8I11kDISy4jg1mBhFBKo3Lw9MoVwKEUgIws6ugf+UeSKWMDEMZVavSzs++DsdNAjQHIgOpIszMzCGfz6NcKqOnO4tUAjBxLyYnZ/54NQBW7IGjRy/kS6XwRxcvFmFiAZgYWkfQWsMYg+bmDLq62rGmoxlCCFRrIaam52AMzv+fAPjEJza1Z1vSt+3c2Y7W1puQ9vqQcP87hIQQICJEWmN8fBbGMNZ1t8N27Fv27NncvdLxVxxCUiY41pqCQOLqENKxwVyhjOnpPCqVKnrWtSE/ncfgTB5kjC4WQ0NENuq1VXMtP/6uCYCIeP5eBlC+664tf3/06MXPT+Rsa+PGMazp7EIy5aFSriKfL2Bqchpzc3OolMoYHcvhypWcqtXk53/601EfgId65U4TkZ7vR8aYeElalgNNRGJe+OKjACB27Oja1NqaujuZbLjb89Lbk0kL5fIc4ljDcTyEYQSl1PlKpfDi5cul7w8Pz+YAKMxXtq+yaOFo6n9OVg5ARNa86MUAC30HgAsgsWvXrt/cunXrEw899FDSdV0UCgUMDQ3hlVdeCS5evPh3Z86ceW1eeDhvwfxRLhIfLe4bY6J30rWkJJ4PmXcyaxGAe/r06Yu+74+dOHFCTU5OIp/P480334zCMMydOXNmDEAGQApAYuGe+futdxqDiOgdta22BwC4nZ2dXdu2bfujlpaWe4wxNDMz84OzZ88em5qamkZ9ppfjAflu+bDcHGAANv6XHFhk9iI4CwDNm5m3aJG9Ww4o1MPnXQVe09fovEsXBC+AXO16LBK/0BYggPpqs9jeBlvqCnTNAP/jIXWgBeNF/YXzBfHxIoC3z5cj+Or2X3r9Ye2F1izgAAAAAElFTkSuQmCC">
6
- <!ENTITY icon_important "data:image/png;base64,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">
7
- <!ENTITY icon_note "data:image/png;base64,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">
8
- <!ENTITY icon_warning "data:image/png;base64,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">
9
- <!ENTITY icon_quote "data:image/png;base64,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">
10
- <!ENTITY icon_link "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC">
4
+ <!ENTITY icon_here_frag "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIkSURBVDiNjZJNSxtRFIbfc+cjmZkkfjSCEFuQtghCwUWj0KXb/IQs3GlBKBQ3waWLoNBfIBSkJYI/ILsupIsuGrIqLQGRoEak6KLNmExzZ+aeLuJMZ4oLz+7e97nPORwuMTMeUvOVvTrAW0TUZua1brN2AgAUCVZeH9aZeUsToh2Eaq21Xz3593h3U9P1vcKjojPyPDV0+z0wL3abtYEAgOWNxmYmY7x5ufTMnCsVV4QQn8rrDSduT7STny46mm7AzheEputTAFYBQIxz2llceOxYVgZP5maEbZkxMF/ZnQVg64YR+8xM1gbwCgBEeb0xC8B27GwMTE7mbKIxAKCsG8YouQ/dNDUiEU9QzjnZFFDIWZqmaauRwDAzuf8EYFYvYsFEwUkB+ZyFMBwDADwAKpmzYoDIiwQeM6eAMFQggnd37ARSDpN54EsQqB0JOreDPynAHXgQQrRjQeBrKYGUklkdA4AOoDMcjlKA63oyCMLju+MpK2XfXF4kERPA10hwKv3A/vzl+71At1mTAFINkkUP+crzld0egFLiyu82a2Y0AZY3DnvMnAJa+1Uz7kJ0npuaLmUsG74coX9zfRVlOgBogs6fPy2VZooT6LtDfPtxdpWQgZkPPLe/JDTdGvb7koGjKBMAEITq4OLyxnNvPZxdXEtmPkK6PgS+/+739c9bX47eg7me2kF5vZElom0Ab4noo1Jqu7Vf/XXPLkS3WUv9mb/vR+THZPMfuQAAAABJRU5ErkJggg==">
5
+ <!ENTITY icon_caution "data:image/png;base64,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">
6
+ <!ENTITY icon_nav_here "data:image/png;base64,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">
7
+ <!ENTITY icon_nav_prev "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABGBJREFUWIXtlltsFVUUhr81e09Pe2pD0VjlFhBEqSRKWk2hpQQxVOIlpURMRNFEojHBS5ACTxIMxhgTjCTGB8ITweCDUQzhARMMUdLqg8QLaRQRpLS0tgV6oe3pOTN7+TDnlHJ6BzU+sJKVPZc96//W2mvPDNy067SFO8gp32KrbjSOd70PFvaZPb7kHCmv9V//zwEqNvuvzLx9/tpXn36bW/IK3i2vtSv+M4CKLbZySsGtu6qXPRvvDS6y+uHn8q31P1+yKXb3vw6w7E1m+Sbn0FOPbIhfuHKK42c+IzAJqpasLvBs8FXpNqZMFsBMdGLpDuImtHVrlr84LRa30tDyLU5DWrv/YMH0h8SaWH5be1P54uluf0MDOtG4E62A5PbaA8sXPTFn1p1zvIbW44AgIjgN+f7cIRYtWJxz17T5Zc1z7K6JisMEK1BRa98qnl3ywsqyNbknmo4wkOrDaZj2gGTQT0dvI0vve9I/23Tq/jtKEk2N9frTPwJQXmseL5o6Y/czVRvjv7bV051oHxQPNRg87h3opD/VQ9mClf5v505WzVzM0cY61zxe/DGXoGJr7N5YLP7p+lWb4i09p+ns/2vMYH9e+oXW3tM8urQmXz0Ol21l5nUDlG5jirrg6POr3sgPpI8LXb9fc18H++xqv6k6fm7+GpsLlSUrC321R0p3EJ80wNq1mJizX1ZXri8qmjpdTrefQFUjUVHEA2MEz4JnBTFKQAKVEEWpP3uQ2TPmmuK5D8zL7bUHABkNYMQeKHzMfvhg8bLqFSU1sZOt35AMo+BOApAQNSHOc6ikSLhuEmEPeA7PE8QDpwEtXWepXFhtW9ubZ9226IrfWOeOjaQ1jGxprVk3o2je3o01O/MQIRX24wgxnuHYmX0EDBC4JD2pDroTbTgNUUAdqCo1xdtQjY7VgQuV/Yc/7u8Z6FxX/354MFvPZl9wKp+0dJxn+94NEaHgVPG2v/QRYhRB6UpeoDe4jPhg8GBQUPCMsHvfO4iSwiMkgssT5IuREh4GULcrEAgGz0tfxo8V2CSegnFc7D9HQjuxOQKSjpcWd04RA6KEYWjvsX6iC0AMhAMkRlqCYQDZ9sMeUuWbAZRLA+dJaBfGFyS93lGGgjpFnOB5Ah5hyiYuf/ceXePFHxcgYylN0BO2YWxUZs+ApCugqrhQkFARb9SGvzGAvqATz4BnJIKwgpeugHOCSPQ+kMnpTxwg6frwbQy81FUIE6lJqFEjOh1jx98ggKIIggqRiDAI4DLCMmn9CQHYNEF6f0eZaiiEuOhWmL6mV1/MHT8SBwaItlQwUuCxAAzgD3Gs5FA1+zU8j2gHyLVNmAFzDlDkSjOFgANSWR6OB2CAnCzng707Ry3RCOYn2rFAXlrDEH13hKgqLjNxpCUTIJbOPAPgDxkzPjSwS2cWZGWbHDIm0+LJbLHRzMuCsENEM8JDv6ZuCMhQmIxoAMP/FSfTtJkSZo+kA2c8A5I5v2n/b/sb+uLjgZR8ftUAAAAASUVORK5CYII=">
8
+ <!ENTITY icon_tip "data:image/png;base64,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">
9
+ <!ENTITY icon_important "data:image/png;base64,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">
10
+ <!ENTITY icon_nav_list "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABSlJREFUWIXdl1lsVUUYx/8zc7a7daUroXQhlkpoQ4sVA8b6gilbIEIDggEiEiSRFwzEJ/pCXXjgQR8sAW0I0QQSicZIiC9IsClFFqlC6HorXW/Xe+/p7b3nnpnxobbpJW1pS+uD3+N3vpn/b2b+c853gP9rrNp1WZtNHVlo4ZLDl/YzkC+lhAMUZ+9Uv3MCIHK6eraQ4sXvX9ri0tVvD2wtMt4oyaZPvP1rE1bf93ff/f72dGMWbAcKj1xMNYTSeGh7cbxUFNhcQpE2Lvxwz1Sj4czfvn4vONU4ulAAGicni/LTjYR4Jxo7g2jzjSAzJQ5Ll3iUCDUqphu3IACF7150MUqPvr4mS2/sCkICEEKic3AUhfkZBlXJjkUF0HW6JTXJTVwOHYOmNZHv80eQlRYHSFLyQgCrdlXOeKUkIRtezklVff5ITH7U4vC4dAjO00sOVzvnASDJ8vJPz5ghPZSz+ZNg9uaq/VNOQkmypjMaifKYvC0kKBn3eaI6Z4DsTZ9/mBTvOHZ0TxnbVV7q1hXlfO6mqi3P1nEhvIFg2NbU2Ol0hcIM2yAgPHcI5pwA8rd95iFEnN5UVqS19piQTMHO8lJFEHIpb+OZ1Mm1DLjT1jVsexyxizQ0hkF/CJSSlitXKmK353kAYc4rUpPilbQlcXjQ5MOv9zvgdjuwesVSw1b4yRgAxut7B4KGxgjIpDdLSpyOx20+Swh5dTqdaQEo2I6VKzKNJ0+HwIWEkBJ1j7rx6ppcnVIcTdt4xjVeawmHyYVE1BYTZ+5xqFCpxMOmHoVSXJgzAICSrPREtHX7JxKdfSaYoiIj2UMczJ7kBVuldExY/Gu83FQXrtc2WlLImtvVe5vmBJC5tdIppUh3OjUEQ1bMM29PAMsyl6gScgMAFB+6WECkuOlxaLBsCQkgM8lAR++wbO0cClpW9PgMi5wawBg1VACghMJ65mqFLRuMMUooSwYAytgxl6EWFOSlcv9oFJpCkehScb22kQsujzyoOTg8Z4DWxFxTEvDASBhOI9bZDk1BYCRsQwovADCCbbvfKsS6wizW548gJU5HQ4tPhsJRJcevTWu+GQFwpYJT0BbfoIl4V+xL0O3Q0NfvtyXFnZLD1SrnMlNRGf78O4BwlCMlXofKxhcisucHAEAKcbW1vdfKSHZP5AgBDI2if9g0OHi9orscACAkgS3Geo5AKIqoJSVltPbuud0t8wagjF3wdvUpTo0izjm2C4yOeYJzAS2smLe/2BdglA72Do0gwaki2aMhErFQ+9ArbFvMaL7nArT+dKKJc1FT/0eztTI7GZQQcCEmrpniUFQAICBnb/7eEtaZBOwofrzxyLI5P3Xv/L662QDM2BFlb69MQFRvXlf8UlIUKmnvCWBtfhpu1TXADEUeS0LfznmltCnU3V0jBN9DKIsQKU7Xn9tbNVMfOGsAAMgpr9qpG9p3b64vUhraBpCe5IQ5PMzbO3xsNBL9yvvzxx8AQNmBb4wbNQfDsxGdHM/tB9rcK66GI1Glpb1HZiS70DUwgrycpWx9aQEIJdvG6+YjPiuAZaY3GwA0hSHBrcOKcjxo9kGAQgqZWVJSPeV3fsEAnl470UIJqbVsLobNsY4nagtwPnbE/tRux6ICAIAQ5Hirt0sKbiPJY8Dj1DDoN0FABpuvVQYWHcB77WQdF/JUw1/Nlko44gyK5raOMICzLyIOzOHPaLjpl1vuvFuir3/otW7fAOO2vLw8FP7I670hXhRizpFdVmn856KLFf8AcP0p5DnhnVEAAAAASUVORK5CYII=">
11
+ <!ENTITY icon_note "data:image/png;base64,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">
12
+ <!ENTITY icon_hyperlink "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC">
13
+ <!ENTITY icon_warning "data:image/png;base64,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">
14
+ <!ENTITY icon_quote "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAU3SURBVGiB7VlPaBRXHP5+82aTSLIrkY3YJR68VmuSPXlRPPQPGg05iD14sZfEUkpbPJQqQVJs0yQlkEDobaE9CaloTlI0InhYNOBi2yAFT0JxZW2ysn/cmTczvx4ym+7Ozs7uzK6kQj54zOzvzbz3fe/3583MEjPjbYay3QRaxY6A7caOgO2G2uoAExMTB4QQVy3LGrEsq+XxnFAUpcDMCVVVv71y5Ure2d/yhKqqLgwPDw8PDg6SEMLzWj8lu3ytlLLr9u3bXzx48OAlgJma+f3Rrcb4+HgoGo1+FI/HSUoJKWVDQpXnThsR1fSHQiEcP36849GjR2NtFxCLxYSu64qiKDBNsyXyAGBZVo3NNE2EQiEA2OU2dttj1gkvwn766+GNCvAi50eQF96IgCCrHVRQ2wW0Sq7tHhgfHw/FYrF69bELAAzDgGEYvsipqtoU+cA5MDExcUBV1Z/27t37vld97+rqEtPT056TOCGlRF9fH44dO4b9+/cHTmDAQ4AQ4uqpU6c+jMfj5Itdk0in07h27RrOnz+/ZWurByzLGjl8+DBpmlZVn5tBo/AhIuzbtw+GYSCfz6OnpycQ+UYCVCEEDMNoG/GKscHM6O7ursodv+Q9BfhBOypL0ErUsoBmCDda2WbKLTO75mJgAX43paB7QYWdiIjYsQK+X2gqB3WbqFmbc0wvQfZvBUC3815fHggaLl4hREQgoq1KV36kLh/LhYSZNQCdAKpeapoS0I5wqSciEokgEokgm80CAHbv3g0hxNY1hmHg3r17xvr6+q9u3BoKCLrCzfRJKTE3N2devHhRhMNh5HI5qKqKyclJSCl1+7bSxsbG8srKys8AXgcS4IzddnmEiEpPnjz5anFxcebChQvhPXv2AAA0TeOFhYUjxWJRBWAAKADYcBPQVBK3kqxeNgD86tWr35PJ5Oj8/PxGMpnUmRnRaLR09uzZAQAv7ZYB8I+zAgFtDiG/HiEi7u3tzV+/fn0tm82+p+v6lw8fPvyso6Ojo7+///uDBw8eWltbKwKo+7Ld0AOVIeRczRZXHwAgpRQA1GQy+Xp2dva7W7duHXr+/HnCNM2+EydOfAqAsLnQgohUIqri/EZDyE20Y1wqFoudAEI2SfXOnTvZqampr58+fTrAzO+cPn26z+ap2GIUKtdY1AkhIlIvX75cQ8rt6MfmNlWpVOqyyVU+8vLS0tLfAL5x2AGgasB6OdBJRKZpmnB+MqncdCptdlWpjO8tmxOKokBRFORyOWiaxrYAaZOz7GP53Ko4N5m5avIaAUQkAKi6rv+WSqVG4/G4UvlGJqVEPp+HEAKRSKSOfm9YloVnz56hUCi8XF1dTdvkpIN8pQDLrQK5CijrSCaT05ZldS4vL3/AzAIADQ0NWaOjoyoRIRwO4+7du3JlZUXA4dZGsPPhz8ePH/8AQLPb6zLxemRdibo8mxCAHrt1A+gAwGfOnDly7ty5xZGRkV0AsLq6Km/cuLGWSCQ+yWQymh8B+C8hS9jcpHLMXPPhthnUeICZmYh0bK4KAdABcCwWG+jv71dN08TNmzdLqVTqr6WlpY8zmUzN7uhDgG6LKAYhD7h4YKuDqBObn03EyZMno4ODg38cPXpUSaVShRcvXkwmEolfcrlc/Q+i3ignlQ6gyMxBx6m/EzOzZntCDAwM/AgA9+/fn02n01OJRKIQdEIbyuYUwYmXUdcDZVy6dOldZv7cNM3JmZmZdKsTth3OXdPZxsbGQo2u2c7W0AP/d7z1f/LtCNhu7AjYbrz1Av4F8/cV1apw1zkAAAAASUVORK5CYII=">
15
+ <!ENTITY icon_nav_next "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABFpJREFUWIXtl0tsVFUYx3/n3HunLYhQwDRqpKZKhSYIMSAGI+ICI02UBejGBBMUURdu0Lgl7gg0QWNiYtDEBBcErZhACOKjPNqC8jBCqTwDobS0Bfqgnce955zPxcy00zItFyNhw5f8c2fmnDn/3/edx70X7sc9DhWn06J1vvheAICIYJ257X8Sk0xZw3rSt+vnxwEA+HTN1zhnsWKwzmDF4JzBOosr+C2yId/U14X9KVMC/yMAwIEL24lMmshliGyGyKaJbIbQpolsSMYkWTb7XQQk7pg6bkeVmy2lbp21fBsS2/fOAeKEw909AMlVVYpkmW+Lszj/M0DOHUEQGal8m7ubACKCE5fLNi+GgCKXGarEXQHIWjlEHK5AkAVLR4N3bA5FtuGidX42DUUKQAkJIZ9pFkAQUILSgohhMLqOKIsa3gwlJdbvXvQRJsdeBtBUZ27ZQreeA6I+WFiz9PPli1eVgUPIZioiWLGgHQqHVkJoB+gNuxDP4nsaEUgkSljz+jrEESAEIsIPv3wbXuvt+KRYBYoexc9/7H25cvH7q5+orE6c6GjA2AgjIY4IKyEp28+NdBsZmxxxLogI4kCcoAh4qWoVx0/+mW49f6z+4Eb7ZjGvomsg3Wc/3NG45URPb4+tnDoHhwFtQVt6wja6UucwKoUfaPxA4ScUXqCGvnuB5tnKWq52d7hT549f9Cfat4v5jAlw9CuiyKRrt/78Wd8EPUUqJlci2nI9c5l+04kOwAt01jihc581Xs68umIBZbqchkO7B8SZV8a7KY25C5o20TUweHPZd3u+yMyYPIeEX0JfeBXP13j+cKZ+IluBbCU0Dz34GDPLF7Jrb30qMuaNpjoujeUB4I3X2HbIXZk6b6Cz9+b1pXOrnws6kq04HWUz9TWen71qT6E8RWkwkYUPr2RPw85kZ0/7pqaNZst4498WAOBysztWWtP+pFg165nqF/z2ZCvak2HzQON5Ck9rFlSsoKWlJTpx+q/Gxg1mzHkvjFgHUe9Eu/ZYa+M/Xe037LyKl9GeQnv5hafwEoqa6Uu42ZOUxiP7ulNEK4h5S44F0LKeUIWmdm/jzt5EOJWqyfNRGpRWaF/x6KTZlKsqftxVn4qsXnZ0A31xxo0NAHBgMx2ZTPjajt3bUzPK5jO99HEAHvCmMXPCEr7/aVvSZFJrD28K/447JsRYAzlIHwjaml3XtKej3qvdbS8umbc86AkvM7f8VX7d91v6wsUz2xrr7GYgyEkXJDjmdIwFkDctyak0ryt/uFOTavqfMsZULZ61wm89c9I0Hz5w7uhW854ZxAcSBRB+zsNj+NQdAVMMYCjjUUrkVNJ1VvarRzprk8nklKYjB5Nn94Rv9V0gVWCWz16NEjDysWm8CozW0CA2hRjjfk9P6Fh97Yx959J+OZ0b2AF21LVQZjTAeO8FOgdYWMbC7PJQ+ZBRZjZnmJejyFqI9WJS0LeYCgEKdedPqPfjXsS/6zUvFnaUbdsAAAAASUVORK5CYII=">
11
16
  ]>
12
17
  <html xmlns="http://www.w3.org/1999/xhtml">
13
18
  <head>
14
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
15
- <meta name="generator" content="ERBook 6.1.0"/>
16
-
17
- <title>Rumai 2.0.2</title>
18
-
19
- <meta name="author" content="Suraj N. Kurapati"/>
20
-
21
- <meta name="date" content="26 February 2009"/>
22
-
23
- <link rel="alternate" type="application/rss+xml" href="http://snk.tuxfamily.org/lib/rumai/ann.xml"/>
24
-
25
- <style type="text/css" media="all">
26
- <![CDATA[/* general */
27
- body
28
- {
29
- color : #000000;
30
- background-color : #FFFFFF;
31
- line-height : 1.5em;
32
- font-family : Calibri, Verdana, sans-serif;
33
- }
34
-
35
- /* emphasis */
36
- blockquote
37
- {
38
- color : #333;
39
- font-style : italic;
40
- }
41
-
42
- em
43
- {
44
- font-family : Constantia, "Book Antiqua", "URW Bookman L", serif;
45
- font-size : 105%;
46
- }
47
-
48
- hr
49
- {
50
- height : 0;
51
- border : 0;
52
- border-top : thin dashed #000000;
53
- }
54
-
55
- /* source code */
56
- tt,
57
- code,
58
- pre
59
- {
60
- font-family : Monaco, Consolas, "Lucida Console", monospace;
61
- font-size : 100%; /* appears like "size: small" otherwise */
62
- }
63
-
64
- /* hyperlinks */
65
- a > img
66
- {
67
- border : none;
68
- }
69
-
70
- a img
71
- {
72
- _border : none; /* for IE6 */
73
- }
74
-
75
- /* headings */
76
- h1,
77
- h2,
78
- h3,
79
- h4,
80
- h5,
81
- h6,
82
- .title
83
- {
84
- font-weight : lighter;
85
- font-family : Constantia, "Book Antiqua", "URW Bookman L", serif;
86
- }
87
-
88
- #lof h1,
89
- #lof h2,
90
- #lof h3,
91
- #lof h4,
92
- #lof h5,
93
- #lof h6
94
- {
95
- margin-top : 1.25em;
96
- }
97
-
98
- #content h1,
99
- #content h2,
100
- #content h3,
101
- #content h4,
102
- #content h5,
103
- #content h6
104
- {
105
- margin-top : 2.5em;
106
- line-height : 1.25em;
107
- }
108
-
109
- #content h1
110
- {
111
- font-size : 2.0em;
112
- }
113
-
114
- #content h2
115
- {
116
- font-size : 1.8em;
117
- }
118
-
119
- #content h3
120
- {
121
- font-size : 1.6em;
122
- }
123
-
124
- #content h4
125
- {
126
- font-size : 1.4em;
127
- }
128
-
129
- #content h5
130
- {
131
- font-size : 1.2em;
132
- }
133
-
134
- #content h6
135
- {
136
- font-size : 1.0em;
137
- }
138
-
139
- /* tables */
140
- table
141
- {
142
- border-collapse : collapse; /* no spacing between cell borders */
143
- margin : auto; /* center horizontally */
144
- margin-top : 1em;
145
- }
146
-
147
- th,
148
- td
149
- {
150
- padding : 1em;
151
- border : 1px solid #bbb;
152
- vertical-align : top;
153
- background-color : #FFFFFF;
154
- _background-color : #FFFFFF; /* for IE6 */
155
- }
156
-
157
- th
158
- {
159
- background-color : #F5F5F5;
160
- }
161
-
162
- /* document structure */
163
- #header
164
- {
165
- text-align : center;
166
- }
167
-
168
- .logo,
169
- .header_outside_above,
170
- #header,
171
- .header_outside_below
172
- {
173
- margin-bottom : 5em;
174
- }
175
-
176
- .footer_outside_above,
177
- #footer,
178
- .footer_outside_below
179
- {
180
- margin-top : 5em;
181
- }
182
-
183
- #header .header_inside_above,
184
- #footer .footer_inside_above
185
- {
186
- margin-bottom : 4em;
187
- }
188
-
189
- #header .header_inside_below,
190
- #footer .footer_inside_below
191
- {
192
- margin-top : 4em;
193
- }
194
-
195
- #Abstract
196
- {
197
- margin-bottom : 5em;
198
- }
199
-
200
- #toc li
201
- {
202
- list-style-type : none;
203
- }
204
-
205
- #toc li ul
206
- {
207
- padding-bottom : 1em;
208
- border-left : thick solid #F5F5F5;
209
- _border-left : none; /* for IE6 */
210
- }
211
-
212
- #toc li ul:hover
213
- {
214
- border-color : #DCDCDC;
215
- }
216
-
217
- #toc > ul
218
- {
219
- padding-left : 1em;
220
- }
221
-
222
- #bib
223
- {
224
- margin-top : 5em;
225
- }
226
-
227
- #footer
228
- {
229
- border-top : thick dotted #DCDCDC;
230
- padding-top : 1em;
231
- text-align : center;
232
- }
233
-
234
- #footer-credits
235
- {
236
- margin-top : 2em;
237
- margin-bottom : 2em;
238
- }
239
-
240
- /* document nodes */
241
- .part > .title,
242
- .chapter > .title
243
- {
244
- padding-bottom : 0.5em;
245
- }
246
-
247
- .part > .title > big,
248
- .chapter > .title > big
249
- {
250
- display : block;
251
- margin-top : 0.25em;
252
- }
253
-
254
- .part .title big,
255
- .chapter .title big
256
- {
257
- _display : block; /* for IE6 */
258
- _margin-top : 0.25em; /* for IE6 */
259
- _margin-bottom : 0.75em; /* for IE6 */
260
- }
261
-
262
- .paragraph > .title,
263
- .tip > .title,
264
- .note > .title,
265
- .caution > .title,
266
- .warning > .title,
267
- .important > .title,
268
- .figure > .title,
269
- .table > .title,
270
- .example > .title,
271
- .equation > .title,
272
- .procedure > .title
273
- {
274
- font-size : large;
275
- margin-top : 2em;
276
- }
277
-
278
- .paragraph .title,
279
- .tip .title,
280
- .note .title,
281
- .caution .title,
282
- .warning .title,
283
- .important .title,
284
- .figure .title,
285
- .table .title,
286
- .example .title,
287
- .equation .title,
288
- .procedure .title
289
- {
290
- _font-size : large; /* for IE6 */
291
- _font-weight : bold; /* large is not bold in IE6 */
292
- _margin-top : 2em; /* for IE6 */
293
- }
294
-
295
- .tip ,
296
- .note ,
297
- .caution ,
298
- .warning ,
299
- .important,
300
- .figure ,
301
- .table ,
302
- .example ,
303
- .equation ,
304
- .procedure
305
- {
306
- margin : 3em;
307
- }
308
-
309
- .tip .nav,
310
- .note .nav,
311
- .caution .nav,
312
- .warning .nav,
313
- .important .nav,
314
- .figure .nav,
315
- .table .nav,
316
- .example .nav,
317
- .equation .nav,
318
- .procedure .nav
319
- {
320
- margin-left : -7.65em;
321
- }
322
-
323
- .tip > .content,
324
- .note > .content,
325
- .caution > .content,
326
- .warning > .content,
327
- .important > .content,
328
- .figure > .content,
329
- .table > .content,
330
- .example > .content,
331
- .equation > .content,
332
- .procedure > .content
333
- {
334
- min-height : 48px; /* 48px is height of icon */
335
- }
336
-
337
- .tip > .content > .icon,
338
- .note > .content > .icon,
339
- .caution > .content > .icon,
340
- .warning > .content > .icon,
341
- .important > .content > .icon
342
- {
343
- float : left;
344
- margin : 0 1em 1em 0; /* top right bottom left */
345
- }
346
-
347
- .tip .content .icon,
348
- .note .content .icon,
349
- .caution .content .icon,
350
- .warning .content .icon,
351
- .important .content .icon
352
- {
353
- _display : none; /* IE6 cannot display embedded images */
354
- }
355
-
356
- .figure > .title
357
- {
358
- text-align : center;
359
- }
360
-
361
- .figure .title
362
- {
363
- _text-align : center; /* for IE6 */
364
- }
365
-
366
- .figure > .content img
367
- {
368
- display : block;
369
- margin : auto;
370
- }
371
-
372
- .figure .content img
373
- {
374
- _display : block; /* for IE6 */
375
- _margin : auto; /* for IE6 */
376
- }
377
- ]]>
378
- </style>
379
- <style type="text/css" media="screen">
380
- <![CDATA[/* general */
381
- body
382
- {
383
- margin : 0;
384
- padding : 0;
385
- padding-left : 10em; /* room for local navigation menus */
386
- padding-right : 10em; /* keep #body visually centered */
387
- background-color : #808080;
388
- }
389
-
390
- /* the actual content of the <body> element */
391
- #body
392
- {
393
- margin : auto;
394
- max-width : 38em;
395
-
396
- background-color : #FFFFFF;
397
- border-left : 0.35em solid #696969;
398
- border-right : 0.35em solid #696969;
399
- padding : 2em;
400
- }
401
-
402
- /* source code */
403
- tt
404
- {
405
- background-color : #F0F8FF;
406
- }
407
-
408
- pre
409
- {
410
- cursor : text;
411
- line-height : normal;
412
- border : 1px solid #b1d827;
413
- background-color : #F5FFDF;
414
- padding : 1em;
415
-
416
- /* fit container to content; no overflow! */
417
- display : inline-block;
418
- margin : 0;
419
- min-width : 92.5%;
420
- }
421
-
422
- /* output of the syntax coloring library */
423
- pre.code
424
- {
425
- background-color : #FFFFE8;
426
- border-color : #EEDD88;
427
- }
428
-
429
- /* hyperlinks */
430
- a
431
- {
432
- text-decoration : none;
433
- }
434
-
435
- a:hover
436
- {
437
- text-decoration : underline;
438
- }
439
-
440
- a:link
441
- {
442
- color : #0038E1; /* maximum saturation of RoyalBlue */
443
- }
444
-
445
- a:visited
446
- {
447
- color : #800080;
448
- }
449
-
450
- #toc a:target:after,
451
- #lof a:target:after,
452
- #nav a:target:after
453
- {
454
- content : "★"; /* &#x2605; */
455
- color : #FF0000;
456
- font-size : x-large;
457
- padding-left : 0.125em;
458
- }
459
-
460
- /* document structure */
461
- /* mini navigation menu beside every block node */
462
- .nav
463
- {
464
- width : 4em;
465
- float : left; /* detach from main content */
466
- margin-left : -6.075em;
467
-
468
- font-size : 1.9em;
469
- letter-spacing : 0.25em;
470
- text-align : center;
471
-
472
- color : #696969; /* same colors to hide non-links */
473
- background-color : #696969;
474
- padding : 0.5em;
475
- margin-top : -0.5em;
476
- }
477
-
478
- .nav:target,
479
- .nav:hover
480
- {
481
- color : #333; /* same colors to hide non-links */
482
- background-color : #333;
483
- }
484
-
485
- .nav a:link,
486
- .nav a:visited
487
- {
488
- color : #C0C0C0;
489
- }
490
-
491
- .nav a:hover,
492
- #nav a:target:after {
493
- color : #9ACD32;
494
- text-decoration : none;
495
- }
496
-
497
- /* global navigation menu at the top of the page */
498
- #nav
499
- {
500
- font-size : 1em;
501
- letter-spacing : 0;
502
- width : 8.5em;
503
- margin-left : -11.5em;
504
- }
505
-
506
- #nav li
507
- {
508
- list-style-type : none;
509
- }
510
- ]]>
511
- </style>
512
- <style type="text/css" media="print">
513
- <![CDATA[/* source code */
514
- tt
515
- {
516
- font-weight : normal;
517
- }
518
-
519
- pre
520
- {
521
- border : none;
522
- }
523
-
524
- /* headings */
525
- h1,
526
- h2,
527
- h3,
528
- h4,
529
- h5,
530
- h6
531
- {
532
- font-weight : normal;
533
- clear : both;
534
- }
535
-
536
- /* hyperlinks */
537
- /* blend all hyperlinks with normal text */
538
- a:link,
539
- a:visited
540
- {
541
- color : #000000;
542
- text-decoration : none;
543
- }
544
-
545
- /* emphasize external and cross-reference hyperlinks */
546
- a[href]:not([href^="#"]):link,
547
- a[href]:not([href^="#"]):visited,
548
- a.xref[title]:link,
549
- a.xref[title]:visited
550
- {
551
- color : #0000FF;
552
- text-decoration : underline;
553
- font-weight : bolder;
554
- }
555
-
556
- /* show URL of destination for external hyperlinks */
557
- a[href]:not([href^="#"]):after
558
- {
559
- content : " " attr(href);
560
- font-family : Monaco, Consolas, "Lucida Console", monospace;
561
- }
562
-
563
- /* show name of destination for cross-references */
564
- a.xref[title]:after
565
- {
566
- content : " " attr(title);
567
- }
568
-
569
- a:after
570
- {
571
- font-weight : normal;
572
- font-size : smaller;
573
- }
574
-
575
- /* document structure */
576
- #nav,
577
- .nav,
578
- #lof
579
- {
580
- display : none;
581
- }
582
-
583
- #toc,
584
- .part,
585
- .chapter,
586
- #bib
587
- {
588
- page-break-before : always;
589
- }
590
-
591
- /* document nodes */
592
- .part > .title > big,
593
- .chapter > .title > big
594
- {
595
- padding-bottom : 0.5em;
596
- }
597
-
598
- .part .title big,
599
- .chapter .title big
600
- {
601
- _padding-bottom : 0.5em; /* for IE6 */
602
- }
603
- ]]>
604
- </style>
19
+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/>
20
+ <meta name="generator" content="ERBook 7.0.0"/>
21
+
22
+ <title>Rumai 2.1.0</title>
23
+
24
+ <meta name="author" content="Suraj N. Kurapati"/>
25
+
26
+ <meta name="date" content="09 May 2009"/>
27
+
28
+ <link rel="alternate" type="application/rss+xml" href="http://snk.tuxfamily.org/lib/rumai/ann.xml"/>
29
+
30
+ <style type="text/css" media="all">
31
+ /*<![CDATA[*/ body{color:#000;background-color:#FFF;line-height:1.5em;font-family:Calibri, Verdana, sans-serif}blockquote{color:#333;font-style:italic}em,strong,dt{font-family:Constantia, "Book Antiqua", "URW Bookman L", serif}hr{height:0;border:0;border-top:thin dashed#000}tt,code,pre{font-family:Monaco, Consolas, "Lucida Console", monospace;font-size:100%}code.para{white-space:pre}a > img{border:none}dt{margin-top:1.5em;font-weight:bolder}h1,h2,h3,h4,h5,h6,.title{font-weight:lighter;font-family:Constantia, "Book Antiqua", "URW Bookman L", serif}#lof h1,#lof h2,#lof h3,#lof h4,#lof h5,#lof h6{margin-top:1.25em}#content h1,#content h2,#content h3,#content h4,#content h5,#content h6{margin-top:2.5em;line-height:1.25em}#content h1{font-size:2.0em}#content h2{font-size:1.8em}#content h3{font-size:1.6em}#content h4{font-size:1.4em}#content h5{font-size:1.2em}#content h6{font-size:1.0em}table{border-collapse:collapse;margin:auto;margin-top:1em}th,td{padding:1em;border:1px solid #bbb;vertical-align:top;background-color:#FFF}th{background-color:#F5F5F5}#header{text-align:center}#header > .title{font-size:2.25em}#header > .subtitle{}#header > .authors{margin-top:1.625em;margin-bottom:-0.25em}#header > .date{}.logo,.header_outside_above,#header,.header_outside_below{margin-bottom:5em}.footer_outside_above,#footer,.footer_outside_below{margin-top:5em}#header .header_inside_above,#footer .footer_inside_above{margin-bottom:4em}#header .header_inside_below,#footer .footer_inside_below{margin-top:4em}#Abstract{margin-bottom:5em}#toc li{list-style-type:none}#toc li ul{padding-bottom:1em;border-left:thick solid #F5F5F5}#toc li ul:hover{border-color:#DCDCDC}#toc > ul{padding-left:1em}#bib{margin-top:5em}#footer{border-top:thick dotted #DCDCDC;padding-top:1em;text-align:center}#footer-credits{margin-top:2em;margin-bottom:2em}.part > .title,.chapter > .title{padding-bottom:.5em}.part > .title > big,.chapter > .title > big{display:block;margin-top:.25em}.paragraph > .title,.tip > .title,.note > .title,.caution > .title,.warning > .title,.important > .title,.figure > .title,.table > .title,.example > .title,.equation > .title,.procedure > .title{font-size:large;margin-top:2em}.tip,.note,.caution,.warning,.important,.figure,.table,.example,.equation,.procedure{margin:3em}.tip .nav,.note .nav,.caution .nav,.warning .nav,.important .nav,.figure .nav,.table .nav,.example .nav,.equation .nav,.procedure .nav{margin-right:-3em}.tip > .content,.note > .content,.caution > .content,.warning > .content,.important > .content,.figure > .content,.table > .content,.example > .content,.equation > .content,.procedure > .content{min-height:48px}.tip > .content > .icon,.note > .content > .icon,.caution > .content > .icon,.warning > .content > .icon,.important > .content > .icon{float:left;margin:0 1em 1em 0}.figure > .title{text-align:center}.figure > .content img{display:block;margin:auto}/*]]>*/
32
+ </style>
605
33
 
606
34
  <style type="text/css" media="screen">
607
- <![CDATA[
35
+ /*<![CDATA[*/ body{margin:0;padding:.5em;background-color:#FFF}#body{margin:auto;max-width:38em}tt{background-color:#F0F8FF}pre,code.para{cursor:text;line-height:normal;border:1px solid #b1d827;background-color:#F5FFDF;padding:1em;display:inline-block;margin:0;min-width:92.5%}code.para,pre.para{background-color:#FFFFE8;border-color:#ED8}a{text-decoration:none}a:hover{text-decoration:underline}a:link{color:#0038E1}a:visited{color:#800080}#toc a:target,#lof a:target,#nav a:target{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIkSURBVDiNjZJNSxtRFIbfc+cjmZkkfjSCEFuQtghCwUWj0KXb/IQs3GlBKBQ3waWLoNBfIBSkJYI/ILsupIsuGrIqLQGRoEak6KLNmExzZ+aeLuJMZ4oLz+7e97nPORwuMTMeUvOVvTrAW0TUZua1brN2AgAUCVZeH9aZeUsToh2Eaq21Xz3593h3U9P1vcKjojPyPDV0+z0wL3abtYEAgOWNxmYmY7x5ufTMnCsVV4QQn8rrDSduT7STny46mm7AzheEputTAFYBQIxz2llceOxYVgZP5maEbZkxMF/ZnQVg64YR+8xM1gbwCgBEeb0xC8B27GwMTE7mbKIxAKCsG8YouQ/dNDUiEU9QzjnZFFDIWZqmaauRwDAzuf8EYFYvYsFEwUkB+ZyFMBwDADwAKpmzYoDIiwQeM6eAMFQggnd37ARSDpN54EsQqB0JOreDPynAHXgQQrRjQeBrKYGUklkdA4AOoDMcjlKA63oyCMLju+MpK2XfXF4kERPA10hwKv3A/vzl+71At1mTAFINkkUP+crzld0egFLiyu82a2Y0AZY3DnvMnAJa+1Uz7kJ0npuaLmUsG74coX9zfRVlOgBogs6fPy2VZooT6LtDfPtxdpWQgZkPPLe/JDTdGvb7koGjKBMAEITq4OLyxnNvPZxdXEtmPkK6PgS+/+739c9bX47eg7me2kF5vZElom0Ab4noo1Jqu7Vf/XXPLkS3WUv9mb/vR+THZPMfuQAAAABJRU5ErkJggg==");background-position:center right;background-repeat:no-repeat;padding-right:20px}.nav{float:right;margin-top:-0.25em}.nav > a > img{border-top:thick solid#FFF}.nav > a > img:hover{border-top:thick solid #FA8072}#nav{margin-bottom:4em;text-align:center}/*]]>*/
36
+ </style>
37
+
38
+ <style type="text/css" media="print">
39
+ /*<![CDATA[*/ tt{font-weight:400}pre{border:none}h1,h2,h3,h4,h5,h6{font-weight:400;clear:both}a:link,a:visited{color:#000;text-decoration:none}a[href]:not([href^="#"]):link,a[href]:not([href^="#"]):visited,a.xref[title]:link,a.xref[title]:visited{color:#00F;text-decoration:underline;font-weight:bolder}a[href]:not([href^="#"]):after{content:" " attr(href);font-family:Monaco, Consolas, "Lucida Console", monospace}a.xref[title]:after{content:" " attr(title)}a:after{font-weight:400;font-size:smaller}#nav,.nav,#lof{display:none}#toc,.part,.chapter,#bib{page-break-before:always}.part > .title > big,.chapter > .title > big{padding-bottom:.5em}/*]]>*/
40
+ </style>
41
+
42
+ <style type="text/css" media="screen">
43
+ /*<![CDATA[*/
608
44
  /* decorate external hyperlinks with a visual indicator */
609
45
  a[href]:not([href^="#"])
610
46
  {
@@ -617,14 +53,70 @@
617
53
  /* display icon for blockquote elements */
618
54
  blockquote
619
55
  {
620
- background-image : url("data:image/png;base64,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");
56
+ background-image : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAU3SURBVGiB7VlPaBRXHP5+82aTSLIrkY3YJR68VmuSPXlRPPQPGg05iD14sZfEUkpbPJQqQVJs0yQlkEDobaE9CaloTlI0InhYNOBi2yAFT0JxZW2ysn/cmTczvx4ym+7Ozs7uzK6kQj54zOzvzbz3fe/3583MEjPjbYay3QRaxY6A7caOgO2G2uoAExMTB4QQVy3LGrEsq+XxnFAUpcDMCVVVv71y5Ure2d/yhKqqLgwPDw8PDg6SEMLzWj8lu3ytlLLr9u3bXzx48OAlgJma+f3Rrcb4+HgoGo1+FI/HSUoJKWVDQpXnThsR1fSHQiEcP36849GjR2NtFxCLxYSu64qiKDBNsyXyAGBZVo3NNE2EQiEA2OU2dttj1gkvwn766+GNCvAi50eQF96IgCCrHVRQ2wW0Sq7tHhgfHw/FYrF69bELAAzDgGEYvsipqtoU+cA5MDExcUBV1Z/27t37vld97+rqEtPT056TOCGlRF9fH44dO4b9+/cHTmDAQ4AQ4uqpU6c+jMfj5Itdk0in07h27RrOnz+/ZWurByzLGjl8+DBpmlZVn5tBo/AhIuzbtw+GYSCfz6OnpycQ+UYCVCEEDMNoG/GKscHM6O7ursodv+Q9BfhBOypL0ErUsoBmCDda2WbKLTO75mJgAX43paB7QYWdiIjYsQK+X2gqB3WbqFmbc0wvQfZvBUC3815fHggaLl4hREQgoq1KV36kLh/LhYSZNQCdAKpeapoS0I5wqSciEokgEokgm80CAHbv3g0hxNY1hmHg3r17xvr6+q9u3BoKCLrCzfRJKTE3N2devHhRhMNh5HI5qKqKyclJSCl1+7bSxsbG8srKys8AXgcS4IzddnmEiEpPnjz5anFxcebChQvhPXv2AAA0TeOFhYUjxWJRBWAAKADYcBPQVBK3kqxeNgD86tWr35PJ5Oj8/PxGMpnUmRnRaLR09uzZAQAv7ZYB8I+zAgFtDiG/HiEi7u3tzV+/fn0tm82+p+v6lw8fPvyso6Ojo7+///uDBw8eWltbKwKo+7Ld0AOVIeRczRZXHwAgpRQA1GQy+Xp2dva7W7duHXr+/HnCNM2+EydOfAqAsLnQgohUIqri/EZDyE20Y1wqFoudAEI2SfXOnTvZqampr58+fTrAzO+cPn26z+ap2GIUKtdY1AkhIlIvX75cQ8rt6MfmNlWpVOqyyVU+8vLS0tLfAL5x2AGgasB6OdBJRKZpmnB+MqncdCptdlWpjO8tmxOKokBRFORyOWiaxrYAaZOz7GP53Ko4N5m5avIaAUQkAKi6rv+WSqVG4/G4UvlGJqVEPp+HEAKRSKSOfm9YloVnz56hUCi8XF1dTdvkpIN8pQDLrQK5CijrSCaT05ZldS4vL3/AzAIADQ0NWaOjoyoRIRwO4+7du3JlZUXA4dZGsPPhz8ePH/8AQLPb6zLxemRdibo8mxCAHrt1A+gAwGfOnDly7ty5xZGRkV0AsLq6Km/cuLGWSCQ+yWQymh8B+C8hS9jcpHLMXPPhthnUeICZmYh0bK4KAdABcCwWG+jv71dN08TNmzdLqVTqr6WlpY8zmUzN7uhDgG6LKAYhD7h4YKuDqBObn03EyZMno4ODg38cPXpUSaVShRcvXkwmEolfcrlc/Q+i3ignlQ6gyMxBx6m/EzOzZntCDAwM/AgA9+/fn02n01OJRKIQdEIbyuYUwYmXUdcDZVy6dOldZv7cNM3JmZmZdKsTth3OXdPZxsbGQo2u2c7W0AP/d7z1f/LtCNhu7AjYbrz1Av4F8/cV1apw1zkAAAAASUVORK5CYII=");
621
57
  background-repeat : no-repeat;
622
58
  margin-left : 0;
623
59
  padding-left : 65px;
624
60
  min-height : 50px;
625
61
  }
626
- ]]>
62
+ /*]]>*/
627
63
  </style>
64
+
65
+ <script type="text/javascript">
66
+ //<![CDATA[
67
+ /*
68
+ * jQuery JavaScript Library v1.3.2
69
+ * http://jquery.com/
70
+ *
71
+ * Copyright (c) 2009 John Resig
72
+ * Dual licensed under the MIT and GPL licenses.
73
+ * http://docs.jquery.com/License
74
+ *
75
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
76
+ * Revision: 6246
77
+ */
78
+ (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
79
+ /*
80
+ * Sizzle CSS Selector Engine - v0.9.3
81
+ * Copyright 2009, The Dojo Foundation
82
+ * Released under the MIT, BSD, and GPL Licenses.
83
+ * More information: http://sizzlejs.com/
84
+ */
85
+ (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
86
+ /**
87
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
88
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
89
+ * Dual licensed under MIT and GPL.
90
+ * Date: 3/9/2009
91
+ * @author Ariel Flesler
92
+ * @version 1.4.1
93
+ *
94
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
95
+ */
96
+ ;(function($){var m=$.scrollTo=function(b,h,f){$(window).scrollTo(b,h,f)};m.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1};m.window=function(b){return $(window).scrollable()};$.fn.scrollable=function(){return this.map(function(){var b=this,h=!b.nodeName||$.inArray(b.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!h)return b;var f=(b.contentWindow||b).document||b.ownerDocument||b;return $.browser.safari||f.compatMode=='BackCompat'?f.body:f.documentElement})};$.fn.scrollTo=function(l,j,a){if(typeof j=='object'){a=j;j=0}if(typeof a=='function')a={onAfter:a};if(l=='max')l=9e9;a=$.extend({},m.defaults,a);j=j||a.speed||a.duration;a.queue=a.queue&&a.axis.length>1;if(a.queue)j/=2;a.offset=n(a.offset);a.over=n(a.over);return this.scrollable().each(function(){var k=this,o=$(k),d=l,p,g={},q=o.is('html,body');switch(typeof d){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px)?$/.test(d)){d=n(d);break}d=$(d,this);case'object':if(d.is||d.style)p=(d=$(d)).offset()}$.each(a.axis.split(''),function(b,h){var f=h=='x'?'Left':'Top',i=f.toLowerCase(),c='scroll'+f,r=k[c],s=h=='x'?'Width':'Height';if(p){g[c]=p[i]+(q?0:r-o.offset()[i]);if(a.margin){g[c]-=parseInt(d.css('margin'+f))||0;g[c]-=parseInt(d.css('border'+f+'Width'))||0}g[c]+=a.offset[i]||0;if(a.over[i])g[c]+=d[s.toLowerCase()]()*a.over[i]}else g[c]=d[i];if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],u(s));if(!b&&a.queue){if(r!=g[c])t(a.onAfterFirst);delete g[c]}});t(a.onAfter);function t(b){o.animate(g,j,a.easing,b&&function(){b.call(this,l,a)})};function u(b){var h='scroll'+b;if(!q)return k[h];var f='client'+b,i=k.ownerDocument.documentElement,c=k.ownerDocument.body;return Math.max(i[h],c[h])-Math.min(i[f],c[f])}}).end()};function n(b){return typeof b=='object'?b:{top:b,left:b}}})(jQuery);
97
+ /**
98
+ * jQuery.LocalScroll - Animated scrolling navigation, using anchors.
99
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
100
+ * Dual licensed under MIT and GPL.
101
+ * Date: 3/11/2009
102
+ * @author Ariel Flesler
103
+ * @version 1.2.7
104
+ **/
105
+ ;(function($){var l=location.href.replace(/#.*/,'');var g=$.localScroll=function(a){$('body').localScroll(a)};g.defaults={duration:1e3,axis:'y',event:'click',stop:true,target:window,reset:true};g.hash=function(a){if(location.hash){a=$.extend({},g.defaults,a);a.hash=false;if(a.reset){var e=a.duration;delete a.duration;$(a.target).scrollTo(0,a);a.duration=e}i(0,location,a)}};$.fn.localScroll=function(b){b=$.extend({},g.defaults,b);return b.lazy?this.bind(b.event,function(a){var e=$([a.target,a.target.parentNode]).filter(d)[0];if(e)i(a,e,b)}):this.find('a,area').filter(d).bind(b.event,function(a){i(a,this,b)}).end().end();function d(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')==l&&(!b.filter||$(this).is(b.filter))}};function i(a,e,b){var d=e.hash.slice(1),f=document.getElementById(d)||document.getElementsByName(d)[0];if(!f)return;if(a)a.preventDefault();var h=$(b.target);if(b.lock&&h.is(':animated')||b.onBefore&&b.onBefore.call(b,a,f,h)===false)return;if(b.stop)h.stop(true);if(b.hash){var j=f.id==d?'id':'name',k=$('<a> </a>').attr(j,d).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});f[j]='';$('body').prepend(k);location=e.hash;k.remove();f[j]=d}h.scrollTo(f,b).trigger('notify.serialScroll',[f])}})(jQuery);
106
+
107
+ $(document).ready(
108
+ function(){
109
+ $.localScroll({
110
+ // the default 1000 is too slow, and 500 is too fast
111
+ duration: 700,
112
+
113
+ // allow the CSS ':target' pseudo-selector to work properly
114
+ hash: true, onAfter: function(){ location = location; }
115
+ });
116
+ }
117
+ );
118
+ //]]>
119
+ </script>
628
120
  </head>
629
121
  <body>
630
122
  <div id="body">
@@ -633,101 +125,115 @@
633
125
  <hr style="display: none"/>
634
126
  <br style="display: none"/>
635
127
 
128
+
636
129
 
130
+
637
131
  <div id="header">
638
-
132
+
639
133
 
640
- <h1 class="title">Rumai 2.0.2</h1>
641
134
 
642
- <h2 class="subtitle">Ruby interface to the wmii window manager</h2>
135
+ <h1 class="title">Rumai 2.1.0</h1>
643
136
 
644
- <h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
137
+ <h2 class="subtitle">Ruby interface to the wmii window manager</h2>
645
138
 
646
- <h3 class="date">26 February 2009</h3>
647
-
139
+ <h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
140
+
141
+ <h3 class="date">09 May 2009</h3>
142
+
143
+
648
144
  </div>
145
+
649
146
 
650
147
 
148
+
651
149
 
652
150
 
653
151
  <br style="display: none"/>
654
152
  <hr style="display: none"/>
655
153
  <br style="display: none"/>
656
154
 
657
- <div id="toc">
658
- <a name="Contents"/><div class="nav" id="Contents"><a title="Reverse jump to listing" href="#rev:Contents">&equiv;</a>&#x25B3;&#x25BD;<a title="Jump to this segment" href="#Contents">&#x25CE;</a></div>
659
- <h1 class="title">Contents</h1>
660
- <ul>
661
- <li>1&nbsp;&nbsp;<a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1&nbsp;&nbsp;<a id="rev:Logistics" href="#Logistics">Logistics</a><ul><li><a id="rev:Version-numbers" href="#Version-numbers">Version numbers</a></li></ul></li><li>1.2&nbsp;&nbsp;<a id="rev:License" href="#License">License</a></li><li>1.3&nbsp;&nbsp;<a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2&nbsp;&nbsp;<a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2&nbsp;&nbsp;<a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3&nbsp;&nbsp;<a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3&nbsp;&nbsp;<a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="rev:Concepts" href="#Concepts">Concepts</a></li><li>3.2&nbsp;&nbsp;<a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a><ul><li><a id="rev:shell" href="#shell">Interactive shell</a></li></ul></li><li>3.3&nbsp;&nbsp;<a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1&nbsp;&nbsp;<a id="rev:Automated-client-arrangement" href="#Automated-client-arrangement">Automated client arrangement</a></li><li>3.3.2&nbsp;&nbsp;<a id="rev:Multiple-client-grouping" href="#Multiple-client-grouping">Multiple client grouping</a></li><li>3.3.3&nbsp;&nbsp;<a id="rev:Easy-column-manipulation" href="#Easy-column-manipulation">Easy column manipulation</a></li><li>3.3.4&nbsp;&nbsp;<a id="rev:Easy-client-manipulation" href="#Easy-client-manipulation">Easy client manipulation</a></li><li>3.3.5&nbsp;&nbsp;<a id="rev:Traversing-the-file-system" href="#Traversing-the-file-system">Traversing the file system</a></li><li>3.3.6&nbsp;&nbsp;<a id="rev:Available-commands" href="#Available-commands">Available commands</a></li></ul></li><li>3.4&nbsp;&nbsp;<a id="rev:wmiirc" href="#wmiirc">Scripting your wmiirc</a></li></ul></li><li>4&nbsp;&nbsp;<a id="rev:History" href="#History">History</a><ul><li>4.1&nbsp;&nbsp;<a id="rev:Version-2.0.2-2009-02-26" href="#Version-2.0.2-2009-02-26">Version 2.0.2 (2009-02-26)</a><ul><li><a id="rev:Bug-fixes" href="#Bug-fixes">Bug fixes</a></li></ul></li><li>4.2&nbsp;&nbsp;<a id="rev:Version-2.0.1-2009-01-25" href="#Version-2.0.1-2009-01-25">Version 2.0.1 (2009-01-25)</a><ul><li><a id="rev:Bug-fixes-613723658" href="#Bug-fixes-613723658">Bug fixes</a></li><li><a id="rev:Housekeeping" href="#Housekeeping">Housekeeping</a></li></ul></li></ul></li>
662
155
 
663
- </ul>
664
- </div>
156
+ <div id="toc">
157
+ <a name="Contents"/><div class="nav" id="Contents"><a title="Focus this segment" href="#Contents"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Return to listing" href="#rev:Contents"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
158
+ <h1 class="title">Contents</h1>
159
+ <ul><li>1&nbsp;&nbsp;<a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1&nbsp;&nbsp;<a id="rev:Logistics" href="#Logistics">Logistics</a><ul><li><a id="rev:Version-numbers" href="#Version-numbers">Version numbers</a></li></ul></li><li>1.2&nbsp;&nbsp;<a id="rev:License" href="#License">License</a></li><li>1.3&nbsp;&nbsp;<a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2&nbsp;&nbsp;<a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2&nbsp;&nbsp;<a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3&nbsp;&nbsp;<a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3&nbsp;&nbsp;<a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="rev:Concepts" href="#Concepts">Concepts</a></li><li>3.2&nbsp;&nbsp;<a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a><ul><li><a id="rev:shell" href="#shell">Interactive shell</a></li></ul></li><li>3.3&nbsp;&nbsp;<a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1&nbsp;&nbsp;<a id="rev:Automated-client-arrangement" href="#Automated-client-arrangement">Automated client arrangement</a></li><li>3.3.2&nbsp;&nbsp;<a id="rev:Multiple-client-grouping" href="#Multiple-client-grouping">Multiple client grouping</a></li><li>3.3.3&nbsp;&nbsp;<a id="rev:Easy-column-manipulation" href="#Easy-column-manipulation">Easy column manipulation</a></li><li>3.3.4&nbsp;&nbsp;<a id="rev:Easy-client-manipulation" href="#Easy-client-manipulation">Easy client manipulation</a></li><li>3.3.5&nbsp;&nbsp;<a id="rev:Traversing-the-file-system" href="#Traversing-the-file-system">Traversing the file system</a></li><li>3.3.6&nbsp;&nbsp;<a id="rev:Available-commands" href="#Available-commands">Available commands</a></li></ul></li><li>3.4&nbsp;&nbsp;<a id="rev:wmiirc" href="#wmiirc">Scripting your wmiirc</a></li></ul></li><li>4&nbsp;&nbsp;<a id="rev:History" href="#History">History</a><ul><li>4.1&nbsp;&nbsp;<a id="rev:Version-2.1.0-2009-05-09" href="#Version-2.1.0-2009-05-09">Version 2.1.0 (2009-05-09)</a><ul><li><a id="rev:Thank-you" href="#Thank-you">Thank you</a></li><li><a id="rev:New-features" href="#New-features">New features</a></li><li><a id="rev:Bug-fixes" href="#Bug-fixes">Bug fixes</a></li><li><a id="rev:Housekeeping" href="#Housekeeping">Housekeeping</a></li></ul></li><li>4.2&nbsp;&nbsp;<a id="rev:Version-2.0.2-2009-02-26" href="#Version-2.0.2-2009-02-26">Version 2.0.2 (2009-02-26)</a><ul><li><a id="rev:Thank-you-612635358" href="#Thank-you-612635358">Thank you</a></li><li><a id="rev:Bug-fixes-611988658" href="#Bug-fixes-611988658">Bug fixes</a></li></ul></li><li>4.3&nbsp;&nbsp;<a id="rev:Version-2.0.1-2009-01-25" href="#Version-2.0.1-2009-01-25">Version 2.0.1 (2009-01-25)</a><ul><li><a id="rev:Bug-fixes-612040548" href="#Bug-fixes-612040548">Bug fixes</a></li><li><a id="rev:Housekeeping-612057028" href="#Housekeeping-612057028">Housekeeping</a></li></ul></li></ul></li></ul>
160
+ </div>
665
161
 
666
162
 
667
163
  <br style="display: none"/>
668
164
  <hr style="display: none"/>
669
165
  <br style="display: none"/>
670
166
 
167
+
671
168
  <div id="content">
169
+
170
+
171
+
172
+
672
173
  <div class="chapter">
673
- <a name="Introduction"/><div class="nav" id="Introduction"><a title="Reverse jump to listing" href="#rev:Introduction">&equiv;</a>&#x25B3;<a title="Jump to next segment" href="#Etymology">&#x25BD;</a><a title="Jump to this segment" href="#Introduction">&#x25CE;</a></div>
174
+ <a name="Introduction"/><div class="nav" id="Introduction"><a title="Focus this segment" href="#Introduction"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus next segment" href="#Etymology"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Introduction"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
674
175
  <h1 class="title">
675
176
  Chapter&nbsp;1
676
177
  <br/>
677
178
  <big>Introduction</big>
678
179
  </h1>
679
- <div class="content"><p><p><strong>Rumai</strong> is a <a href='http://ruby-lang.org'>Ruby</a> interface to the <a href='http://www.suckless.org/wiki/wmii'>wmii</a> window manager.</p> <strong>Rumai</strong> is exciting because:</p>
180
+ <div class="content"><p>Rumai is a <a href='http://ruby-lang.org'>Ruby</a> interface to the <a href='http://www.suckless.org/wiki/wmii'>wmii</a> window manager.</p>
680
181
 
681
182
  <ul>
682
- <li>It excels at <em>dynamic arrangement</em> of clients, columns, views, and tags.</li>
183
+ <li>It excels at dynamic arrangement of clients, columns, views, and tags.</li>
683
184
 
684
185
  <li>It provides an <a class="xref" href="#shell" title="Paragraph. &quot;Interactive shell&quot;">interactive shell</a> for live entertainment.</li>
685
186
 
686
- <li>It contains a <em>pure Ruby client</em> for the <a href='http://cm.bell-labs.com/magic/man2html/5/intro'>9P2000 protocol</a> on which wmii&#8217;s <a href='http://www.suckless.org/wiki/libs/libixp'>IXP file-system interface</a> is built.</li>
687
- </ul>
688
-
689
- <p>These features distinguish <strong>Rumai</strong> from the competition:</p>
187
+ <li>It contains a pure Ruby client for the <a href='http://cm.bell-labs.com/magic/man2html/5/intro'>9P2000 protocol</a> on which wmii&#8217;s <a href='http://www.suckless.org/wiki/libs/libixp'>IXP file-system interface</a> is built.</li>
188
+ </ul><p> These features distinguish Rumai from the competition:</p>
690
189
 
691
190
  <ul>
692
- <li><a href='http://eigenclass.org/hiki.rb?wmii+ruby'>ruby-wmii</a></li>
191
+ <li><a href='http://libs.suckless.org/r9p'>r9p</a></li>
192
+
193
+ <li><a href='http://rubyforge.org/projects/rii/'>Rii</a></li>
693
194
 
694
- <li><a href='http://'>Rii</a></li>
195
+ <li><a href='http://home.gna.org/rubyixp/'>Ruby-IXP</a></li>
695
196
 
696
- <li><a href='http://'>Ruby-IXP</a></li>
197
+ <li><a href='http://eigenclass.org/hiki.rb?wmii+ruby'>ruby-wmii</a></li>
697
198
  </ul>
698
199
 
699
- <p><div class="paragraph">
700
- <a name="Etymology"/><div class="nav" id="Etymology"><a title="Reverse jump to listing" href="#rev:Etymology">&equiv;</a><a title="Jump to previous segment" href="#Introduction">&#x25B3;</a><a title="Jump to next segment" href="#Logistics">&#x25BD;</a><a title="Jump to this segment" href="#Etymology">&#x25CE;</a></div>
200
+ <div class="paragraph">
201
+ <a name="Etymology"/><div class="nav" id="Etymology"><a title="Focus this segment" href="#Etymology"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Introduction"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Logistics"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Etymology"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
701
202
  <p class="title">Etymology</p>
702
203
  <div class="content"><p>The word &#8220;wmii&#8221; is incredibly difficult to pronounce because it is an abbreviation, not an acronym. If we were to treat it as an acronym, the closest pronounciation would be, in my mind, something like &#8220;vim-eye&#8221;.</p>
703
204
 
704
205
  <p>Since this is a Ruby library, I added a &#8220;roo&#8221; and worked it through:</p>
705
206
 
706
- <pre>vim-eye
707
- roo-vim-eye
708
- roovm-eye
709
- roo-mai</pre>
207
+ <ul>
208
+ <li>vim-eye</li>
209
+
210
+ <li>roo-vim-eye</li>
211
+
212
+ <li>roovm-eye</li>
213
+ </ul>
710
214
 
711
215
  <p>And thus we get &#8220;Rumai&#8221;.</p></div>
712
- </div> <div class="section">
713
- <a name="Logistics"/><div class="nav" id="Logistics"><a title="Reverse jump to listing" href="#rev:Logistics">&equiv;</a><a title="Jump to previous segment" href="#Etymology">&#x25B3;</a><a title="Jump to next segment" href="#Version-numbers">&#x25BD;</a><a title="Jump to this segment" href="#Logistics">&#x25CE;</a></div>
216
+ </div><div class="section">
217
+ <a name="Logistics"/><div class="nav" id="Logistics"><a title="Focus this segment" href="#Logistics"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Etymology"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Version-numbers"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Logistics"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
714
218
  <h2 class="title">
715
219
  1.1&nbsp;&nbsp;Logistics
716
220
  </h2>
717
221
  <div class="content"><ul>
718
222
  <li><a class="xref" href="#History" title="Chapter 4. &quot;History&quot;">Release notes</a> &#8212; history of project releases.</li>
719
223
 
720
- <li><a href='http://github.com/sunaku/rumai'>Source code</a> &#8212; obtain via <a href='http://git.or.cz'>Git</a> or browse online.</li>
224
+ <li><a href='http://github.com/sunaku/rumai'>Source code</a> &#8212; obtain via <a href='http://git-scm.com'>Git</a> or browse online.</li>
225
+
226
+ <li><a href='./api/index.html'>API reference</a> &#8212; documentation for source code.</li>
721
227
 
722
- <li><a href='api/index.html'>API reference</a> &#8212; documentation for source code.</li>
228
+ <li><a href='http://snk.tuxfamily.org/lib/rumai/'>Project home</a> &#8212; the Rumai project home page.</li>
723
229
  </ul>
724
230
 
725
231
  <p>To get help or provide feedback, simply <a class="xref" href="#License" title="Section 1.2. &quot;License&quot;">contact the author(s)</a>.</p>
726
232
 
727
- <p><div class="paragraph">
728
- <a name="Version-numbers"/><div class="nav" id="Version-numbers"><a title="Reverse jump to listing" href="#rev:Version-numbers">&equiv;</a><a title="Jump to previous segment" href="#Logistics">&#x25B3;</a><a title="Jump to next segment" href="#License">&#x25BD;</a><a title="Jump to this segment" href="#Version-numbers">&#x25CE;</a></div>
233
+ <div class="paragraph">
234
+ <a name="Version-numbers"/><div class="nav" id="Version-numbers"><a title="Focus this segment" href="#Version-numbers"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Logistics"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#License"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Version-numbers"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
729
235
  <p class="title">Version numbers</p>
730
- <div class="content"><p><strong>Rumai</strong> releases are numbered in <em>major.minor.patch</em> form according to the <a href='http://www.rubygems.org/read/chapter/7'>RubyGems rational versioning policy</a>, which can be summarized thus:</p>
236
+ <div class="content"><p>Rumai releases are numbered in <em>major.minor.patch</em> form according to the <a href='http://www.rubygems.org/read/chapter/7'>RubyGems rational versioning policy</a>, which can be summarized thus:</p>
731
237
  <table border="1">
732
238
  <thead>
733
239
  <tr>
@@ -761,9 +267,9 @@ roo-mai</pre>
761
267
  </tr>
762
268
  </tbody>
763
269
  </table></div>
764
- </div></p></div>
765
- </div> <div class="section">
766
- <a name="License"/><div class="nav" id="License"><a title="Reverse jump to listing" href="#rev:License">&equiv;</a><a title="Jump to previous segment" href="#Version-numbers">&#x25B3;</a><a title="Jump to next segment" href="#Credits">&#x25BD;</a><a title="Jump to this segment" href="#License">&#x25CE;</a></div>
270
+ </div><p></p></div>
271
+ </div><div class="section">
272
+ <a name="License"/><div class="nav" id="License"><a title="Focus this segment" href="#License"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Version-numbers"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Credits"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:License"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
767
273
  <h2 class="title">
768
274
  1.2&nbsp;&nbsp;License
769
275
  </h2>
@@ -774,40 +280,44 @@ roo-mai</pre>
774
280
  <p>Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.</p>
775
281
 
776
282
  <p>THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221; AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 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.</p></div>
777
- </div> <div class="section">
778
- <a name="Credits"/><div class="nav" id="Credits"><a title="Reverse jump to listing" href="#rev:Credits">&equiv;</a><a title="Jump to previous segment" href="#License">&#x25B3;</a><a title="Jump to next segment" href="#Setup">&#x25BD;</a><a title="Jump to this segment" href="#Credits">&#x25CE;</a></div>
283
+ </div><div class="section">
284
+ <a name="Credits"/><div class="nav" id="Credits"><a title="Focus this segment" href="#Credits"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#License"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Setup"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Credits"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
779
285
  <h2 class="title">
780
286
  1.3&nbsp;&nbsp;Credits
781
287
  </h2>
782
- <div class="content"><p><strong>Rumai</strong> is made possible by <a class="xref" href="#History" title="Chapter 4. &quot;History&quot;">contributions</a> from users like you:</p>
288
+ <div class="content"><p>Rumai is made possible by <a class="xref" href="#History" title="Chapter 4. &quot;History&quot;">contributions</a> from users like you:</p>
783
289
 
784
290
  <ul>
291
+ <li>Michael Andrus</li>
292
+
785
293
  <li><a href='http://github.com/Tass'>Simon Hafner</a></li>
786
294
  </ul></div>
787
- </div></p></div>
788
- </div><div class="chapter">
789
- <a name="Setup"/><div class="nav" id="Setup"><a title="Reverse jump to listing" href="#rev:Setup">&equiv;</a><a title="Jump to previous segment" href="#Credits">&#x25B3;</a><a title="Jump to next segment" href="#Requirements">&#x25BD;</a><a title="Jump to this segment" href="#Setup">&#x25CE;</a></div>
295
+ </div><p> </p></div>
296
+ </div>
297
+
298
+ <div class="chapter">
299
+ <a name="Setup"/><div class="nav" id="Setup"><a title="Focus this segment" href="#Setup"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Credits"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Requirements"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Setup"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
790
300
  <h1 class="title">
791
301
  Chapter&nbsp;2
792
302
  <br/>
793
303
  <big>Setup</big>
794
304
  </h1>
795
- <div class="content"><p><div class="section">
796
- <a name="Requirements"/><div class="nav" id="Requirements"><a title="Reverse jump to listing" href="#rev:Requirements">&equiv;</a><a title="Jump to previous segment" href="#Setup">&#x25B3;</a><a title="Jump to next segment" href="#Installation">&#x25BD;</a><a title="Jump to this segment" href="#Requirements">&#x25CE;</a></div>
305
+ <div class="content"><div class="section">
306
+ <a name="Requirements"/><div class="nav" id="Requirements"><a title="Focus this segment" href="#Requirements"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Setup"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Installation"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Requirements"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
797
307
  <h2 class="title">
798
308
  2.1&nbsp;&nbsp;Requirements
799
309
  </h2>
800
- <div class="content"><p>Your system needs the following software to run <strong>Rumai</strong>.</p>
310
+ <div class="content"><p>Your system needs the following software to run Rumai.</p>
801
311
  <table border="1"><thead><tr><th>Software</th><th>Description</th><th>Notes</th></tr></thead><tbody><tr><td style='text-align: left;'><a href='http://ruby-lang.org'>Ruby</a></td><td style='text-align: left;'>Ruby language interpreter</td><td style='text-align: left;'>Version 1.8.6 or newer is required.</td>
802
312
  </tr><tr><td style='text-align: left;'><a href='http://rubygems.org'>RubyGems</a></td><td style='text-align: left;'>Ruby packaging system</td><td style='text-align: left;'>Version 1.3.1 or newer is required.</td>
803
313
  </tr><tr><td style='text-align: left;'><a href='http://www.suckless.org/wiki/wmii'>wmii</a></td><td style='text-align: left;'>Window manager</td><td style='text-align: left;'>Version 3.6 or newer is required.</td>
804
314
  </tr></tbody></table></div>
805
- </div> <div class="section">
806
- <a name="Installation"/><div class="nav" id="Installation"><a title="Reverse jump to listing" href="#rev:Installation">&equiv;</a><a title="Jump to previous segment" href="#Requirements">&#x25B3;</a><a title="Jump to next segment" href="#Manifest">&#x25BD;</a><a title="Jump to this segment" href="#Installation">&#x25CE;</a></div>
315
+ </div><div class="section">
316
+ <a name="Installation"/><div class="nav" id="Installation"><a title="Focus this segment" href="#Installation"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Requirements"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Manifest"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Installation"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
807
317
  <h2 class="title">
808
318
  2.2&nbsp;&nbsp;Installation
809
319
  </h2>
810
- <div class="content"><p>You can install <strong>Rumai</strong> by running this command:</p>
320
+ <div class="content"><p>You can install Rumai by running this command:</p>
811
321
 
812
322
  <pre>gem install rumai</pre>
813
323
 
@@ -817,19 +327,19 @@ roo-mai</pre>
817
327
 
818
328
  <p>If the installation was successful, you will see output like this:</p>
819
329
 
820
- <p><pre>project: Rumai
821
- version: 2.0.2
822
- release: 2009-02-26
823
- website: http://snk.tuxfamily.org/lib/rumai
824
- install: /home/sun/src/rumai</pre></p>
330
+ <pre>project: Rumai
331
+ version: 2.1.0
332
+ release: 2009-05-09
333
+ website: http://snk.tuxfamily.org/lib/rumai/
334
+ install: /home/sun/src/rumai</pre><p></p>
825
335
 
826
336
  <p>If you do not see such output, you may <a class="xref" href="#License" title="Section 1.2. &quot;License&quot;">ask the author(s)</a> for help.</p></div>
827
- </div> <div class="section">
828
- <a name="Manifest"/><div class="nav" id="Manifest"><a title="Reverse jump to listing" href="#rev:Manifest">&equiv;</a><a title="Jump to previous segment" href="#Installation">&#x25B3;</a><a title="Jump to next segment" href="#Usage">&#x25BD;</a><a title="Jump to this segment" href="#Manifest">&#x25CE;</a></div>
337
+ </div><div class="section">
338
+ <a name="Manifest"/><div class="nav" id="Manifest"><a title="Focus this segment" href="#Manifest"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Installation"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Usage"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Manifest"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
829
339
  <h2 class="title">
830
340
  2.3&nbsp;&nbsp;Manifest
831
341
  </h2>
832
- <div class="content"><p>You will see the following items inside <strong>Rumai</strong>&#8217;s installation directory, whose path you can determine by running this command:</p>
342
+ <div class="content"><p>You will see the following items inside Rumai&#8217;s installation directory, whose path you can determine by running this command:</p>
833
343
 
834
344
  <pre>rumai --version</pre>
835
345
 
@@ -838,7 +348,7 @@ install: /home/sun/src/rumai</pre></p>
838
348
  <p><tt>bin/</tt></p>
839
349
 
840
350
  <ul>
841
- <li><tt>rumai</tt> &#8212; the main <strong>Rumai</strong> executable.</li>
351
+ <li><tt>rumai</tt> &#8212; the main Rumai executable.</li>
842
352
  </ul>
843
353
  </li>
844
354
 
@@ -847,7 +357,7 @@ install: /home/sun/src/rumai</pre></p>
847
357
 
848
358
  <ul>
849
359
  <li>
850
- <p><tt>rumai.rb</tt> &#8212; the main <strong>Rumai</strong> library.</p>
360
+ <p><tt>rumai.rb</tt> &#8212; the main Rumai library.</p>
851
361
  </li>
852
362
 
853
363
  <li>
@@ -878,50 +388,66 @@ install: /home/sun/src/rumai</pre></p>
878
388
  <p><tt>LICENSE</tt> &#8212; copyright notice and legal conditions.</p>
879
389
  </li>
880
390
  </ul></div>
881
- </div></p></div>
882
- </div><div class="chapter">
883
- <a name="Usage"/><div class="nav" id="Usage"><a title="Reverse jump to listing" href="#rev:Usage">&equiv;</a><a title="Jump to previous segment" href="#Manifest">&#x25B3;</a><a title="Jump to next segment" href="#Concepts">&#x25BD;</a><a title="Jump to this segment" href="#Usage">&#x25CE;</a></div>
391
+ </div><p> </p></div>
392
+ </div>
393
+
394
+ <div class="chapter">
395
+ <a name="Usage"/><div class="nav" id="Usage"><a title="Focus this segment" href="#Usage"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Manifest"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Concepts"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Usage"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
884
396
  <h1 class="title">
885
397
  Chapter&nbsp;3
886
398
  <br/>
887
399
  <big>Usage</big>
888
400
  </h1>
889
- <div class="content"><p><div class="section">
890
- <a name="Concepts"/><div class="nav" id="Concepts"><a title="Reverse jump to listing" href="#rev:Concepts">&equiv;</a><a title="Jump to previous segment" href="#Usage">&#x25B3;</a><a title="Jump to next segment" href="#Command-line-interface">&#x25BD;</a><a title="Jump to this segment" href="#Concepts">&#x25CE;</a></div>
401
+ <div class="content"><div class="section">
402
+ <a name="Concepts"/><div class="nav" id="Concepts"><a title="Focus this segment" href="#Concepts"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Usage"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Command-line-interface"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Concepts"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
891
403
  <h2 class="title">
892
404
  3.1&nbsp;&nbsp;Concepts
893
405
  </h2>
894
- <div class="content"><p>If you wish to wield the power of <strong>Rumai</strong> more effectively, you should understand the following basic concepts:</p>
406
+ <div class="content"><dl>
407
+ <dt>Client</dt>
895
408
 
896
- <ul>
897
- <li>
898
- <p>A <em>client</em> is any graphical program that is running in your X session. In other words, any <em>window</em> in your wmii session is a <em>client</em>.</p>
899
- </li>
409
+ <dd>
410
+ <p>Any graphical program (a &#8220;window&#8221;) that is running in your X session.</p>
411
+ </dd>
900
412
 
901
- <li>
902
- <p>A <em>tag</em> is an arbitrary string (a label) that can be associated with one or more clients.</p>
903
- </li>
413
+ <dt>Tag</dt>
904
414
 
905
- <li>
906
- <p>A <em>view</em> is a graphical representation of a <em>tag</em>. It shows all clients associated with a particular tag.</p>
907
- </li>
415
+ <dd>
416
+ <p>An arbitrary label that can be associated with one or more clients.</p>
417
+ </dd>
908
418
 
909
- <li>
910
- <p>An <em>area</em> is a region inside a <em>view</em>. It contains clients.</p>
419
+ <dt>View</dt>
420
+
421
+ <dd>
422
+ <p>A visualization of a particular tag. A &#8220;workspace&#8221;.</p>
423
+ </dd>
424
+
425
+ <dt>Area</dt>
426
+
427
+ <dd>
428
+ <p>A region inside a view. It can contain clients.</p>
429
+ </dd>
430
+
431
+ <dt>Managed area, column</dt>
432
+
433
+ <dd>
434
+ <p>An area whose clients cannot overlap each other.</p>
435
+ </dd>
436
+
437
+ <dt>Floating area</dt>
438
+
439
+ <dd>
440
+ <p>An area whose clients:</p>
911
441
 
912
442
  <ul>
913
- <li>
914
- <p>A <em>managed area</em> or <em>column</em> is a region where clients cannot overlap each other.</p>
915
- </li>
443
+ <li>can overlap each other</li>
916
444
 
917
- <li>
918
- <p>The <em>floating area</em> is an area whose clients (1) can overlap each other and (2) <em>float above</em> the managed areas.</p>
919
- </li>
445
+ <li>float above clients in the managed areas</li>
920
446
  </ul>
921
- </li>
922
- </ul></div>
923
- </div> <div class="section">
924
- <a name="Command-line-interface"/><div class="nav" id="Command-line-interface"><a title="Reverse jump to listing" href="#rev:Command-line-interface">&equiv;</a><a title="Jump to previous segment" href="#Concepts">&#x25B3;</a><a title="Jump to next segment" href="#shell">&#x25BD;</a><a title="Jump to this segment" href="#Command-line-interface">&#x25CE;</a></div>
447
+ </dd>
448
+ </dl></div>
449
+ </div><div class="section">
450
+ <a name="Command-line-interface"/><div class="nav" id="Command-line-interface"><a title="Focus this segment" href="#Command-line-interface"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Concepts"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#shell"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Command-line-interface"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
925
451
  <h2 class="title">
926
452
  3.2&nbsp;&nbsp;Command-line interface
927
453
  </h2>
@@ -931,16 +457,16 @@ install: /home/sun/src/rumai</pre></p>
931
457
 
932
458
  <p>You will see this output:</p>
933
459
 
934
- <p><pre>Rumai - Ruby interface to the wmii window manager
460
+ <pre>Rumai - Ruby interface to the wmii window manager
935
461
 
936
462
  This program is an interactive shell for Rumai.
937
463
 
938
464
  Usage:
939
465
 
940
466
  rumai [Options]
941
- rumai [Options] -- irb_args
467
+ rumai [Options] -- Arguments
942
468
 
943
- irb_args: Command-line options and arguments that should
469
+ Arguments: Command-line options and arguments that should
944
470
  be passed to `irb`, the interactive Ruby shell.
945
471
 
946
472
  Options:
@@ -948,10 +474,10 @@ Options:
948
474
  --manual, -m: Show the user manual
949
475
  --locale, -l &lt;s&gt;: Set preferred language
950
476
  --version, -v: Print version and exit
951
- --help, -h: Show this message</pre></p>
477
+ --help, -h: Show this message</pre><p></p>
952
478
 
953
- <p><div class="paragraph">
954
- <a name="shell"/><div class="nav" id="shell"><a title="Reverse jump to listing" href="#rev:shell">&equiv;</a><a title="Jump to previous segment" href="#Command-line-interface">&#x25B3;</a><a title="Jump to next segment" href="#Tutorial">&#x25BD;</a><a title="Jump to this segment" href="#shell">&#x25CE;</a></div>
479
+ <div class="paragraph">
480
+ <a name="shell"/><div class="nav" id="shell"><a title="Focus this segment" href="#shell"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Command-line-interface"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Tutorial"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:shell"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
955
481
  <p class="title">Interactive shell</p>
956
482
  <div class="content"><p>When you run this command:</p>
957
483
 
@@ -961,296 +487,443 @@ Options:
961
487
 
962
488
  <pre>irb(Rumai):001:0&gt;</pre>
963
489
 
964
- <p>The <tt>irb(Rumai)</tt> token in the command prompt indicates that commands will be evaluated <em>inside</em> the <code class="code"><span style="color:#036;font-weight:bold">Rumai</span></code> module. As a result, you can omit the &#8220;Rumai&#8221; prefix from your commands if you wish.</p>
490
+ <p>The <tt>irb(Rumai)</tt> token in the command prompt indicates that commands will be evaluated <em>inside</em> the <code class="line"><span style="color:#036;font-weight:bold">Rumai</span></code> module. As a result, you can omit the &#8220;Rumai&#8221; prefix from your commands if you wish.</p>
965
491
 
966
- <p>For example, to get the current client object, you can type <code class="code">curr_client</code> instead of having to type <code class="code"><span style="color:#036;font-weight:bold">Rumai</span>.curr_client</code> at the prompt. Both commands achieve the same effect.</p>
492
+ <p>For example, to get the current client object, you can type <code class="line">curr_client</code> instead of having to type <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>.curr_client</code> at the prompt. Both commands achieve the same effect.</p>
967
493
 
968
494
  <p>The next thing to note is that <strong>tab completion</strong> is enabled by default. So you can type part of a command and press the TAB key to see a list of possible completions.</p></div>
969
- </div></p></div>
970
- </div> <div class="section">
971
- <a name="Tutorial"/><div class="nav" id="Tutorial"><a title="Reverse jump to listing" href="#rev:Tutorial">&equiv;</a><a title="Jump to previous segment" href="#shell">&#x25B3;</a><a title="Jump to next segment" href="#Automated-client-arrangement">&#x25BD;</a><a title="Jump to this segment" href="#Tutorial">&#x25CE;</a></div>
495
+ </div><p></p></div>
496
+ </div><div class="section">
497
+ <a name="Tutorial"/><div class="nav" id="Tutorial"><a title="Focus this segment" href="#Tutorial"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#shell"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Automated-client-arrangement"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Tutorial"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
972
498
  <h2 class="title">
973
499
  3.3&nbsp;&nbsp;Tutorial
974
500
  </h2>
975
- <div class="content"><p>Now that you know <a class="xref" href="#shell" title="Paragraph. &quot;Interactive shell&quot;">how to start the interactive shell</a>, let us walk through a quick demonstration that highlights the main features of <strong>Rumai</strong>. You can follow along by copying &amp; pasting the presented commands into the interactive shell.</p>
501
+ <div class="content"><p>Now that you know <a class="xref" href="#shell" title="Paragraph. &quot;Interactive shell&quot;">how to start the interactive shell</a>, let us walk through a quick demonstration that highlights the main features of Rumai. You can follow along by copying &amp; pasting the presented commands into the interactive shell.</p>
976
502
 
977
- <p><div class="section">
978
- <a name="Automated-client-arrangement"/><div class="nav" id="Automated-client-arrangement"><a title="Reverse jump to listing" href="#rev:Automated-client-arrangement">&equiv;</a><a title="Jump to previous segment" href="#Tutorial">&#x25B3;</a><a title="Jump to next segment" href="#Multiple-client-grouping">&#x25BD;</a><a title="Jump to this segment" href="#Automated-client-arrangement">&#x25CE;</a></div>
503
+ <div class="section">
504
+ <a name="Automated-client-arrangement"/><div class="nav" id="Automated-client-arrangement"><a title="Focus this segment" href="#Automated-client-arrangement"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Tutorial"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Multiple-client-grouping"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Automated-client-arrangement"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
979
505
  <h3 class="title">
980
506
  3.3.1&nbsp;&nbsp;Automated client arrangement
981
507
  </h3>
982
- <div class="content"><p>Launch a few terminals so that we have something to work with: <pre class="code">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
508
+ <div class="content"><p>Launch a few terminals so that we have something to work with: <ins><pre class="para">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
983
509
  colors.each {|c| system <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">xterm -bg </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -title </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -e read &amp;</span><span style="color:#710">&quot;</span></span> }
984
- </pre></p>
510
+ </pre></ins></p>
511
+
512
+ <p>Arrange all clients in a grid:</p>
985
513
 
986
- <p>Arrange all clients in a grid: <pre class="code">curr_view.arrange_in_grid
987
- </pre></p>
514
+ <p><ins><pre class="para">curr_view.arrange_in_grid
515
+ </pre></ins></p>
988
516
 
989
- <p>Arrange all clients in a diamond shape: <pre class="code">curr_view.arrange_in_diamond
990
- </pre></p>
517
+ <p>Arrange all clients in a diamond shape:</p>
991
518
 
992
- <p>Arrange all clients like LarsWM does: <pre class="code">curr_view.arrange_as_larswm
993
- </pre></p>
519
+ <p><ins><pre class="para">curr_view.arrange_in_diamond
520
+ </pre></ins></p>
994
521
 
995
- <p>Close the terminals we launched earlier: <pre class="code">terms = curr_view.clients.select {|c| colors.include? c.label.read }
522
+ <p>Arrange all clients like LarsWM does:</p>
523
+
524
+ <p><ins><pre class="para">curr_view.arrange_as_larswm
525
+ </pre></ins></p>
526
+
527
+ <p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
996
528
  terms.each {|c| c.kill }
997
- </pre></p></div>
998
- </div> <div class="section">
999
- <a name="Multiple-client-grouping"/><div class="nav" id="Multiple-client-grouping"><a title="Reverse jump to listing" href="#rev:Multiple-client-grouping">&equiv;</a><a title="Jump to previous segment" href="#Automated-client-arrangement">&#x25B3;</a><a title="Jump to next segment" href="#Easy-column-manipulation">&#x25BD;</a><a title="Jump to this segment" href="#Multiple-client-grouping">&#x25CE;</a></div>
529
+ </pre></ins></p></div>
530
+ </div><div class="section">
531
+ <a name="Multiple-client-grouping"/><div class="nav" id="Multiple-client-grouping"><a title="Focus this segment" href="#Multiple-client-grouping"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Automated-client-arrangement"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Easy-column-manipulation"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Multiple-client-grouping"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1000
532
  <h3 class="title">
1001
533
  3.3.2&nbsp;&nbsp;Multiple client grouping
1002
534
  </h3>
1003
- <div class="content"><p>Launch a few terminals so that we have something to work with: <pre class="code">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
535
+ <div class="content"><p>Launch a few terminals so that we have something to work with: <ins><pre class="para">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
1004
536
  colors.each {|c| system <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">xterm -bg </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -title </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -e read &amp;</span><span style="color:#710">&quot;</span></span> }
1005
- </pre></p>
537
+ </pre></ins></p>
538
+
539
+ <p>Add the red, green, and blue terminals into the &#8220;grouping&#8221;:</p>
1006
540
 
1007
- <p>Add the red, green, and blue terminals into the &#8220;grouping&#8221;: <pre class="code">terms = curr_view.clients.select {|c| <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style="">red green blue</span><span style="color:#710">]</span></span>.include? c.label.read }
541
+ <p><ins><pre class="para">terms = curr_view.clients.select {|c| <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style="">red green blue</span><span style="color:#710">]</span></span>.include? c.label.read }
1008
542
  terms.each {|c| c.group }
1009
- </pre></p>
543
+ </pre></ins></p>
1010
544
 
1011
- <p>You should now see a new button labelled as &#8221;<notextile>@</notextile>&#8221; on the left-hand side of wmii&#8217;s bar, indicating that there is now a new view labelled &#8221;<notextile>@</notextile>&#8221; in wmii. Let us inspect what clients this mysterious view contains: <pre class="code">v = <span style="color:#036;font-weight:bold">View</span>.new <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">@</span><span style="color:#710">&quot;</span></span>
545
+ <p>You should now see a new button labelled as &#8221;@&#8221; on the left-hand side of wmii&#8217;s bar, indicating that there is now a new view labelled &#8221;@&#8221; in wmii. Let us inspect what clients this mysterious view contains:</p>
546
+
547
+ <p><ins><pre class="para">v = <span style="color:#036;font-weight:bold">View</span>.new <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">@</span><span style="color:#710">&quot;</span></span>
1012
548
  puts v.clients.map {|c| c.label.read }
1013
- </pre></p>
549
+ </pre></ins></p>
1014
550
 
1015
551
  <p>Aha! The mysterious view contains the red, green, and blue clients we recently &#8220;grouped&#8221;. Thus, by adding a client to the &#8220;grouping&#8221;, we are simply tagging the client with the &#8221;@&#8221; token.</p>
1016
552
 
1017
- <p>Now that we have put some clients into the &#8220;grouping&#8221;, let us move all clients in the grouping to the floating area in the current view: <pre class="code">grouping.each {|c| c.send <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">toggle</span><span style="color:#710">&quot;</span></span> }
1018
- </pre></p>
553
+ <p>Now that we have put some clients into the &#8220;grouping&#8221;, let us move all clients in the grouping to the floating area in the current view:</p>
554
+
555
+ <p><ins><pre class="para">grouping.each {|c| c.send <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">toggle</span><span style="color:#710">&quot;</span></span> }
556
+ </pre></ins></p>
1019
557
 
1020
- <p>Neat! Let us bring them back into the managed area: <pre class="code">grouping.each {|c| c.send <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">toggle</span><span style="color:#710">&quot;</span></span> }
1021
- </pre></p>
558
+ <p>Neat! Let us bring them back into the managed area:</p>
1022
559
 
1023
- <p>Close the terminals we launched earlier: <pre class="code">terms = curr_view.clients.select {|c| colors.include? c.label.read }
560
+ <p><ins><pre class="para">grouping.each {|c| c.send <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">toggle</span><span style="color:#710">&quot;</span></span> }
561
+ </pre></ins></p>
562
+
563
+ <p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
1024
564
  terms.each {|c| c.kill }
1025
- </pre></p>
565
+ </pre></ins></p>
1026
566
 
1027
567
  <p>In summary, you can select multiple clients (by adding them to the &#8220;grouping&#8221;) and perform operations on them. This is useful when you want to do something with a group of clients but do not want to manually focus one, perform the action, focus the next one, and so on.</p>
1028
568
 
1029
569
  <p>Another important aspect is that selected clients stay selected until they are unselected. This allows you to continue performing tasks on the selection without having to reselect the same clients after every operation.</p></div>
1030
- </div> <div class="section">
1031
- <a name="Easy-column-manipulation"/><div class="nav" id="Easy-column-manipulation"><a title="Reverse jump to listing" href="#rev:Easy-column-manipulation">&equiv;</a><a title="Jump to previous segment" href="#Multiple-client-grouping">&#x25B3;</a><a title="Jump to next segment" href="#Easy-client-manipulation">&#x25BD;</a><a title="Jump to this segment" href="#Easy-column-manipulation">&#x25CE;</a></div>
570
+ </div><div class="section">
571
+ <a name="Easy-column-manipulation"/><div class="nav" id="Easy-column-manipulation"><a title="Focus this segment" href="#Easy-column-manipulation"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Multiple-client-grouping"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Easy-client-manipulation"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Easy-column-manipulation"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1032
572
  <h3 class="title">
1033
573
  3.3.3&nbsp;&nbsp;Easy column manipulation
1034
574
  </h3>
1035
- <div class="content"><p>Launch a few terminals so that we have something to work with: <pre class="code">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
575
+ <div class="content"><p>Launch a few terminals so that we have something to work with: <ins><pre class="para">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
1036
576
  colors.each {|c| system <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">xterm -bg </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -title </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -e read &amp;</span><span style="color:#710">&quot;</span></span> }
1037
- </pre></p>
577
+ </pre></ins></p>
1038
578
 
1039
579
  <p>You can insert a group of clients to the top, bottom, or after the currently focused client of <em>any</em> column using Array-like methods.</p>
1040
580
 
1041
- <p>Give each client its own column (one client per column): <pre class="code">curr_view.each_column {|c| c.length = <span style="color:#00D;font-weight:bold">1</span> }
1042
- </pre></p>
581
+ <p>Give each client its own column (one client per column):</p>
582
+
583
+ <p><ins><pre class="para">curr_view.each_column {|c| c.length = <span style="color:#00D;font-weight:bold">1</span> }
584
+ </pre></ins></p>
585
+
586
+ <p>Put (at most) three clients in every column:</p>
587
+
588
+ <p><ins><pre class="para">curr_view.each_column {|c| c.length = <span style="color:#00D;font-weight:bold">3</span> }
589
+ </pre></ins></p>
1043
590
 
1044
- <p>Put (at most) three clients in every column: <pre class="code">curr_view.each_column {|c| c.length = <span style="color:#00D;font-weight:bold">3</span> }
1045
- </pre></p>
591
+ <p>Move the red, green, and blue clients into the floating area:</p>
1046
592
 
1047
- <p>Move the red, green, and blue clients into the floating area: <pre class="code">rgb = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style="">red green blue</span><span style="color:#710">]</span></span>
593
+ <p><ins><pre class="para">rgb = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style="">red green blue</span><span style="color:#710">]</span></span>
1048
594
  terms = curr_view.clients.select {|c| rgb.include? c.label.read }
1049
595
  curr_view.areas[<span style="color:#00D;font-weight:bold">0</span>].push terms
1050
- </pre></p>
596
+ </pre></ins></p>
1051
597
 
1052
- <p>Slurp all floating clients into the last column: <pre class="code">list = curr_view.areas
598
+ <p>Slurp all floating clients into the last column:</p>
599
+
600
+ <p><ins><pre class="para">list = curr_view.areas
1053
601
  a, b = list.first, list.last
1054
602
  b.concat a
1055
- </pre></p>
603
+ </pre></ins></p>
604
+
605
+ <p>Set the last column&#8217;s layout to stacking mode:</p>
606
+
607
+ <p><ins><pre class="para">b.layout = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">stack</span><span style="color:#710">'</span></span>
608
+ </pre></ins></p>
1056
609
 
1057
- <p>Set the last column&#8217;s layout to stacking mode: <pre class="code">b.layout = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">stack</span><span style="color:#710">'</span></span>
1058
- </pre></p>
610
+ <p>Move the red, green, and blue clients to the top of the second column:</p>
1059
611
 
1060
- <p>Move the red, green, and blue clients to the top of the second column: <pre class="code">curr_view.areas[<span style="color:#00D;font-weight:bold">2</span>].unshift terms
1061
- </pre></p>
612
+ <p><ins><pre class="para">curr_view.areas[<span style="color:#00D;font-weight:bold">2</span>].unshift terms
613
+ </pre></ins></p>
1062
614
 
1063
- <p>Move the red, green, and blue clients to the bottom of the third column: <pre class="code">curr_view.areas[<span style="color:#00D;font-weight:bold">3</span>].push terms
1064
- </pre></p>
615
+ <p>Move the red, green, and blue clients to the bottom of the third column:</p>
1065
616
 
1066
- <p>Close the terminals we launched earlier: <pre class="code">terms = curr_view.clients.select {|c| colors.include? c.label.read }
617
+ <p><ins><pre class="para">curr_view.areas[<span style="color:#00D;font-weight:bold">3</span>].push terms
618
+ </pre></ins></p>
619
+
620
+ <p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
1067
621
  terms.each {|c| c.kill }
1068
- </pre></p></div>
1069
- </div> <div class="section">
1070
- <a name="Easy-client-manipulation"/><div class="nav" id="Easy-client-manipulation"><a title="Reverse jump to listing" href="#rev:Easy-client-manipulation">&equiv;</a><a title="Jump to previous segment" href="#Easy-column-manipulation">&#x25B3;</a><a title="Jump to next segment" href="#Traversing-the-file-system">&#x25BD;</a><a title="Jump to this segment" href="#Easy-client-manipulation">&#x25CE;</a></div>
622
+ </pre></ins></p></div>
623
+ </div><div class="section">
624
+ <a name="Easy-client-manipulation"/><div class="nav" id="Easy-client-manipulation"><a title="Focus this segment" href="#Easy-client-manipulation"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Easy-column-manipulation"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Traversing-the-file-system"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Easy-client-manipulation"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1071
625
  <h3 class="title">
1072
626
  3.3.4&nbsp;&nbsp;Easy client manipulation
1073
627
  </h3>
1074
- <div class="content"><p>Launch a few terminals so that we have something to work with: <pre class="code">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
628
+ <div class="content"><p>Launch a few terminals so that we have something to work with: <ins><pre class="para">colors = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style=""> red green blue black orange brown gray navy gold </span><span style="color:#710">]</span></span>
1075
629
  colors.each {|c| system <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">xterm -bg </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -title </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>c<span style="font-weight:bold;color:#777">}</span></span><span style=""> -e read &amp;</span><span style="color:#710">&quot;</span></span> }
1076
- </pre></p>
630
+ </pre></ins></p>
631
+
632
+ <p>Obtain a reference to the red client:</p>
633
+
634
+ <p><ins><pre class="para">red = curr_view.clients.find {|c| c.label.read == <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">red</span><span style="color:#710">&quot;</span></span> }
635
+ </pre></ins></p>
636
+
637
+ <p>Show the red client&#8217;s current tags:</p>
638
+
639
+ <p><ins><pre class="para">red.tags
640
+ </pre></ins></p>
641
+
642
+ <p>Add the &#8220;foo&#8221; and &#8220;bar&#8221; tags to the red client:</p>
1077
643
 
1078
- <p>Obtain a reference to the red client: <pre class="code">red = curr_view.clients.find {|c| c.label.read == <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">red</span><span style="color:#710">&quot;</span></span> }
1079
- </pre></p>
644
+ <p><ins><pre class="para">red.tag <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">foo</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">bar</span><span style="color:#710">&quot;</span></span>
645
+ </pre></ins></p>
1080
646
 
1081
- <p>Show the red client&#8217;s current tags: <pre class="code">red.tags
1082
- </pre></p>
647
+ <p>Remove the &#8220;bar&#8221; tag from the red client:</p>
1083
648
 
1084
- <p>Add the &#8220;foo&#8221; and &#8220;bar&#8221; tags to the red client: <pre class="code">red.tag <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">foo</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">bar</span><span style="color:#710">&quot;</span></span>
1085
- </pre></p>
649
+ <p><ins><pre class="para">red.untag <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">bar</span><span style="color:#710">&quot;</span></span>
650
+ </pre></ins></p>
1086
651
 
1087
- <p>Remove the &#8220;bar&#8221; tag from the red client: <pre class="code">red.untag <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">bar</span><span style="color:#710">&quot;</span></span>
1088
- </pre></p>
652
+ <p>Do complex operations on the red client&#8217;s tags:</p>
1089
653
 
1090
- <p>Do complex operations on the red client&#8217;s tags: <pre class="code">red.with_tags { concat <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style="">a b c</span><span style="color:#710">]</span></span>; push <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">z</span><span style="color:#710">'</span></span>; delete <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">c</span><span style="color:#710">'</span></span> }
1091
- </pre></p>
654
+ <p><ins><pre class="para">red.with_tags { concat <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">%w[</span><span style="">a b c</span><span style="color:#710">]</span></span>; push <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">z</span><span style="color:#710">'</span></span>; delete <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">c</span><span style="color:#710">'</span></span> }
655
+ </pre></ins></p>
1092
656
 
1093
- <p>Focus the next client after the red client: <pre class="code">red.next.focus ; curr_client == red.next <span style="color:#888">#=&gt; true</span>
1094
- </pre></p>
657
+ <p>Focus the next client after the red client:</p>
658
+
659
+ <p><ins><pre class="para">red.next.focus
660
+ curr_client == red.next <span style="color:#888">#=&gt; true</span>
661
+ </pre></ins></p>
1095
662
 
1096
663
  <p>Notice that by focusing a client, we make it the current client.</p>
1097
664
 
1098
- <p>Focus the red client on a different view: <pre class="code">orig = curr_view
665
+ <p>Focus the red client on a different view:</p>
666
+
667
+ <p><ins><pre class="para">orig = curr_view
1099
668
  v = red.views.last
1100
669
  red.focus v
1101
- </pre></p>
670
+ </pre></ins></p>
671
+
672
+ <p>Return to the original view:</p>
1102
673
 
1103
- <p>Return to the original view: <pre class="code">orig.focus
1104
- </pre></p>
674
+ <p><ins><pre class="para">orig.focus
675
+ </pre></ins></p>
1105
676
 
1106
- <p>Send the red client to the last column: <pre class="code">red.send curr_view.areas.last
1107
- </pre></p>
677
+ <p>Send the red client to the last column:</p>
1108
678
 
1109
- <p>Close the terminals we launched earlier: <pre class="code">terms = curr_view.clients.select {|c| colors.include? c.label.read }
679
+ <p><ins><pre class="para">red.send curr_view.areas.last
680
+ </pre></ins></p>
681
+
682
+ <p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
1110
683
  terms.each {|c| c.kill }
1111
- </pre></p></div>
1112
- </div> <div class="section">
1113
- <a name="Traversing-the-file-system"/><div class="nav" id="Traversing-the-file-system"><a title="Reverse jump to listing" href="#rev:Traversing-the-file-system">&equiv;</a><a title="Jump to previous segment" href="#Easy-client-manipulation">&#x25B3;</a><a title="Jump to next segment" href="#Available-commands">&#x25BD;</a><a title="Jump to this segment" href="#Traversing-the-file-system">&#x25CE;</a></div>
684
+ </pre></ins></p></div>
685
+ </div><div class="section">
686
+ <a name="Traversing-the-file-system"/><div class="nav" id="Traversing-the-file-system"><a title="Focus this segment" href="#Traversing-the-file-system"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Easy-client-manipulation"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Available-commands"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Traversing-the-file-system"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1114
687
  <h3 class="title">
1115
688
  3.3.5&nbsp;&nbsp;Traversing the file system
1116
689
  </h3>
1117
- <div class="content"><p>Show the root node of wmii&#8217;s IXP file system: <pre class="code">fs
1118
- </pre></p>
690
+ <div class="content"><p>Show the root node of wmii&#8217;s IXP file system:</p>
691
+
692
+ <p><ins><pre class="para">fs
693
+ </pre></ins></p>
694
+
695
+ <p>Show the names of all files at the root level:</p>
696
+
697
+ <p><ins><pre class="para">fs.entries
698
+ </pre></ins></p>
699
+
700
+ <p>Show the parent of the root node:</p>
701
+
702
+ <p><ins><pre class="para">fs.parent
703
+ </pre></ins></p>
1119
704
 
1120
- <p>Show the names of all files at the root level: <pre class="code">fs.entries
1121
- </pre></p>
705
+ <p>Show the children of the root node:</p>
1122
706
 
1123
- <p>Show the parent of the root node: <pre class="code">fs.parent
1124
- </pre></p>
707
+ <p><ins><pre class="para">fs.children
708
+ </pre></ins></p>
1125
709
 
1126
- <p>Show the children of the root node: <pre class="code">fs.children
1127
- </pre></p>
710
+ <p>Navigate into to the <tt>/lbar/</tt> directory:</p>
1128
711
 
1129
- <p>Navigate into to the <tt>/lbar/</tt> directory: <pre class="code">n1 = fs.lbar
712
+ <p><ins><pre class="para">n1 = fs.lbar
1130
713
  n2 = fs[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">lbar</span><span style="color:#710">'</span></span>]
1131
714
  n1 == n2 <span style="color:#888">#=&gt; true</span>
1132
715
  left_bar = n1
1133
- </pre></p>
716
+ </pre></ins></p>
1134
717
 
1135
- <p>Notice that you can traverse the file system hierarchy by simply calling methods on node objects. Alternatively, you can traverse by specifying an arbitrary sub-path (relative path) using the <code class="code">[]</code> operator on a node.</p>
718
+ <p>Notice that you can traverse the file system hierarchy by simply calling methods on node objects. Alternatively, you can traverse by specifying an arbitrary sub-path (relative path) using the <code class="line">[]</code> operator on a node.</p>
1136
719
 
1137
- <p>Create a new temporary button: <pre class="code">b = left_bar.rumai_example <span style="color:#888"># path of new button</span>
720
+ <p>Create a new temporary button:</p>
721
+
722
+ <p><ins><pre class="para">b = left_bar.rumai_example <span style="color:#888"># path of new button</span>
1138
723
  b.exist? <span style="color:#888">#=&gt; false</span>
1139
724
  b.create
1140
725
  b.exist? <span style="color:#888">#=&gt; true</span>
1141
- </pre></p>
726
+ </pre></ins></p>
1142
727
 
1143
728
  <p>You should now see an empty button on the left-hand side of the wmii bar.</p>
1144
729
 
1145
- <p>Color the button black-on-white and label it as &#8220;hello world&#8221;: <pre class="code">content = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">#000000 #ffffff #000000 hello world</span><span style="color:#710">&quot;</span></span>
730
+ <p>Color the button black-on-white and label it as &#8220;hello world&#8221;:</p>
731
+
732
+ <p><ins><pre class="para">content = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">#000000 #ffffff #000000 hello world</span><span style="color:#710">&quot;</span></span>
1146
733
  b.write content
1147
734
  b.read == content <span style="color:#888">#=&gt; true</span>
1148
- </pre></p>
735
+ </pre></ins></p>
736
+
737
+ <p>Remove the temporary button:</p>
1149
738
 
1150
- <p>Remove the temporary button: <pre class="code">b.remove
739
+ <p><ins><pre class="para">b.remove
1151
740
  b.exist? <span style="color:#888">#=&gt; false</span>
1152
- </pre></p></div>
1153
- </div> <div class="section">
1154
- <a name="Available-commands"/><div class="nav" id="Available-commands"><a title="Reverse jump to listing" href="#rev:Available-commands">&equiv;</a><a title="Jump to previous segment" href="#Traversing-the-file-system">&#x25B3;</a><a title="Jump to next segment" href="#wmiirc">&#x25BD;</a><a title="Jump to this segment" href="#Available-commands">&#x25CE;</a></div>
741
+ </pre></ins></p></div>
742
+ </div><div class="section">
743
+ <a name="Available-commands"/><div class="nav" id="Available-commands"><a title="Focus this segment" href="#Available-commands"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Traversing-the-file-system"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#wmiirc"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Available-commands"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1155
744
  <h3 class="title">
1156
745
  3.3.6&nbsp;&nbsp;Available commands
1157
746
  </h3>
1158
- <div class="content"><p>Refer to the <code class="code"><span style="color:#036;font-weight:bold">Rumai</span></code> module in the <a href='api/index.html'>API documentation</a> for a complete list of commands (method calls, really) and their documentation.</p></div>
1159
- </div></p></div>
1160
- </div> <div class="section">
1161
- <a name="wmiirc"/><div class="nav" id="wmiirc"><a title="Reverse jump to listing" href="#rev:wmiirc">&equiv;</a><a title="Jump to previous segment" href="#Available-commands">&#x25B3;</a><a title="Jump to next segment" href="#History">&#x25BD;</a><a title="Jump to this segment" href="#wmiirc">&#x25CE;</a></div>
747
+ <div class="content"><p>Refer to the <code class="line"><span style="color:#036;font-weight:bold">Rumai</span></code> module in the <a href='api/index.html'>API documentation</a> for a complete list of commands (method calls, really) and their documentation.</p></div>
748
+ </div><p> </p></div>
749
+ </div><div class="section">
750
+ <a name="wmiirc"/><div class="nav" id="wmiirc"><a title="Focus this segment" href="#wmiirc"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Available-commands"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#History"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:wmiirc"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1162
751
  <h2 class="title">
1163
752
  3.4&nbsp;&nbsp;Scripting your wmiirc
1164
753
  </h2>
1165
- <div class="content"><p>One important application of <strong>Rumai</strong> is the support of Ruby-based <tt>wmiirc</tt> configuration files. For a solid example of such application, take a look at <a href='http://github.com/sunaku/wmiirc/tree/master'>my personal <tt>wmiirc</tt></a>.</p></div>
1166
- </div></p></div>
1167
- </div><div class="chapter">
1168
- <a name="History"/><div class="nav" id="History"><a title="Reverse jump to listing" href="#rev:History">&equiv;</a><a title="Jump to previous segment" href="#wmiirc">&#x25B3;</a><a title="Jump to next segment" href="#Version-2.0.2-2009-02-26">&#x25BD;</a><a title="Jump to this segment" href="#History">&#x25CE;</a></div>
754
+ <div class="content"><p>One important application of Rumai is the support of Ruby-based <tt>wmiirc</tt> configuration files. For a solid example of such application, take a look at <a href='http://github.com/sunaku/wmiirc/'>my personal <tt>wmiirc</tt></a>.</p></div>
755
+ </div><p> </p></div>
756
+ </div>
757
+
758
+ <div class="chapter">
759
+ <a name="History"/><div class="nav" id="History"><a title="Focus this segment" href="#History"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#wmiirc"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Version-2.1.0-2009-05-09"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:History"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1169
760
  <h1 class="title">
1170
761
  Chapter&nbsp;4
1171
762
  <br/>
1172
763
  <big>History</big>
1173
764
  </h1>
1174
- <div class="content"><p><p><div class="section">
1175
- <a name="Version-2.0.2-2009-02-26"/><div class="nav" id="Version-2.0.2-2009-02-26"><a title="Reverse jump to listing" href="#rev:Version-2.0.2-2009-02-26">&equiv;</a><a title="Jump to previous segment" href="#History">&#x25B3;</a><a title="Jump to next segment" href="#Bug-fixes">&#x25BD;</a><a title="Jump to this segment" href="#Version-2.0.2-2009-02-26">&#x25CE;</a></div>
765
+ <div class="content"><div class="section">
766
+ <a name="Version-2.1.0-2009-05-09"/><div class="nav" id="Version-2.1.0-2009-05-09"><a title="Focus this segment" href="#Version-2.1.0-2009-05-09"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#History"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Thank-you"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Version-2.1.0-2009-05-09"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1176
767
  <h2 class="title">
1177
- 4.1&nbsp;&nbsp;Version 2.0.2 (2009-02-26)
768
+ 4.1&nbsp;&nbsp;Version 2.1.0 (2009-05-09)
1178
769
  </h2>
1179
- <div class="content"><p>This release fixes a connection bug.</p>
770
+ <div class="content"><p>This release improves client arrangement, fixes several bugs, and cleans up the code.</p>
771
+
772
+ <div class="paragraph">
773
+ <a name="Thank-you"/><div class="nav" id="Thank-you"><a title="Focus this segment" href="#Thank-you"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Version-2.1.0-2009-05-09"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#New-features"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Thank-you"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
774
+ <p class="title">Thank you</p>
775
+ <div class="content"><ul>
776
+ <li>Simon Hafner reported several bugs.</li>
777
+
778
+ <li>Michael Andrus verified bug fixes.</li>
779
+ </ul></div>
780
+ </div><div class="paragraph">
781
+ <a name="New-features"/><div class="nav" id="New-features"><a title="Focus this segment" href="#New-features"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Thank-you"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Bug-fixes"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:New-features"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
782
+ <p class="title">New features</p>
783
+ <div class="content"><ul>
784
+ <li>
785
+ <p>Focus is now restored on the initially focused client after applying <a class="xref" href="#Automated-client-arrangement" title="Section 3.3.1">Automated client arrangement</a>s.</p>
786
+ </li>
1180
787
 
1181
- <p><div class="paragraph">
1182
- <a name="Bug-fixes"/><div class="nav" id="Bug-fixes"><a title="Reverse jump to listing" href="#rev:Bug-fixes">&equiv;</a><a title="Jump to previous segment" href="#Version-2.0.2-2009-02-26">&#x25B3;</a><a title="Jump to next segment" href="#Version-2.0.1-2009-01-25">&#x25BD;</a><a title="Jump to this segment" href="#Bug-fixes">&#x25CE;</a></div>
788
+ <li>
789
+ <p>The push(), insert(), and unshift() instance methods of the <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">Area</span></code> class now preserve the order of inserted clients.</p>
790
+ </li>
791
+
792
+ <li>
793
+ <p>The <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">View</span><span style="color:#888">#arrange_in_grid()</span></code> method now accepts 1 as a parameter. This invocation causes every column to contain at most 1 client.</p>
794
+ </li>
795
+ </ul></div>
796
+ </div><div class="paragraph">
797
+ <a name="Bug-fixes"/><div class="nav" id="Bug-fixes"><a title="Focus this segment" href="#Bug-fixes"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#New-features"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Housekeeping"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Bug-fixes"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1183
798
  <p class="title">Bug fixes</p>
1184
799
  <div class="content"><ul>
1185
800
  <li>
1186
- <p>wmii omits the fractional portion of <code class="code"><span style="color:#d70;font-weight:bold">$DISPLAY</span></code> in its socket file path. Rumai was trying to connect with the entire <code class="code"><span style="color:#d70;font-weight:bold">$DISPLAY</span></code> value (including the fractional portion) and thus could not find wmii&#8217;s socket file.</p>
801
+ <p>Fix error caused by focusing the top/bottom client in the destination area before sending new clients into that area.</p>
802
+ </li>
803
+
804
+ <li>
805
+ <p>Fix error when importing clients into an empty area.</p>
806
+ </li>
807
+ </ul></div>
808
+ </div><div class="paragraph">
809
+ <a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="Focus this segment" href="#Housekeeping"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Bug-fixes"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Version-2.0.2-2009-02-26"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Housekeeping"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
810
+ <p class="title">Housekeeping</p>
811
+ <div class="content"><ul>
812
+ <li>
813
+ <p>Use snake_case instead of camelCase for variable names.</p>
814
+ </li>
1187
815
 
1188
- <p>Thanks to Simon Hafner for helping me debug this.</p>
816
+ <li>
817
+ <p>Add copyright notice at the top of every file.</p>
818
+ </li>
819
+
820
+ <li>
821
+ <p>Plenty of code formatting and beautification.</p>
1189
822
  </li>
1190
823
  </ul></div>
1191
- </div></p></div>
1192
- </div> <div class="section">
1193
- <a name="Version-2.0.1-2009-01-25"/><div class="nav" id="Version-2.0.1-2009-01-25"><a title="Reverse jump to listing" href="#rev:Version-2.0.1-2009-01-25">&equiv;</a><a title="Jump to previous segment" href="#Bug-fixes">&#x25B3;</a><a title="Jump to next segment" href="#Bug-fixes-613723658">&#x25BD;</a><a title="Jump to this segment" href="#Version-2.0.1-2009-01-25">&#x25CE;</a></div>
824
+ </div><p> </p></div>
825
+ </div><div class="section">
826
+ <a name="Version-2.0.2-2009-02-26"/><div class="nav" id="Version-2.0.2-2009-02-26"><a title="Focus this segment" href="#Version-2.0.2-2009-02-26"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Housekeeping"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Thank-you-612635358"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Version-2.0.2-2009-02-26"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
827
+ <h2 class="title">
828
+ 4.2&nbsp;&nbsp;Version 2.0.2 (2009-02-26)
829
+ </h2>
830
+ <div class="content"><p>This release fixes a connection bug.</p>
831
+
832
+ <div class="paragraph">
833
+ <a name="Thank-you-612635358"/><div class="nav" id="Thank-you-612635358"><a title="Focus this segment" href="#Thank-you-612635358"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Version-2.0.2-2009-02-26"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Bug-fixes-611988658"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Thank-you-612635358"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
834
+ <p class="title">Thank you</p>
835
+ <div class="content"><ul>
836
+ <li>Simon Hafner reported and helped debug the <code class="line"><span style="color:#d70;font-weight:bold">$DISPLAY</span></code> bug.</li>
837
+ </ul></div>
838
+ </div><div class="paragraph">
839
+ <a name="Bug-fixes-611988658"/><div class="nav" id="Bug-fixes-611988658"><a title="Focus this segment" href="#Bug-fixes-611988658"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Thank-you-612635358"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Version-2.0.1-2009-01-25"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-611988658"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
840
+ <p class="title">Bug fixes</p>
841
+ <div class="content"><ul>
842
+ <li>wmii omits the fractional portion of <code class="line"><span style="color:#d70;font-weight:bold">$DISPLAY</span></code> in its socket file path. Rumai was trying to connect with the entire <code class="line"><span style="color:#d70;font-weight:bold">$DISPLAY</span></code> value (including the fractional portion) and thus could not find wmii&#8217;s socket file.</li>
843
+ </ul></div>
844
+ </div><p> </p></div>
845
+ </div><div class="section">
846
+ <a name="Version-2.0.1-2009-01-25"/><div class="nav" id="Version-2.0.1-2009-01-25"><a title="Focus this segment" href="#Version-2.0.1-2009-01-25"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Bug-fixes-611988658"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Bug-fixes-612040548"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Version-2.0.1-2009-01-25"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1194
847
  <h2 class="title">
1195
- 4.2&nbsp;&nbsp;Version 2.0.1 (2009-01-25)
848
+ 4.3&nbsp;&nbsp;Version 2.0.1 (2009-01-25)
1196
849
  </h2>
1197
850
  <div class="content"><p>This release simplifies project administrivia using <a href='http://snk.tuxfamily.org/lib/inochi'>Inochi</a>, improves the unit tests, and revises the user manual.</p>
1198
851
 
1199
- <p><div class="paragraph">
1200
- <a name="Bug-fixes-613723658"/><div class="nav" id="Bug-fixes-613723658"><a title="Reverse jump to listing" href="#rev:Bug-fixes-613723658">&equiv;</a><a title="Jump to previous segment" href="#Version-2.0.1-2009-01-25">&#x25B3;</a><a title="Jump to next segment" href="#Housekeeping">&#x25BD;</a><a title="Jump to this segment" href="#Bug-fixes-613723658">&#x25CE;</a></div>
852
+ <div class="paragraph">
853
+ <a name="Bug-fixes-612040548"/><div class="nav" id="Bug-fixes-612040548"><a title="Focus this segment" href="#Bug-fixes-612040548"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Version-2.0.1-2009-01-25"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Focus next segment" href="#Housekeeping-612057028"><img class="icon" src="&icon_nav_next;" alt="&darr;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-612040548"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1201
854
  <p class="title">Bug fixes</p>
1202
855
  <div class="content"><ul>
1203
856
  <li>The <tt>lib/rumai/ixp/message.rb</tt> library&#8217;s unit test would fail if <tt>/rbar/status</tt> did not already exist in wmii.</li>
1204
857
  </ul></div>
1205
- </div> <div class="paragraph">
1206
- <a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="Reverse jump to listing" href="#rev:Housekeeping">&equiv;</a><a title="Jump to previous segment" href="#Bug-fixes-613723658">&#x25B3;</a>&#x25BD;<a title="Jump to this segment" href="#Housekeeping">&#x25CE;</a></div>
858
+ </div><div class="paragraph">
859
+ <a name="Housekeeping-612057028"/><div class="nav" id="Housekeeping-612057028"><a title="Focus this segment" href="#Housekeeping-612057028"><img class="icon" src="&icon_nav_here;" alt="&lowast;"/></a> <a title="Focus previous segment" href="#Bug-fixes-612040548"><img class="icon" src="&icon_nav_prev;" alt="&uarr;"/></a> <a title="Return to listing" href="#rev:Housekeeping-612057028"><img class="icon" src="&icon_nav_list;" alt="&equiv;"/></a></div>
1207
860
  <p class="title">Housekeeping</p>
1208
861
  <div class="content"><ul>
1209
862
  <li>
1210
- <p>Store IXP socket address in <code class="code"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">IXP_SOCK_ADDR</span></code>.</p>
863
+ <p>Store IXP socket address in <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">IXP_SOCK_ADDR</span></code>.</p>
1211
864
  </li>
1212
865
 
1213
866
  <li>
1214
867
  <p>Added missing test cases for (TR)create and (TR)remove messages in the unit test for the <tt>lib/rumai/ixp/message.rb</tt> library.</p>
1215
868
  </li>
1216
869
  </ul></div>
1217
- </div></p></div>
1218
- </div></p></p></div>
1219
- </div></div>
870
+ </div><p> </p></div>
871
+ </div><p></p><p></p></div>
872
+ </div>
873
+ </div>
1220
874
 
1221
875
 
1222
876
  <br style="display: none"/>
1223
877
  <hr style="display: none"/>
1224
878
  <br style="display: none"/>
1225
879
 
1226
-
1227
- <div id="footer">
1228
-
1229
-
1230
- <div id="footer-credits">
1231
- <p>
1232
- <img class="icon" alt="caution" src="&icon_caution;"/>
1233
- <img class="icon" alt="tip" src="&icon_tip;"/>
1234
- <img class="icon" alt="important" src="&icon_important;"/>
1235
- <img class="icon" alt="note" src="&icon_note;"/>
1236
- <img class="icon" alt="warning" src="&icon_warning;"/>
1237
- <img class="icon" alt="quote" src="&icon_quote;"/>
1238
880
 
1239
- <br/>
1240
-
1241
- The icons shown above are part of <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a>, which is copyright &copy; 2005 <a href="http://tango.freedesktop.org">Tango Desktop Project</a> and is distributed under <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License Agreement</a>.
1242
- </p>
1243
-
1244
- <p>
1245
- <img class="icon" alt="link" src="&icon_link;"/>
1246
-
1247
- <br/>
1248
-
1249
- The icons shown above are part of <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a>, which is copyright &copy; 2007 <a href="https://www.ohloh.net/projects/mediawiki/contributors">MediaWiki contributors</a> and is distributed under <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, version 2</a>.
1250
- </p>
1251
- </div>
1252
881
 
882
+
883
+ <div id="footer">
884
+
885
+ Generated by <a href="http://snk.tuxfamily.org/lib/erbook/">ERBook 7.0.0</a> on Sat May 09 00:33:05 -0700 2009.
886
+
887
+ <div id="footer-credits">
888
+ <p>
889
+ <img class="icon" src="&icon_here_frag;" alt="here_frag"/>
890
+ <img class="icon" src="&icon_caution;" alt="caution"/>
891
+ <img class="icon" src="&icon_nav_here;" alt="nav_here"/>
892
+ <img class="icon" src="&icon_nav_prev;" alt="nav_prev"/>
893
+ <img class="icon" src="&icon_tip;" alt="tip"/>
894
+ <img class="icon" src="&icon_important;" alt="important"/>
895
+ <img class="icon" src="&icon_nav_list;" alt="nav_list"/>
896
+ <img class="icon" src="&icon_note;" alt="note"/>
897
+ <img class="icon" src="&icon_warning;" alt="warning"/>
898
+ <img class="icon" src="&icon_quote;" alt="quote"/>
899
+ <img class="icon" src="&icon_nav_next;" alt="nav_next"/>
900
+
901
+ <br/>
902
+
903
+ The icons shown above are part of <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a>, which is copyright &copy; 2005 <a href="http://tango.freedesktop.org">Tango Desktop Project</a> and is distributed under <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License Agreement</a>.
904
+ </p>
905
+
906
+ <p>
907
+ <img class="icon" src="&icon_hyperlink;" alt="hyperlink"/>
908
+
909
+ <br/>
910
+
911
+ The icons shown above are part of <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a>, which is copyright &copy; 2007 <a href="https://www.ohloh.net/projects/mediawiki/contributors">MediaWiki contributors</a> and is distributed under <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, version 2</a>.
912
+ </p>
913
+
914
+ <p style="margin-top: 3em">
915
+ <a href="http://validator.w3.org/check?uri=referer"><img
916
+ src="http://www.w3.org/Icons/valid-xhtml10-blue"
917
+ alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
918
+
919
+ <a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"><img
920
+ src="http://jigsaw.w3.org/css-validator/images/vcss-blue"
921
+ alt="Valid CSS!" height="31" width="88" /></a>
922
+ </p>
923
+ </div>
924
+
1253
925
  </div>
926
+
1254
927
 
1255
928
  </div>
1256
929
  </body>