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.
- data/CREDITS +2 -0
- data/bin/rumai +20 -8
- data/doc/api/classes/IO.html +72 -0
- data/doc/api/classes/Integer.html +110 -0
- data/doc/api/classes/Object.html +60 -0
- data/doc/api/classes/Rumai.html +867 -0
- data/doc/api/classes/Rumai/Area.html +836 -0
- data/doc/api/classes/Rumai/Chain.html +197 -0
- data/doc/api/classes/Rumai/Client.html +865 -0
- data/doc/api/classes/Rumai/ClientContainer.html +191 -0
- data/doc/api/classes/Rumai/ExportInstanceMethods.html +69 -0
- data/doc/api/classes/Rumai/IXP.html +131 -0
- data/doc/api/classes/Rumai/IXP/Agent.html +836 -0
- data/doc/api/classes/Rumai/IXP/Agent/FidStream.html +456 -0
- data/doc/api/classes/Rumai/IXP/Agent/MODES.html +108 -0
- data/doc/api/classes/Rumai/IXP/Agent/RangedPool.html +241 -0
- data/doc/api/classes/Rumai/IXP/Error.html +67 -0
- data/doc/api/classes/Rumai/IXP/Fcall.html +323 -0
- data/doc/api/classes/Rumai/IXP/Qid.html +153 -0
- data/doc/api/classes/Rumai/IXP/Rattach.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rauth.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rclunk.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rcreate.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rerror.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rflush.html +67 -0
- data/doc/api/classes/Rumai/IXP/Ropen.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rread.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rremove.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rstat.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rversion.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rwalk.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rwrite.html +67 -0
- data/doc/api/classes/Rumai/IXP/Rwstat.html +67 -0
- data/doc/api/classes/Rumai/IXP/Stat.html +252 -0
- data/doc/api/classes/Rumai/IXP/Stream.html +131 -0
- data/doc/api/classes/Rumai/IXP/Struct.html +315 -0
- data/doc/api/classes/Rumai/IXP/Struct/Field.html +415 -0
- data/doc/api/classes/Rumai/IXP/Struct/Field/CounteeField.html +153 -0
- data/doc/api/classes/Rumai/IXP/Struct/Field/CounterField.html +104 -0
- data/doc/api/classes/Rumai/IXP/Tattach.html +68 -0
- data/doc/api/classes/Rumai/IXP/Tauth.html +67 -0
- data/doc/api/classes/Rumai/IXP/Tclunk.html +67 -0
- data/doc/api/classes/Rumai/IXP/Tcreate.html +68 -0
- data/doc/api/classes/Rumai/IXP/Terror.html +110 -0
- data/doc/api/classes/Rumai/IXP/Tflush.html +67 -0
- data/doc/api/classes/Rumai/IXP/Topen.html +165 -0
- data/doc/api/classes/Rumai/IXP/Tread.html +67 -0
- data/doc/api/classes/Rumai/IXP/Tremove.html +67 -0
- data/doc/api/classes/Rumai/IXP/Tstat.html +67 -0
- data/doc/api/classes/Rumai/IXP/Tversion.html +86 -0
- data/doc/api/classes/Rumai/IXP/Twalk.html +68 -0
- data/doc/api/classes/Rumai/IXP/Twrite.html +68 -0
- data/doc/api/classes/Rumai/IXP/Twstat.html +67 -0
- data/doc/api/classes/Rumai/Node.html +817 -0
- data/doc/api/classes/Rumai/View.html +818 -0
- data/doc/api/classes/Rumai/WidgetImpl.html +65 -0
- data/doc/api/classes/Rumai/WidgetNode.html +68 -0
- data/doc/api/classes/String.html +163 -0
- data/doc/api/classes/StringIO.html +72 -0
- data/doc/api/classes/Time.html +156 -0
- data/doc/api/created.rid +1 -0
- data/doc/api/css/main.css +263 -0
- data/doc/api/css/panel.css +383 -0
- data/doc/api/css/reset.css +53 -0
- data/doc/api/files/CREDITS.html +64 -0
- data/doc/api/files/LICENSE.html +76 -0
- data/doc/api/files/lib/rumai/fs_rb.html +75 -0
- data/doc/api/files/lib/rumai/ixp/message_rb.html +91 -0
- data/doc/api/files/lib/rumai/ixp/transport_rb.html +75 -0
- data/doc/api/files/lib/rumai/ixp_rb.html +69 -0
- data/doc/api/files/lib/rumai/wm_rb.html +77 -0
- data/doc/api/files/lib/rumai_rb.html +65 -0
- data/doc/api/i/arrows.png +0 -0
- data/doc/api/i/results_bg.png +0 -0
- data/doc/api/i/tree_bg.png +0 -0
- data/doc/api/index.html +14 -18
- data/doc/api/js/jquery-1.3.2.min.js +19 -0
- data/doc/api/js/jquery-effect.js +593 -0
- data/doc/api/js/main.js +22 -0
- data/doc/api/js/searchdoc.js +605 -0
- data/doc/api/panel/index.html +63 -0
- data/doc/api/panel/search_index.js +1 -0
- data/doc/api/panel/tree.js +1 -0
- data/doc/history.erb +41 -16
- data/doc/index.erb +14 -11
- data/doc/index.xhtml +519 -846
- data/doc/intro.erb +33 -32
- data/doc/setup.erb +14 -13
- data/doc/usage.erb +69 -35
- data/lib/rumai.rb +13 -5
- data/lib/rumai/fs.rb +71 -27
- data/lib/rumai/ixp.rb +4 -0
- data/lib/rumai/ixp/message.rb +178 -81
- data/lib/rumai/ixp/transport.rb +144 -91
- data/lib/rumai/wm.rb +717 -593
- data/rakefile +14 -0
- data/test/rumai/ixp/message.rb +42 -54
- metadata +110 -89
- data/Rakefile +0 -8
- data/doc/api/IO.html +0 -53
- data/doc/api/Integer.html +0 -102
- data/doc/api/Object.html +0 -23
- data/doc/api/Rumai.html +0 -1218
- data/doc/api/Rumai/Area.html +0 -1088
- data/doc/api/Rumai/Chain.html +0 -230
- data/doc/api/Rumai/Client.html +0 -1264
- data/doc/api/Rumai/ClientContainer.html +0 -227
- data/doc/api/Rumai/ExportInstMethods.html +0 -115
- data/doc/api/Rumai/IXP.html +0 -23
- data/doc/api/Rumai/IXP/Agent.html +0 -1222
- data/doc/api/Rumai/IXP/Agent/FidStream.html +0 -602
- data/doc/api/Rumai/IXP/Agent/RangedPool.html +0 -263
- data/doc/api/Rumai/IXP/Error.html +0 -32
- data/doc/api/Rumai/IXP/Fcall.html +0 -398
- data/doc/api/Rumai/IXP/Qid.html +0 -99
- data/doc/api/Rumai/IXP/Rattach.html +0 -71
- data/doc/api/Rumai/IXP/Rauth.html +0 -71
- data/doc/api/Rumai/IXP/Rclunk.html +0 -71
- data/doc/api/Rumai/IXP/Rcreate.html +0 -71
- data/doc/api/Rumai/IXP/Rerror.html +0 -71
- data/doc/api/Rumai/IXP/Rflush.html +0 -71
- data/doc/api/Rumai/IXP/Ropen.html +0 -71
- data/doc/api/Rumai/IXP/Rread.html +0 -71
- data/doc/api/Rumai/IXP/Rremove.html +0 -71
- data/doc/api/Rumai/IXP/Rstat.html +0 -71
- data/doc/api/Rumai/IXP/Rversion.html +0 -71
- data/doc/api/Rumai/IXP/Rwalk.html +0 -71
- data/doc/api/Rumai/IXP/Rwrite.html +0 -71
- data/doc/api/Rumai/IXP/Rwstat.html +0 -71
- data/doc/api/Rumai/IXP/Stat.html +0 -188
- data/doc/api/Rumai/IXP/Stream.html +0 -112
- data/doc/api/Rumai/IXP/Struct.html +0 -348
- data/doc/api/Rumai/IXP/Struct/ClassField.html +0 -177
- data/doc/api/Rumai/IXP/Struct/Field.html +0 -549
- data/doc/api/Rumai/IXP/Struct/Field/CounteeField.html +0 -175
- data/doc/api/Rumai/IXP/Struct/Field/CounterField.html +0 -95
- data/doc/api/Rumai/IXP/Struct/Integer8Field.html +0 -181
- data/doc/api/Rumai/IXP/Struct/StringField.html +0 -128
- data/doc/api/Rumai/IXP/Tattach.html +0 -71
- data/doc/api/Rumai/IXP/Tauth.html +0 -71
- data/doc/api/Rumai/IXP/Tclunk.html +0 -71
- data/doc/api/Rumai/IXP/Tcreate.html +0 -71
- data/doc/api/Rumai/IXP/Terror.html +0 -156
- data/doc/api/Rumai/IXP/Tflush.html +0 -71
- data/doc/api/Rumai/IXP/Topen.html +0 -113
- data/doc/api/Rumai/IXP/Tread.html +0 -71
- data/doc/api/Rumai/IXP/Tremove.html +0 -71
- data/doc/api/Rumai/IXP/Tstat.html +0 -71
- data/doc/api/Rumai/IXP/Tversion.html +0 -83
- data/doc/api/Rumai/IXP/Twalk.html +0 -71
- data/doc/api/Rumai/IXP/Twrite.html +0 -71
- data/doc/api/Rumai/IXP/Twstat.html +0 -71
- data/doc/api/Rumai/Node.html +0 -1139
- data/doc/api/Rumai/View.html +0 -1280
- data/doc/api/Rumai/WidgetImpl.html +0 -196
- data/doc/api/Rumai/WidgetNode.html +0 -184
- data/doc/api/String.html +0 -180
- data/doc/api/StringIO.html +0 -53
- data/doc/api/Time.html +0 -175
- data/doc/api/all-methods.html +0 -1436
- data/doc/api/all-namespaces.html +0 -140
- data/doc/api/app.js +0 -18
- data/doc/api/jquery.js +0 -11
- data/doc/api/readme.html +0 -38
- data/doc/api/style.css +0 -68
- data/doc/api/syntax_highlight.css +0 -21
- 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",[]]]
|
data/doc/history.erb
CHANGED
|
@@ -1,27 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
7
|
-
*
|
|
37
|
+
%|paragraph "Thank you"
|
|
38
|
+
* Simon Hafner reported and helped debug the `$DISPLAY` bug.
|
|
8
39
|
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 %>
|
data/doc/index.erb
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
%#--
|
|
2
|
+
%# Copyright 2008 Suraj N. Kurapati
|
|
3
|
+
%# See the LICENSE file for details.
|
|
4
|
+
%#++
|
|
3
5
|
|
|
4
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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"
|
data/doc/index.xhtml
CHANGED
|
@@ -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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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="
|
|
15
|
-
<meta name="generator" content="ERBook
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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 : "★"; /* ★ */
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
135
|
+
<h1 class="title">Rumai 2.1.0</h1>
|
|
643
136
|
|
|
644
|
-
|
|
137
|
+
<h2 class="subtitle">Ruby interface to the wmii window manager</h2>
|
|
645
138
|
|
|
646
|
-
|
|
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">≡</a>△▽<a title="Jump to this segment" href="#Contents">◎</a></div>
|
|
659
|
-
<h1 class="title">Contents</h1>
|
|
660
|
-
<ul>
|
|
661
|
-
<li>1 <a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1 <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 <a id="rev:License" href="#License">License</a></li><li>1.3 <a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2 <a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1 <a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2 <a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3 <a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3 <a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1 <a id="rev:Concepts" href="#Concepts">Concepts</a></li><li>3.2 <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 <a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1 <a id="rev:Automated-client-arrangement" href="#Automated-client-arrangement">Automated client arrangement</a></li><li>3.3.2 <a id="rev:Multiple-client-grouping" href="#Multiple-client-grouping">Multiple client grouping</a></li><li>3.3.3 <a id="rev:Easy-column-manipulation" href="#Easy-column-manipulation">Easy column manipulation</a></li><li>3.3.4 <a id="rev:Easy-client-manipulation" href="#Easy-client-manipulation">Easy client manipulation</a></li><li>3.3.5 <a id="rev:Traversing-the-file-system" href="#Traversing-the-file-system">Traversing the file system</a></li><li>3.3.6 <a id="rev:Available-commands" href="#Available-commands">Available commands</a></li></ul></li><li>3.4 <a id="rev:wmiirc" href="#wmiirc">Scripting your wmiirc</a></li></ul></li><li>4 <a id="rev:History" href="#History">History</a><ul><li>4.1 <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 <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
|
-
|
|
664
|
-
|
|
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="∗"/></a> <a title="Return to listing" href="#rev:Contents"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
158
|
+
<h1 class="title">Contents</h1>
|
|
159
|
+
<ul><li>1 <a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1 <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 <a id="rev:License" href="#License">License</a></li><li>1.3 <a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2 <a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1 <a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2 <a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3 <a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3 <a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1 <a id="rev:Concepts" href="#Concepts">Concepts</a></li><li>3.2 <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 <a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1 <a id="rev:Automated-client-arrangement" href="#Automated-client-arrangement">Automated client arrangement</a></li><li>3.3.2 <a id="rev:Multiple-client-grouping" href="#Multiple-client-grouping">Multiple client grouping</a></li><li>3.3.3 <a id="rev:Easy-column-manipulation" href="#Easy-column-manipulation">Easy column manipulation</a></li><li>3.3.4 <a id="rev:Easy-client-manipulation" href="#Easy-client-manipulation">Easy client manipulation</a></li><li>3.3.5 <a id="rev:Traversing-the-file-system" href="#Traversing-the-file-system">Traversing the file system</a></li><li>3.3.6 <a id="rev:Available-commands" href="#Available-commands">Available commands</a></li></ul></li><li>3.4 <a id="rev:wmiirc" href="#wmiirc">Scripting your wmiirc</a></li></ul></li><li>4 <a id="rev:History" href="#History">History</a><ul><li>4.1 <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 <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 <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="
|
|
174
|
+
<a name="Introduction"/><div class="nav" id="Introduction"><a title="Focus this segment" href="#Introduction"><img class="icon" src="&icon_nav_here;" alt="∗"/></a> <a title="Focus next segment" href="#Etymology"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Introduction"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
674
175
|
<h1 class="title">
|
|
675
176
|
Chapter 1
|
|
676
177
|
<br/>
|
|
677
178
|
<big>Introduction</big>
|
|
678
179
|
</h1>
|
|
679
|
-
<div class="content"><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
|
|
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. "Interactive shell"">interactive shell</a> for live entertainment.</li>
|
|
685
186
|
|
|
686
|
-
<li>It contains a
|
|
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’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://
|
|
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://'>
|
|
195
|
+
<li><a href='http://home.gna.org/rubyixp/'>Ruby-IXP</a></li>
|
|
695
196
|
|
|
696
|
-
<li><a href='http://'>
|
|
197
|
+
<li><a href='http://eigenclass.org/hiki.rb?wmii+ruby'>ruby-wmii</a></li>
|
|
697
198
|
</ul>
|
|
698
199
|
|
|
699
|
-
<
|
|
700
|
-
<a name="Etymology"/><div class="nav" id="Etymology"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Introduction"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Logistics"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Etymology"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
701
202
|
<p class="title">Etymology</p>
|
|
702
203
|
<div class="content"><p>The word “wmii” 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 “vim-eye”.</p>
|
|
703
204
|
|
|
704
205
|
<p>Since this is a Ruby library, I added a “roo” and worked it through:</p>
|
|
705
206
|
|
|
706
|
-
<
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
roo-
|
|
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 “Rumai”.</p></div>
|
|
712
|
-
</div
|
|
713
|
-
<a name="Logistics"/><div class="nav" id="Logistics"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Etymology"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Version-numbers"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Logistics"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
714
218
|
<h2 class="title">
|
|
715
219
|
1.1 Logistics
|
|
716
220
|
</h2>
|
|
717
221
|
<div class="content"><ul>
|
|
718
222
|
<li><a class="xref" href="#History" title="Chapter 4. "History"">Release notes</a> — history of project releases.</li>
|
|
719
223
|
|
|
720
|
-
<li><a href='http://github.com/sunaku/rumai'>Source code</a> — obtain via <a href='http://git.
|
|
224
|
+
<li><a href='http://github.com/sunaku/rumai'>Source code</a> — 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> — documentation for source code.</li>
|
|
721
227
|
|
|
722
|
-
<li><a href='
|
|
228
|
+
<li><a href='http://snk.tuxfamily.org/lib/rumai/'>Project home</a> — 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. "License"">contact the author(s)</a>.</p>
|
|
726
232
|
|
|
727
|
-
<
|
|
728
|
-
<a name="Version-numbers"/><div class="nav" id="Version-numbers"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Logistics"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#License"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Version-numbers"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
729
235
|
<p class="title">Version numbers</p>
|
|
730
|
-
<div class="content"><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
|
|
766
|
-
<a name="License"/><div class="nav" id="License"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Version-numbers"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Credits"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:License"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
767
273
|
<h2 class="title">
|
|
768
274
|
1.2 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 “AS IS” 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
|
|
778
|
-
<a name="Credits"/><div class="nav" id="Credits"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#License"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Setup"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Credits"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
779
285
|
<h2 class="title">
|
|
780
286
|
1.3 Credits
|
|
781
287
|
</h2>
|
|
782
|
-
<div class="content"><p
|
|
288
|
+
<div class="content"><p>Rumai is made possible by <a class="xref" href="#History" title="Chapter 4. "History"">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
|
|
788
|
-
</div
|
|
789
|
-
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Credits"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Requirements"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Setup"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
790
300
|
<h1 class="title">
|
|
791
301
|
Chapter 2
|
|
792
302
|
<br/>
|
|
793
303
|
<big>Setup</big>
|
|
794
304
|
</h1>
|
|
795
|
-
<div class="content"><
|
|
796
|
-
<a name="Requirements"/><div class="nav" id="Requirements"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Setup"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Installation"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Requirements"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
797
307
|
<h2 class="title">
|
|
798
308
|
2.1 Requirements
|
|
799
309
|
</h2>
|
|
800
|
-
<div class="content"><p>Your system needs the following software to run
|
|
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
|
|
806
|
-
<a name="Installation"/><div class="nav" id="Installation"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Requirements"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Manifest"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Installation"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
807
317
|
<h2 class="title">
|
|
808
318
|
2.2 Installation
|
|
809
319
|
</h2>
|
|
810
|
-
<div class="content"><p>You can install
|
|
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
|
-
<
|
|
821
|
-
version: 2.0
|
|
822
|
-
release: 2009-
|
|
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. "License"">ask the author(s)</a> for help.</p></div>
|
|
827
|
-
</div
|
|
828
|
-
<a name="Manifest"/><div class="nav" id="Manifest"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Installation"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Usage"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Manifest"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
829
339
|
<h2 class="title">
|
|
830
340
|
2.3 Manifest
|
|
831
341
|
</h2>
|
|
832
|
-
<div class="content"><p>You will see the following items inside
|
|
342
|
+
<div class="content"><p>You will see the following items inside Rumai’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> — the main
|
|
351
|
+
<li><tt>rumai</tt> — 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> — the main
|
|
360
|
+
<p><tt>rumai.rb</tt> — 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> — copyright notice and legal conditions.</p>
|
|
879
389
|
</li>
|
|
880
390
|
</ul></div>
|
|
881
|
-
</div
|
|
882
|
-
</div
|
|
883
|
-
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Manifest"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Concepts"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Usage"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
884
396
|
<h1 class="title">
|
|
885
397
|
Chapter 3
|
|
886
398
|
<br/>
|
|
887
399
|
<big>Usage</big>
|
|
888
400
|
</h1>
|
|
889
|
-
<div class="content"><
|
|
890
|
-
<a name="Concepts"/><div class="nav" id="Concepts"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Usage"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Command-line-interface"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Concepts"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
891
403
|
<h2 class="title">
|
|
892
404
|
3.1 Concepts
|
|
893
405
|
</h2>
|
|
894
|
-
<div class="content"><
|
|
406
|
+
<div class="content"><dl>
|
|
407
|
+
<dt>Client</dt>
|
|
895
408
|
|
|
896
|
-
<
|
|
897
|
-
<
|
|
898
|
-
|
|
899
|
-
</li>
|
|
409
|
+
<dd>
|
|
410
|
+
<p>Any graphical program (a “window”) that is running in your X session.</p>
|
|
411
|
+
</dd>
|
|
900
412
|
|
|
901
|
-
<
|
|
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
|
-
<
|
|
906
|
-
<p>
|
|
907
|
-
</
|
|
415
|
+
<dd>
|
|
416
|
+
<p>An arbitrary label that can be associated with one or more clients.</p>
|
|
417
|
+
</dd>
|
|
908
418
|
|
|
909
|
-
<
|
|
910
|
-
|
|
419
|
+
<dt>View</dt>
|
|
420
|
+
|
|
421
|
+
<dd>
|
|
422
|
+
<p>A visualization of a particular tag. A “workspace”.</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
|
-
</
|
|
922
|
-
</
|
|
923
|
-
</div
|
|
924
|
-
<a name="Command-line-interface"/><div class="nav" id="Command-line-interface"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Concepts"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#shell"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Command-line-interface"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
925
451
|
<h2 class="title">
|
|
926
452
|
3.2 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
|
-
<
|
|
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] --
|
|
467
|
+
rumai [Options] -- Arguments
|
|
942
468
|
|
|
943
|
-
|
|
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 <s>: 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
|
-
<
|
|
954
|
-
<a name="shell"/><div class="nav" id="shell"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Command-line-interface"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Tutorial"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:shell"><img class="icon" src="&icon_nav_list;" alt="≡"/></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></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="
|
|
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 “Rumai” 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="
|
|
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
|
|
971
|
-
<a name="Tutorial"/><div class="nav" id="Tutorial"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#shell"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Automated-client-arrangement"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Tutorial"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
972
498
|
<h2 class="title">
|
|
973
499
|
3.3 Tutorial
|
|
974
500
|
</h2>
|
|
975
|
-
<div class="content"><p>Now that you know <a class="xref" href="#shell" title="Paragraph. "Interactive shell"">how to start the interactive shell</a>, let us walk through a quick demonstration that highlights the main features of
|
|
501
|
+
<div class="content"><p>Now that you know <a class="xref" href="#shell" title="Paragraph. "Interactive shell"">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 & pasting the presented commands into the interactive shell.</p>
|
|
976
502
|
|
|
977
|
-
<
|
|
978
|
-
<a name="Automated-client-arrangement"/><div class="nav" id="Automated-client-arrangement"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Tutorial"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Multiple-client-grouping"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Automated-client-arrangement"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
979
505
|
<h3 class="title">
|
|
980
506
|
3.3.1 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="
|
|
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">"</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 &</span><span style="color:#710">"</span></span> }
|
|
984
|
-
</pre></p>
|
|
510
|
+
</pre></ins></p>
|
|
511
|
+
|
|
512
|
+
<p>Arrange all clients in a grid:</p>
|
|
985
513
|
|
|
986
|
-
<p
|
|
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
|
|
990
|
-
</pre></p>
|
|
517
|
+
<p>Arrange all clients in a diamond shape:</p>
|
|
991
518
|
|
|
992
|
-
<p
|
|
993
|
-
</pre></p>
|
|
519
|
+
<p><ins><pre class="para">curr_view.arrange_in_diamond
|
|
520
|
+
</pre></ins></p>
|
|
994
521
|
|
|
995
|
-
<p>
|
|
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
|
|
999
|
-
<a name="Multiple-client-grouping"/><div class="nav" id="Multiple-client-grouping"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Automated-client-arrangement"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Easy-column-manipulation"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Multiple-client-grouping"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1000
532
|
<h3 class="title">
|
|
1001
533
|
3.3.2 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="
|
|
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">"</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 &</span><span style="color:#710">"</span></span> }
|
|
1005
|
-
</pre></p>
|
|
537
|
+
</pre></ins></p>
|
|
538
|
+
|
|
539
|
+
<p>Add the red, green, and blue terminals into the “grouping”:</p>
|
|
1006
540
|
|
|
1007
|
-
<p
|
|
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 ”
|
|
545
|
+
<p>You should now see a new button labelled as ”@” on the left-hand side of wmii’s bar, indicating that there is now a new view labelled ”@” 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">"</span><span style="">@</span><span style="color:#710">"</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 “grouped”. Thus, by adding a client to the “grouping”, we are simply tagging the client with the ”@” token.</p>
|
|
1016
552
|
|
|
1017
|
-
<p>Now that we have put some clients into the “grouping”, let us move all clients in the grouping to the floating area in the current view
|
|
1018
|
-
|
|
553
|
+
<p>Now that we have put some clients into the “grouping”, 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">"</span><span style="">toggle</span><span style="color:#710">"</span></span> }
|
|
556
|
+
</pre></ins></p>
|
|
1019
557
|
|
|
1020
|
-
<p>Neat! Let us bring them back into the managed area
|
|
1021
|
-
</pre></p>
|
|
558
|
+
<p>Neat! Let us bring them back into the managed area:</p>
|
|
1022
559
|
|
|
1023
|
-
<p
|
|
560
|
+
<p><ins><pre class="para">grouping.each {|c| c.send <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">toggle</span><span style="color:#710">"</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 “grouping”) 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
|
|
1031
|
-
<a name="Easy-column-manipulation"/><div class="nav" id="Easy-column-manipulation"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Multiple-client-grouping"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Easy-client-manipulation"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Easy-column-manipulation"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1032
572
|
<h3 class="title">
|
|
1033
573
|
3.3.3 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="
|
|
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">"</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 &</span><span style="color:#710">"</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)
|
|
1042
|
-
|
|
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>
|
|
1045
|
-
</pre></p>
|
|
591
|
+
<p>Move the red, green, and blue clients into the floating area:</p>
|
|
1046
592
|
|
|
1047
|
-
<p
|
|
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
|
|
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’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>
|
|
1058
|
-
</pre></p>
|
|
610
|
+
<p>Move the red, green, and blue clients to the top of the second column:</p>
|
|
1059
611
|
|
|
1060
|
-
<p
|
|
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
|
|
1064
|
-
</pre></p>
|
|
615
|
+
<p>Move the red, green, and blue clients to the bottom of the third column:</p>
|
|
1065
616
|
|
|
1066
|
-
<p
|
|
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
|
|
1070
|
-
<a name="Easy-client-manipulation"/><div class="nav" id="Easy-client-manipulation"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Easy-column-manipulation"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Traversing-the-file-system"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Easy-client-manipulation"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1071
625
|
<h3 class="title">
|
|
1072
626
|
3.3.4 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="
|
|
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">"</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 &</span><span style="color:#710">"</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">"</span><span style="">red</span><span style="color:#710">"</span></span> }
|
|
635
|
+
</pre></ins></p>
|
|
636
|
+
|
|
637
|
+
<p>Show the red client’s current tags:</p>
|
|
638
|
+
|
|
639
|
+
<p><ins><pre class="para">red.tags
|
|
640
|
+
</pre></ins></p>
|
|
641
|
+
|
|
642
|
+
<p>Add the “foo” and “bar” tags to the red client:</p>
|
|
1077
643
|
|
|
1078
|
-
<p
|
|
1079
|
-
</pre></p>
|
|
644
|
+
<p><ins><pre class="para">red.tag <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">foo</span><span style="color:#710">"</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">bar</span><span style="color:#710">"</span></span>
|
|
645
|
+
</pre></ins></p>
|
|
1080
646
|
|
|
1081
|
-
<p>
|
|
1082
|
-
</pre></p>
|
|
647
|
+
<p>Remove the “bar” tag from the red client:</p>
|
|
1083
648
|
|
|
1084
|
-
<p
|
|
1085
|
-
</pre></p>
|
|
649
|
+
<p><ins><pre class="para">red.untag <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">bar</span><span style="color:#710">"</span></span>
|
|
650
|
+
</pre></ins></p>
|
|
1086
651
|
|
|
1087
|
-
<p>
|
|
1088
|
-
</pre></p>
|
|
652
|
+
<p>Do complex operations on the red client’s tags:</p>
|
|
1089
653
|
|
|
1090
|
-
<p
|
|
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
|
|
1094
|
-
|
|
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">#=> 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
|
|
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
|
|
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
|
|
1107
|
-
</pre></p>
|
|
677
|
+
<p>Send the red client to the last column:</p>
|
|
1108
678
|
|
|
1109
|
-
<p
|
|
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
|
|
1113
|
-
<a name="Traversing-the-file-system"/><div class="nav" id="Traversing-the-file-system"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Easy-client-manipulation"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Available-commands"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Traversing-the-file-system"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1114
687
|
<h3 class="title">
|
|
1115
688
|
3.3.5 Traversing the file system
|
|
1116
689
|
</h3>
|
|
1117
|
-
<div class="content"><p>Show the root node of wmii’s IXP file system
|
|
1118
|
-
|
|
690
|
+
<div class="content"><p>Show the root node of wmii’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
|
|
1121
|
-
</pre></p>
|
|
705
|
+
<p>Show the children of the root node:</p>
|
|
1122
706
|
|
|
1123
|
-
<p
|
|
1124
|
-
</pre></p>
|
|
707
|
+
<p><ins><pre class="para">fs.children
|
|
708
|
+
</pre></ins></p>
|
|
1125
709
|
|
|
1126
|
-
<p>
|
|
1127
|
-
</pre></p>
|
|
710
|
+
<p>Navigate into to the <tt>/lbar/</tt> directory:</p>
|
|
1128
711
|
|
|
1129
|
-
<p
|
|
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">#=> 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="
|
|
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
|
|
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">#=> false</span>
|
|
1139
724
|
b.create
|
|
1140
725
|
b.exist? <span style="color:#888">#=> 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 “hello world”
|
|
730
|
+
<p>Color the button black-on-white and label it as “hello world”:</p>
|
|
731
|
+
|
|
732
|
+
<p><ins><pre class="para">content = <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">#000000 #ffffff #000000 hello world</span><span style="color:#710">"</span></span>
|
|
1146
733
|
b.write content
|
|
1147
734
|
b.read == content <span style="color:#888">#=> true</span>
|
|
1148
|
-
</pre></p>
|
|
735
|
+
</pre></ins></p>
|
|
736
|
+
|
|
737
|
+
<p>Remove the temporary button:</p>
|
|
1149
738
|
|
|
1150
|
-
<p
|
|
739
|
+
<p><ins><pre class="para">b.remove
|
|
1151
740
|
b.exist? <span style="color:#888">#=> false</span>
|
|
1152
|
-
</pre></p></div>
|
|
1153
|
-
</div
|
|
1154
|
-
<a name="Available-commands"/><div class="nav" id="Available-commands"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Traversing-the-file-system"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#wmiirc"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Available-commands"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1155
744
|
<h3 class="title">
|
|
1156
745
|
3.3.6 Available commands
|
|
1157
746
|
</h3>
|
|
1158
|
-
<div class="content"><p>Refer to the <code class="
|
|
1159
|
-
</div
|
|
1160
|
-
</div
|
|
1161
|
-
<a name="wmiirc"/><div class="nav" id="wmiirc"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Available-commands"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#History"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:wmiirc"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1162
751
|
<h2 class="title">
|
|
1163
752
|
3.4 Scripting your wmiirc
|
|
1164
753
|
</h2>
|
|
1165
|
-
<div class="content"><p>One important application of
|
|
1166
|
-
</div
|
|
1167
|
-
</div
|
|
1168
|
-
|
|
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="∗"/></a> <a title="Focus previous segment" href="#wmiirc"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Version-2.1.0-2009-05-09"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:History"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1169
760
|
<h1 class="title">
|
|
1170
761
|
Chapter 4
|
|
1171
762
|
<br/>
|
|
1172
763
|
<big>History</big>
|
|
1173
764
|
</h1>
|
|
1174
|
-
<div class="content"><
|
|
1175
|
-
<a name="Version-2.0
|
|
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="∗"/></a> <a title="Focus previous segment" href="#History"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Thank-you"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Version-2.1.0-2009-05-09"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1176
767
|
<h2 class="title">
|
|
1177
|
-
4.1 Version 2.0
|
|
768
|
+
4.1 Version 2.1.0 (2009-05-09)
|
|
1178
769
|
</h2>
|
|
1179
|
-
<div class="content"><p>This release fixes
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Version-2.1.0-2009-05-09"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#New-features"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Thank-you"><img class="icon" src="&icon_nav_list;" alt="≡"/></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="∗"/></a> <a title="Focus previous segment" href="#Thank-you"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Bug-fixes"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:New-features"><img class="icon" src="&icon_nav_list;" alt="≡"/></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
|
-
<
|
|
1182
|
-
|
|
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="∗"/></a> <a title="Focus previous segment" href="#New-features"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Housekeeping"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Bug-fixes"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1183
798
|
<p class="title">Bug fixes</p>
|
|
1184
799
|
<div class="content"><ul>
|
|
1185
800
|
<li>
|
|
1186
|
-
<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="∗"/></a> <a title="Focus previous segment" href="#Bug-fixes"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Version-2.0.2-2009-02-26"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Housekeeping"><img class="icon" src="&icon_nav_list;" alt="≡"/></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
|
-
<
|
|
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
|
|
1192
|
-
</div
|
|
1193
|
-
<a name="Version-2.0.
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Housekeeping"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Thank-you-612635358"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Version-2.0.2-2009-02-26"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
827
|
+
<h2 class="title">
|
|
828
|
+
4.2 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="∗"/></a> <a title="Focus previous segment" href="#Version-2.0.2-2009-02-26"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Bug-fixes-611988658"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Thank-you-612635358"><img class="icon" src="&icon_nav_list;" alt="≡"/></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="∗"/></a> <a title="Focus previous segment" href="#Thank-you-612635358"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Version-2.0.1-2009-01-25"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Bug-fixes-611988658"><img class="icon" src="&icon_nav_list;" alt="≡"/></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’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="∗"/></a> <a title="Focus previous segment" href="#Bug-fixes-611988658"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Bug-fixes-612040548"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Version-2.0.1-2009-01-25"><img class="icon" src="&icon_nav_list;" alt="≡"/></a></div>
|
|
1194
847
|
<h2 class="title">
|
|
1195
|
-
4.
|
|
848
|
+
4.3 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
|
-
<
|
|
1200
|
-
<a name="Bug-fixes-
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Version-2.0.1-2009-01-25"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Focus next segment" href="#Housekeeping-612057028"><img class="icon" src="&icon_nav_next;" alt="↓"/></a> <a title="Return to listing" href="#rev:Bug-fixes-612040548"><img class="icon" src="&icon_nav_list;" alt="≡"/></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’s unit test would fail if <tt>/rbar/status</tt> did not already exist in wmii.</li>
|
|
1204
857
|
</ul></div>
|
|
1205
|
-
</div
|
|
1206
|
-
<a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="
|
|
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="∗"/></a> <a title="Focus previous segment" href="#Bug-fixes-612040548"><img class="icon" src="&icon_nav_prev;" alt="↑"/></a> <a title="Return to listing" href="#rev:Housekeeping-612057028"><img class="icon" src="&icon_nav_list;" alt="≡"/></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="
|
|
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
|
|
1218
|
-
</div></p></p></div>
|
|
1219
|
-
</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 © 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 © 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 © 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 © 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>
|