rumai 3.0.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/rumai +2 -2
- data/doc/api/apple-touch-icon.png +0 -0
- data/doc/api/classes/IO.html +1 -1
- data/doc/api/classes/Integer.html +6 -6
- data/doc/api/classes/Rumai.html +141 -141
- data/doc/api/classes/Rumai/Area.html +122 -122
- data/doc/api/classes/Rumai/Chain.html +18 -18
- data/doc/api/classes/Rumai/Client.html +420 -122
- data/doc/api/classes/Rumai/ClientContainer.html +22 -22
- data/doc/api/classes/Rumai/IXP/Agent.html +90 -90
- data/doc/api/classes/Rumai/IXP/Agent/FidStream.html +41 -41
- data/doc/api/classes/Rumai/IXP/Agent/MODES.html +6 -6
- data/doc/api/classes/Rumai/IXP/Agent/RangedPool.html +18 -18
- data/doc/api/classes/Rumai/IXP/Fcall.html +30 -30
- data/doc/api/classes/Rumai/IXP/Qid.html +1 -1
- data/doc/api/classes/Rumai/IXP/Stat.html +7 -7
- data/doc/api/classes/Rumai/IXP/Stream.html +6 -6
- data/doc/api/classes/Rumai/IXP/Struct.html +24 -24
- data/doc/api/classes/Rumai/IXP/Struct/Field.html +36 -36
- data/doc/api/classes/Rumai/IXP/Struct/Field/CounteeField.html +12 -12
- data/doc/api/classes/Rumai/IXP/Struct/Field/CounterField.html +6 -6
- data/doc/api/classes/Rumai/IXP/Terror.html +6 -6
- data/doc/api/classes/Rumai/Node.html +52 -52
- data/doc/api/classes/Rumai/View.html +132 -132
- data/doc/api/classes/String.html +12 -12
- data/doc/api/classes/StringIO.html +1 -1
- data/doc/api/classes/Time.html +12 -12
- data/doc/api/created.rid +1 -1
- data/doc/api/favicon.ico +0 -0
- data/doc/api/files/CREDITS.html +1 -1
- data/doc/api/files/LICENSE.html +1 -1
- data/doc/api/files/lib/rumai/fs_rb.html +1 -1
- data/doc/api/files/lib/rumai/ixp/message_rb.html +1 -1
- data/doc/api/files/lib/rumai/ixp/transport_rb.html +1 -1
- data/doc/api/files/lib/rumai/ixp_rb.html +1 -1
- data/doc/api/files/lib/rumai/wm_rb.html +1 -1
- data/doc/api/files/lib/rumai_rb.html +1 -1
- data/doc/api/js/searchdoc.js +38 -15
- data/doc/api/panel/index.html +13 -5
- data/doc/api/panel/search_index.js +1 -1
- data/doc/api/panel/tree.js +1 -1
- data/doc/history.erb +79 -2
- data/doc/index.erb +2 -2
- data/doc/index.html +2017 -0
- data/doc/intro.erb +38 -62
- data/doc/setup.erb +53 -2
- data/doc/usage.erb +36 -11
- data/lib/rumai.rb +4 -4
- data/lib/rumai/fs.rb +2 -2
- data/lib/rumai/ixp.rb +2 -2
- data/lib/rumai/ixp/message.rb +2 -2
- data/lib/rumai/ixp/transport.rb +2 -2
- data/lib/rumai/wm.rb +80 -5
- data/rakefile +2 -2
- data/test/rumai/ixp/message.rb +3 -3
- metadata +9 -5
- data/doc/index.xhtml +0 -1078
data/rakefile
CHANGED
data/test/rumai/ixp/message.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright
|
3
|
-
# See
|
2
|
+
# Copyright protects this work.
|
3
|
+
# See LICENSE file for details.
|
4
4
|
#++
|
5
5
|
|
6
6
|
require 'pp' if $DEBUG
|
@@ -165,7 +165,7 @@ class << Object.new
|
|
165
165
|
:tag => 0,
|
166
166
|
:fid => 1,
|
167
167
|
:offset => 0,
|
168
|
-
:data => "hello world!!!"
|
168
|
+
:data => "#a1a2a3 #b1b2b3 #c1c2c3 hello world!!!"
|
169
169
|
) do |req, rsp|
|
170
170
|
T { rsp.type == Rwrite.type }
|
171
171
|
T { rsp.count == req.data.length }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rumai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Suraj N. Kurapati
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-02 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,7 +42,9 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: "1"
|
44
44
|
version:
|
45
|
-
description: Ruby interface to the wmii window manager
|
45
|
+
description: " Rumai 3.1.0\n\n Ruby interface to the wmii window manager\n\n http://snk.tuxfamily.org/lib/rumai/\n\n Rumai is a [1]Ruby interface to the [2]wmii window manager.\n\n\
|
46
|
+
Version 3.1.0 (2009-10-02)\n\n This release adds new methods, fixes some bugs, and revises\n the manual.\n\n * [3]New features\n\n * [4]Bug fixes\n\n * [5]Housekeeping\n\n New features\n\n * Add Client#float methods to manipulate floating status.\n\n * Add Client#manage methods to manipulate managed status.\n\n * The Client#tags= method now accepts '~' and '!' tag\n prefixes.\n\n Bug fixes\n\n * There is no View#move_focus method, only View#select.\n\n * Assertion failure in test suite because all files in\n /rbar (inside wmii's IXP filesystem) contain an automatic\n color header when read.\n\n Housekeeping\n\n * Use simpler Copyright reminder at the top of every file.\n\n * Open source is for fun, so [6]be nice: speak of \"related\n works\" instead of \"competitors\".\n\n\
|
47
|
+
References\n\n 1. http://ruby-lang.org/\n 2. http://wmii.suckless.org/\n 3. http://snk.tuxfamily.org/lib/rumai/#New-features\n 4. http://snk.tuxfamily.org/lib/rumai/#Bug-fixes\n 5. http://snk.tuxfamily.org/lib/rumai/#Housekeeping\n 6. http://loiclemeur.com/english/2009/03/never-criticize-your-competitors.html\n"
|
46
48
|
email: sunaku@gmail.com
|
47
49
|
executables:
|
48
50
|
- rumai
|
@@ -64,7 +66,7 @@ files:
|
|
64
66
|
- LICENSE
|
65
67
|
- doc/intro.erb
|
66
68
|
- doc/setup.erb
|
67
|
-
- doc/index.
|
69
|
+
- doc/index.html
|
68
70
|
- doc/api/classes/Time.html
|
69
71
|
- doc/api/classes/Integer.html
|
70
72
|
- doc/api/classes/Rumai/ExportInstanceMethods.html
|
@@ -144,7 +146,9 @@ files:
|
|
144
146
|
- doc/api/i/arrows.png
|
145
147
|
- doc/api/i/tree_bg.png
|
146
148
|
- doc/api/i/results_bg.png
|
149
|
+
- doc/api/apple-touch-icon.png
|
147
150
|
- doc/api/created.rid
|
151
|
+
- doc/api/favicon.ico
|
148
152
|
- doc/api/index.html
|
149
153
|
- doc/usage.erb
|
150
154
|
- doc/history.erb
|
@@ -173,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
173
177
|
requirements: []
|
174
178
|
|
175
179
|
rubyforge_project: sunaku
|
176
|
-
rubygems_version: 1.3.
|
180
|
+
rubygems_version: 1.3.5
|
177
181
|
signing_key:
|
178
182
|
specification_version: 3
|
179
183
|
summary: Ruby interface to the wmii window manager
|
data/doc/index.xhtml
DELETED
@@ -1,1078 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
3
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
|
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=">
|
16
|
-
]>
|
17
|
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
18
|
-
<head>
|
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 3.0.0</title>
|
23
|
-
|
24
|
-
<meta name="author" content="Suraj N. Kurapati"/>
|
25
|
-
|
26
|
-
<meta name="date" content="11 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>
|
33
|
-
|
34
|
-
<style type="text/css" media="screen">
|
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[*/
|
44
|
-
/* decorate external hyperlinks with a visual indicator */
|
45
|
-
a[href]:not([href^="#"])
|
46
|
-
{
|
47
|
-
background : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC");
|
48
|
-
background-position : center right;
|
49
|
-
background-repeat : no-repeat;
|
50
|
-
padding-right : 13px;
|
51
|
-
}
|
52
|
-
|
53
|
-
/* display icon for blockquote elements */
|
54
|
-
blockquote
|
55
|
-
{
|
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=");
|
57
|
-
background-repeat : no-repeat;
|
58
|
-
margin-left : 0;
|
59
|
-
padding-left : 65px;
|
60
|
-
min-height : 50px;
|
61
|
-
}
|
62
|
-
/*]]>*/
|
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>
|
120
|
-
</head>
|
121
|
-
<body>
|
122
|
-
<div id="body">
|
123
|
-
|
124
|
-
<br style="display: none"/>
|
125
|
-
<hr style="display: none"/>
|
126
|
-
<br style="display: none"/>
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
<div id="header">
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
<h1 class="title">Rumai 3.0.0</h1>
|
136
|
-
|
137
|
-
<h2 class="subtitle">Ruby interface to the wmii window manager</h2>
|
138
|
-
|
139
|
-
<h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
|
140
|
-
|
141
|
-
<h3 class="date">11 May 2009</h3>
|
142
|
-
|
143
|
-
|
144
|
-
</div>
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
<br style="display: none"/>
|
152
|
-
<hr style="display: none"/>
|
153
|
-
<br style="display: none"/>
|
154
|
-
|
155
|
-
|
156
|
-
<div id="toc">
|
157
|
-
<a name="Contents"/><div class="nav" id="Contents"><a title="Focus this segment" href="#Contents"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Return to listing" href="#rev:Contents"><img class="icon" alt="≡" src="&icon_nav_list;"/></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-3.0.0-2009-05-11" href="#Version-3.0.0-2009-05-11">Version 3.0.0 (2009-05-11)</a><ul><li><a id="rev:Incompatible-changes" href="#Incompatible-changes">Incompatible changes</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.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-612007698" href="#New-features-612007698">New features</a></li><li><a id="rev:Bug-fixes-612014748" href="#Bug-fixes-612014748">Bug fixes</a></li><li><a id="rev:Housekeeping-612018528" href="#Housekeeping-612018528">Housekeeping</a></li></ul></li><li>4.3 <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-611677758" href="#Thank-you-611677758">Thank you</a></li><li><a id="rev:Bug-fixes-611682128" href="#Bug-fixes-611682128">Bug fixes</a></li></ul></li><li>4.4 <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-611692458" href="#Bug-fixes-611692458">Bug fixes</a></li><li><a id="rev:Housekeeping-611696068" href="#Housekeeping-611696068">Housekeeping</a></li></ul></li><li>4.5 <a id="rev:Version-2.0.0-2008-02-04" href="#Version-2.0.0-2008-02-04">Version 2.0.0 (2008-02-04)</a><ul><li><a id="rev:Thank-you-611714488" href="#Thank-you-611714488">Thank you</a></li><li><a id="rev:Incompatible-changes-611720848" href="#Incompatible-changes-611720848">Incompatible changes</a></li><li><a id="rev:New-features-611728378" href="#New-features-611728378">New features</a></li><li><a id="rev:Bug-fixes-611732428" href="#Bug-fixes-611732428">Bug fixes</a></li></ul></li><li>4.6 <a id="rev:Version-1.0.0-2008-01-26" href="#Version-1.0.0-2008-01-26">Version 1.0.0 (2008-01-26)</a></li></ul></li></ul>
|
160
|
-
</div>
|
161
|
-
|
162
|
-
|
163
|
-
<br style="display: none"/>
|
164
|
-
<hr style="display: none"/>
|
165
|
-
<br style="display: none"/>
|
166
|
-
|
167
|
-
|
168
|
-
<div id="content">
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
<div class="chapter">
|
174
|
-
<a name="Introduction"/><div class="nav" id="Introduction"><a title="Focus this segment" href="#Introduction"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus next segment" href="#Etymology"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Introduction"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
175
|
-
<h1 class="title">
|
176
|
-
Chapter 1
|
177
|
-
<br/>
|
178
|
-
<big>Introduction</big>
|
179
|
-
</h1>
|
180
|
-
<div class="content"><p>Rumai is a <a href='http://ruby-lang.org'>Ruby</a> interface to the <a href='http://wmii.suckless.org'>wmii</a> window manager.</p>
|
181
|
-
|
182
|
-
<ul>
|
183
|
-
<li>
|
184
|
-
<p>It excels at dynamic arrangement of clients, columns, views, and tags.</p>
|
185
|
-
</li>
|
186
|
-
|
187
|
-
<li>
|
188
|
-
<p>It provides an <a class="xref" href="#shell" title="Paragraph. "Interactive shell"">interactive shell</a> for live entertainment and experimentation.</p>
|
189
|
-
</li>
|
190
|
-
|
191
|
-
<li>
|
192
|
-
<p>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://libs.suckless.org/libixp'>IXP file-system interface</a> is built.</p>
|
193
|
-
</li>
|
194
|
-
</ul><p> These features distinguish Rumai from the competition:</p>
|
195
|
-
|
196
|
-
<ul>
|
197
|
-
<li><a href='http://libs.suckless.org/r9p'>r9p</a></li>
|
198
|
-
|
199
|
-
<li><a href='http://rubyforge.org/projects/rii/'>Rii</a></li>
|
200
|
-
|
201
|
-
<li><a href='http://home.gna.org/rubyixp/'>Ruby-IXP</a></li>
|
202
|
-
|
203
|
-
<li><a href='http://eigenclass.org/hiki.rb?wmii+ruby'>ruby-wmii</a></li>
|
204
|
-
</ul>
|
205
|
-
|
206
|
-
<div class="paragraph">
|
207
|
-
<a name="Etymology"/><div class="nav" id="Etymology"><a title="Focus this segment" href="#Etymology"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Introduction"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Logistics"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Etymology"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
208
|
-
<p class="title">Etymology</p>
|
209
|
-
<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>
|
210
|
-
|
211
|
-
<p>Since this is a Ruby library, I added a “roo” and worked it through:</p>
|
212
|
-
|
213
|
-
<ul>
|
214
|
-
<li>vim-eye</li>
|
215
|
-
|
216
|
-
<li>roo-vim-eye</li>
|
217
|
-
|
218
|
-
<li>roovm-eye</li>
|
219
|
-
</ul>
|
220
|
-
|
221
|
-
<p>And thus we get “Rumai”.</p></div>
|
222
|
-
</div><div class="section">
|
223
|
-
<a name="Logistics"/><div class="nav" id="Logistics"><a title="Focus this segment" href="#Logistics"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Etymology"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-numbers"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Logistics"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
224
|
-
<h2 class="title">
|
225
|
-
1.1 Logistics
|
226
|
-
</h2>
|
227
|
-
<div class="content"><ul>
|
228
|
-
<li><a class="xref" href="#History" title="Chapter 4. "History"">Release notes</a> — history of project releases.</li>
|
229
|
-
|
230
|
-
<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>
|
231
|
-
|
232
|
-
<li><a href='./api/index.html'>API reference</a> — documentation for source code.</li>
|
233
|
-
|
234
|
-
<li><a href='http://snk.tuxfamily.org/lib/rumai/'>Project home</a> — the Rumai project home page.</li>
|
235
|
-
</ul>
|
236
|
-
|
237
|
-
<p>To get help or provide feedback, simply <a class="xref" href="#License" title="Section 1.2. "License"">contact the author(s)</a>.</p>
|
238
|
-
|
239
|
-
<div class="paragraph">
|
240
|
-
<a name="Version-numbers"/><div class="nav" id="Version-numbers"><a title="Focus this segment" href="#Version-numbers"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Logistics"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#License"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-numbers"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
241
|
-
<p class="title">Version numbers</p>
|
242
|
-
<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>
|
243
|
-
<table border="1">
|
244
|
-
<thead>
|
245
|
-
<tr>
|
246
|
-
<td rowspan='2'>What increased in the version number?</td>
|
247
|
-
<td colspan='3'>The increase indicates that the release:</td>
|
248
|
-
</tr>
|
249
|
-
<tr>
|
250
|
-
<th>Is backward compatible?</th>
|
251
|
-
<th>Has new features?</th>
|
252
|
-
<th>Has bug fixes?</th>
|
253
|
-
</tr>
|
254
|
-
</thead>
|
255
|
-
<tbody>
|
256
|
-
<tr>
|
257
|
-
<th>major</th>
|
258
|
-
<td style='background-color: #FFE4E1;'>No</td>
|
259
|
-
<td>Yes</td>
|
260
|
-
<td>Yes</td>
|
261
|
-
</tr>
|
262
|
-
<tr>
|
263
|
-
<th>minor</th>
|
264
|
-
<td>Yes</td>
|
265
|
-
<td>Yes</td>
|
266
|
-
<td>Yes</td>
|
267
|
-
</tr>
|
268
|
-
<tr>
|
269
|
-
<th>patch</th>
|
270
|
-
<td>Yes</td>
|
271
|
-
<td style='background-color: #FFE4E1;'>No</td>
|
272
|
-
<td>Yes</td>
|
273
|
-
</tr>
|
274
|
-
</tbody>
|
275
|
-
</table></div>
|
276
|
-
</div><p></p></div>
|
277
|
-
</div><div class="section">
|
278
|
-
<a name="License"/><div class="nav" id="License"><a title="Focus this segment" href="#License"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-numbers"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Credits"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:License"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
279
|
-
<h2 class="title">
|
280
|
-
1.2 License
|
281
|
-
</h2>
|
282
|
-
<div class="content"><p>(the ISC license)</p>
|
283
|
-
|
284
|
-
<p>Copyright 2006 Suraj N. Kurapati <a href='mailto:sunaku@gmail.com'>sunaku@gmail.com</a></p>
|
285
|
-
|
286
|
-
<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>
|
287
|
-
|
288
|
-
<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>
|
289
|
-
</div><div class="section">
|
290
|
-
<a name="Credits"/><div class="nav" id="Credits"><a title="Focus this segment" href="#Credits"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#License"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Setup"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Credits"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
291
|
-
<h2 class="title">
|
292
|
-
1.3 Credits
|
293
|
-
</h2>
|
294
|
-
<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>
|
295
|
-
|
296
|
-
<ul>
|
297
|
-
<li><a href='http://textmode.at'>Christoph Blank</a></li>
|
298
|
-
|
299
|
-
<li>Michael Andrus</li>
|
300
|
-
|
301
|
-
<li><a href='http://github.com/Tass'>Simon Hafner</a></li>
|
302
|
-
</ul></div>
|
303
|
-
</div><p> </p></div>
|
304
|
-
</div>
|
305
|
-
|
306
|
-
<div class="chapter">
|
307
|
-
<a name="Setup"/><div class="nav" id="Setup"><a title="Focus this segment" href="#Setup"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Credits"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Requirements"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Setup"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
308
|
-
<h1 class="title">
|
309
|
-
Chapter 2
|
310
|
-
<br/>
|
311
|
-
<big>Setup</big>
|
312
|
-
</h1>
|
313
|
-
<div class="content"><div class="section">
|
314
|
-
<a name="Requirements"/><div class="nav" id="Requirements"><a title="Focus this segment" href="#Requirements"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Setup"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Installation"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Requirements"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
315
|
-
<h2 class="title">
|
316
|
-
2.1 Requirements
|
317
|
-
</h2>
|
318
|
-
<div class="content"><p>Your system needs the following software to run Rumai.</p>
|
319
|
-
<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>
|
320
|
-
</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>
|
321
|
-
</tr><tr><td style='text-align: left;'><a href='http://wmii.suckless.org'>wmii</a></td><td style='text-align: left;'>Window manager</td><td style='text-align: left;'>Version 3.6 or newer is required.</td>
|
322
|
-
</tr></tbody></table></div>
|
323
|
-
</div><div class="section">
|
324
|
-
<a name="Installation"/><div class="nav" id="Installation"><a title="Focus this segment" href="#Installation"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Requirements"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Manifest"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Installation"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
325
|
-
<h2 class="title">
|
326
|
-
2.2 Installation
|
327
|
-
</h2>
|
328
|
-
<div class="content"><p>You can install Rumai by running this command:</p>
|
329
|
-
|
330
|
-
<pre>gem install rumai</pre>
|
331
|
-
|
332
|
-
<p>To check whether the installation was sucessful, run this command:</p>
|
333
|
-
|
334
|
-
<pre>rumai --version</pre>
|
335
|
-
|
336
|
-
<p>If the installation was successful, you will see output like this:</p>
|
337
|
-
|
338
|
-
<pre>project: Rumai
|
339
|
-
version: 3.0.0
|
340
|
-
release: 2009-05-11
|
341
|
-
website: http://snk.tuxfamily.org/lib/rumai/
|
342
|
-
install: /home/sun/src/rumai</pre><p></p>
|
343
|
-
|
344
|
-
<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>
|
345
|
-
</div><div class="section">
|
346
|
-
<a name="Manifest"/><div class="nav" id="Manifest"><a title="Focus this segment" href="#Manifest"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Installation"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Usage"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Manifest"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
347
|
-
<h2 class="title">
|
348
|
-
2.3 Manifest
|
349
|
-
</h2>
|
350
|
-
<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>
|
351
|
-
|
352
|
-
<pre>rumai --version</pre>
|
353
|
-
|
354
|
-
<ul>
|
355
|
-
<li>
|
356
|
-
<p><tt>bin/</tt></p>
|
357
|
-
|
358
|
-
<ul>
|
359
|
-
<li><tt>rumai</tt> — the main Rumai executable.</li>
|
360
|
-
</ul>
|
361
|
-
</li>
|
362
|
-
|
363
|
-
<li>
|
364
|
-
<p><tt>lib/</tt></p>
|
365
|
-
|
366
|
-
<ul>
|
367
|
-
<li>
|
368
|
-
<p><tt>rumai.rb</tt> — the main Rumai library.</p>
|
369
|
-
</li>
|
370
|
-
|
371
|
-
<li>
|
372
|
-
<p><tt>rumai/</tt></p>
|
373
|
-
|
374
|
-
<ul>
|
375
|
-
<li><tt>ixp.rb</tt> - pure Ruby client for the <a href='http://cm.bell-labs.com/magic/man2html/5/intro'>9P2000 protocol</a></li>
|
376
|
-
</ul>
|
377
|
-
</li>
|
378
|
-
</ul>
|
379
|
-
</li>
|
380
|
-
|
381
|
-
<li>
|
382
|
-
<p><tt>doc/</tt></p>
|
383
|
-
|
384
|
-
<ul>
|
385
|
-
<li>
|
386
|
-
<p><tt>api/</tt> — API reference documentation.</p>
|
387
|
-
</li>
|
388
|
-
|
389
|
-
<li>
|
390
|
-
<p><tt>index.erb</tt> — source of this user manual.</p>
|
391
|
-
</li>
|
392
|
-
</ul>
|
393
|
-
</li>
|
394
|
-
|
395
|
-
<li>
|
396
|
-
<p><tt>LICENSE</tt> — copyright notice and legal conditions.</p>
|
397
|
-
</li>
|
398
|
-
</ul></div>
|
399
|
-
</div><p> </p></div>
|
400
|
-
</div>
|
401
|
-
|
402
|
-
<div class="chapter">
|
403
|
-
<a name="Usage"/><div class="nav" id="Usage"><a title="Focus this segment" href="#Usage"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Manifest"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Concepts"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Usage"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
404
|
-
<h1 class="title">
|
405
|
-
Chapter 3
|
406
|
-
<br/>
|
407
|
-
<big>Usage</big>
|
408
|
-
</h1>
|
409
|
-
<div class="content"><div class="section">
|
410
|
-
<a name="Concepts"/><div class="nav" id="Concepts"><a title="Focus this segment" href="#Concepts"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Usage"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Command-line-interface"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Concepts"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
411
|
-
<h2 class="title">
|
412
|
-
3.1 Concepts
|
413
|
-
</h2>
|
414
|
-
<div class="content"><dl>
|
415
|
-
<dt>Client</dt>
|
416
|
-
|
417
|
-
<dd>
|
418
|
-
<p>Any graphical program (a “window”) that is running in your X session.</p>
|
419
|
-
</dd>
|
420
|
-
|
421
|
-
<dt>Tag</dt>
|
422
|
-
|
423
|
-
<dd>
|
424
|
-
<p>An arbitrary label that can be associated with one or more clients.</p>
|
425
|
-
</dd>
|
426
|
-
|
427
|
-
<dt>View</dt>
|
428
|
-
|
429
|
-
<dd>
|
430
|
-
<p>A visualization of a particular tag. A “workspace”.</p>
|
431
|
-
</dd>
|
432
|
-
|
433
|
-
<dt>Area</dt>
|
434
|
-
|
435
|
-
<dd>
|
436
|
-
<p>A region inside a view. It can contain clients.</p>
|
437
|
-
</dd>
|
438
|
-
|
439
|
-
<dt>Managed area, column</dt>
|
440
|
-
|
441
|
-
<dd>
|
442
|
-
<p>An area whose clients cannot overlap each other.</p>
|
443
|
-
</dd>
|
444
|
-
|
445
|
-
<dt>Floating area</dt>
|
446
|
-
|
447
|
-
<dd>
|
448
|
-
<p>An area whose clients:</p>
|
449
|
-
|
450
|
-
<ul>
|
451
|
-
<li>can overlap each other</li>
|
452
|
-
|
453
|
-
<li>float above clients in the managed areas</li>
|
454
|
-
</ul>
|
455
|
-
</dd>
|
456
|
-
</dl></div>
|
457
|
-
</div><div class="section">
|
458
|
-
<a name="Command-line-interface"/><div class="nav" id="Command-line-interface"><a title="Focus this segment" href="#Command-line-interface"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Concepts"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#shell"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Command-line-interface"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
459
|
-
<h2 class="title">
|
460
|
-
3.2 Command-line interface
|
461
|
-
</h2>
|
462
|
-
<div class="content"><p>When you run this command:</p>
|
463
|
-
|
464
|
-
<pre>rumai --help</pre>
|
465
|
-
|
466
|
-
<p>You will see this output:</p>
|
467
|
-
|
468
|
-
<pre>Rumai - Ruby interface to the wmii window manager
|
469
|
-
|
470
|
-
This program is an interactive shell for Rumai.
|
471
|
-
|
472
|
-
Usage:
|
473
|
-
|
474
|
-
rumai [Options]
|
475
|
-
rumai [Options] -- Arguments
|
476
|
-
|
477
|
-
Arguments: Command-line options and arguments that should
|
478
|
-
be passed to `irb`, the interactive Ruby shell.
|
479
|
-
|
480
|
-
Options:
|
481
|
-
|
482
|
-
--manual, -m: Show the user manual
|
483
|
-
--locale, -l <s>: Set preferred language
|
484
|
-
--version, -v: Print version and exit
|
485
|
-
--help, -h: Show this message</pre><p></p>
|
486
|
-
|
487
|
-
<div class="paragraph">
|
488
|
-
<a name="shell"/><div class="nav" id="shell"><a title="Focus this segment" href="#shell"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Command-line-interface"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Tutorial"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:shell"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
489
|
-
<p class="title">Interactive shell</p>
|
490
|
-
<div class="content"><p>When you run this command:</p>
|
491
|
-
|
492
|
-
<pre>rumai</pre>
|
493
|
-
|
494
|
-
<p>An IRB session will begin, showing you a command prompt like this:</p>
|
495
|
-
|
496
|
-
<pre>irb(Rumai):001:0></pre>
|
497
|
-
|
498
|
-
<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>
|
499
|
-
|
500
|
-
<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>
|
501
|
-
|
502
|
-
<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>
|
503
|
-
</div><p></p></div>
|
504
|
-
</div><div class="section">
|
505
|
-
<a name="Tutorial"/><div class="nav" id="Tutorial"><a title="Focus this segment" href="#Tutorial"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#shell"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Automated-client-arrangement"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Tutorial"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
506
|
-
<h2 class="title">
|
507
|
-
3.3 Tutorial
|
508
|
-
</h2>
|
509
|
-
<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>
|
510
|
-
|
511
|
-
<div class="section">
|
512
|
-
<a name="Automated-client-arrangement"/><div class="nav" id="Automated-client-arrangement"><a title="Focus this segment" href="#Automated-client-arrangement"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Tutorial"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Multiple-client-grouping"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Automated-client-arrangement"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
513
|
-
<h3 class="title">
|
514
|
-
3.3.1 Automated client arrangement
|
515
|
-
</h3>
|
516
|
-
<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>
|
517
|
-
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 sh -c read &</span><span style="color:#710">"</span></span> }
|
518
|
-
</pre></ins></p>
|
519
|
-
|
520
|
-
<p>Arrange all clients in a grid:</p>
|
521
|
-
|
522
|
-
<p><ins><pre class="para">curr_view.arrange_in_grid
|
523
|
-
</pre></ins></p>
|
524
|
-
|
525
|
-
<p>Arrange all clients in a diamond shape:</p>
|
526
|
-
|
527
|
-
<p><ins><pre class="para">curr_view.arrange_in_diamond
|
528
|
-
</pre></ins></p>
|
529
|
-
|
530
|
-
<p>Arrange all clients like LarsWM does:</p>
|
531
|
-
|
532
|
-
<p><ins><pre class="para">curr_view.arrange_as_larswm
|
533
|
-
</pre></ins></p>
|
534
|
-
|
535
|
-
<p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
|
536
|
-
terms.each {|c| c.kill }
|
537
|
-
</pre></ins></p></div>
|
538
|
-
</div><div class="section">
|
539
|
-
<a name="Multiple-client-grouping"/><div class="nav" id="Multiple-client-grouping"><a title="Focus this segment" href="#Multiple-client-grouping"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Automated-client-arrangement"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Easy-column-manipulation"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Multiple-client-grouping"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
540
|
-
<h3 class="title">
|
541
|
-
3.3.2 Multiple client grouping
|
542
|
-
</h3>
|
543
|
-
<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>
|
544
|
-
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 sh -c read &</span><span style="color:#710">"</span></span> }
|
545
|
-
</pre></ins></p>
|
546
|
-
|
547
|
-
<p>Add the red, green, and blue terminals into the “grouping”:</p>
|
548
|
-
|
549
|
-
<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 }
|
550
|
-
terms.each {|c| c.group }
|
551
|
-
</pre></ins></p>
|
552
|
-
|
553
|
-
<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>
|
554
|
-
|
555
|
-
<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>
|
556
|
-
puts v.clients.map {|c| c.label.read }
|
557
|
-
</pre></ins></p>
|
558
|
-
|
559
|
-
<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>
|
560
|
-
|
561
|
-
<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>
|
562
|
-
|
563
|
-
<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> }
|
564
|
-
</pre></ins></p>
|
565
|
-
|
566
|
-
<p>Neat! Let us bring them back into the managed area:</p>
|
567
|
-
|
568
|
-
<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> }
|
569
|
-
</pre></ins></p>
|
570
|
-
|
571
|
-
<p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
|
572
|
-
terms.each {|c| c.kill }
|
573
|
-
</pre></ins></p>
|
574
|
-
|
575
|
-
<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>
|
576
|
-
|
577
|
-
<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>
|
578
|
-
</div><div class="section">
|
579
|
-
<a name="Easy-column-manipulation"/><div class="nav" id="Easy-column-manipulation"><a title="Focus this segment" href="#Easy-column-manipulation"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Multiple-client-grouping"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Easy-client-manipulation"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Easy-column-manipulation"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
580
|
-
<h3 class="title">
|
581
|
-
3.3.3 Easy column manipulation
|
582
|
-
</h3>
|
583
|
-
<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>
|
584
|
-
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 sh -c read &</span><span style="color:#710">"</span></span> }
|
585
|
-
</pre></ins></p>
|
586
|
-
|
587
|
-
<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>
|
588
|
-
|
589
|
-
<p>Give each client its own column (one client per column):</p>
|
590
|
-
|
591
|
-
<p><ins><pre class="para">curr_view.each_column {|c| c.length = <span style="color:#00D;font-weight:bold">1</span> }
|
592
|
-
</pre></ins></p>
|
593
|
-
|
594
|
-
<p>Put (at most) three clients in every column:</p>
|
595
|
-
|
596
|
-
<p><ins><pre class="para">curr_view.each_column {|c| c.length = <span style="color:#00D;font-weight:bold">3</span> }
|
597
|
-
</pre></ins></p>
|
598
|
-
|
599
|
-
<p>Move the red, green, and blue clients into the floating area:</p>
|
600
|
-
|
601
|
-
<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>
|
602
|
-
terms = curr_view.clients.select {|c| rgb.include? c.label.read }
|
603
|
-
curr_view.areas[<span style="color:#00D;font-weight:bold">0</span>].push terms
|
604
|
-
</pre></ins></p>
|
605
|
-
|
606
|
-
<p>Slurp all floating clients into the last column:</p>
|
607
|
-
|
608
|
-
<p><ins><pre class="para">list = curr_view.areas
|
609
|
-
a, b = list.first, list.last
|
610
|
-
b.concat a
|
611
|
-
</pre></ins></p>
|
612
|
-
|
613
|
-
<p>Set the last column’s layout to stacking mode:</p>
|
614
|
-
|
615
|
-
<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>
|
616
|
-
</pre></ins></p>
|
617
|
-
|
618
|
-
<p>Move the red, green, and blue clients to the top of the second column:</p>
|
619
|
-
|
620
|
-
<p><ins><pre class="para">curr_view.areas[<span style="color:#00D;font-weight:bold">2</span>].unshift terms
|
621
|
-
</pre></ins></p>
|
622
|
-
|
623
|
-
<p>Move the red, green, and blue clients to the bottom of the third column:</p>
|
624
|
-
|
625
|
-
<p><ins><pre class="para">curr_view.areas[<span style="color:#00D;font-weight:bold">3</span>].push terms
|
626
|
-
</pre></ins></p>
|
627
|
-
|
628
|
-
<p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
|
629
|
-
terms.each {|c| c.kill }
|
630
|
-
</pre></ins></p></div>
|
631
|
-
</div><div class="section">
|
632
|
-
<a name="Easy-client-manipulation"/><div class="nav" id="Easy-client-manipulation"><a title="Focus this segment" href="#Easy-client-manipulation"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Easy-column-manipulation"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Traversing-the-file-system"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Easy-client-manipulation"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
633
|
-
<h3 class="title">
|
634
|
-
3.3.4 Easy client manipulation
|
635
|
-
</h3>
|
636
|
-
<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>
|
637
|
-
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 sh -c read &</span><span style="color:#710">"</span></span> }
|
638
|
-
</pre></ins></p>
|
639
|
-
|
640
|
-
<p>Obtain a reference to the red client:</p>
|
641
|
-
|
642
|
-
<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> }
|
643
|
-
</pre></ins></p>
|
644
|
-
|
645
|
-
<p>Show the red client’s current tags:</p>
|
646
|
-
|
647
|
-
<p><ins><pre class="para">red.tags
|
648
|
-
</pre></ins></p>
|
649
|
-
|
650
|
-
<p>Add the “foo” and “bar” tags to the red client:</p>
|
651
|
-
|
652
|
-
<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>
|
653
|
-
</pre></ins></p>
|
654
|
-
|
655
|
-
<p>Remove the “bar” tag from the red client:</p>
|
656
|
-
|
657
|
-
<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>
|
658
|
-
</pre></ins></p>
|
659
|
-
|
660
|
-
<p>Do complex operations on the red client’s tags:</p>
|
661
|
-
|
662
|
-
<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> }
|
663
|
-
</pre></ins></p>
|
664
|
-
|
665
|
-
<p>Focus the next client after the red client:</p>
|
666
|
-
|
667
|
-
<p><ins><pre class="para">red.next.focus
|
668
|
-
curr_client == red.next <span style="color:#888">#=> true</span>
|
669
|
-
</pre></ins></p>
|
670
|
-
|
671
|
-
<p>Notice that by focusing a client, we make it the current client.</p>
|
672
|
-
|
673
|
-
<p>Focus the red client on a different view:</p>
|
674
|
-
|
675
|
-
<p><ins><pre class="para">orig = curr_view
|
676
|
-
v = red.views.last
|
677
|
-
red.focus v
|
678
|
-
</pre></ins></p>
|
679
|
-
|
680
|
-
<p>Return to the original view:</p>
|
681
|
-
|
682
|
-
<p><ins><pre class="para">orig.focus
|
683
|
-
</pre></ins></p>
|
684
|
-
|
685
|
-
<p>Send the red client to the last column:</p>
|
686
|
-
|
687
|
-
<p><ins><pre class="para">red.send curr_view.areas.last
|
688
|
-
</pre></ins></p>
|
689
|
-
|
690
|
-
<p>Close the terminals we launched earlier: <ins><pre class="para">terms = curr_view.clients.select {|c| colors.include? c.label.read }
|
691
|
-
terms.each {|c| c.kill }
|
692
|
-
</pre></ins></p></div>
|
693
|
-
</div><div class="section">
|
694
|
-
<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" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Easy-client-manipulation"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Available-commands"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Traversing-the-file-system"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
695
|
-
<h3 class="title">
|
696
|
-
3.3.5 Traversing the file system
|
697
|
-
</h3>
|
698
|
-
<div class="content"><p>Show the root node of wmii’s IXP file system:</p>
|
699
|
-
|
700
|
-
<p><ins><pre class="para">fs
|
701
|
-
</pre></ins></p>
|
702
|
-
|
703
|
-
<p>Show the names of all files at the root level:</p>
|
704
|
-
|
705
|
-
<p><ins><pre class="para">fs.entries
|
706
|
-
</pre></ins></p>
|
707
|
-
|
708
|
-
<p>Show the parent of the root node:</p>
|
709
|
-
|
710
|
-
<p><ins><pre class="para">fs.parent
|
711
|
-
</pre></ins></p>
|
712
|
-
|
713
|
-
<p>Show the children of the root node:</p>
|
714
|
-
|
715
|
-
<p><ins><pre class="para">fs.children
|
716
|
-
</pre></ins></p>
|
717
|
-
|
718
|
-
<p>Navigate into to the <tt>/lbar/</tt> directory:</p>
|
719
|
-
|
720
|
-
<p><ins><pre class="para">n1 = fs.lbar
|
721
|
-
n2 = fs[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">lbar</span><span style="color:#710">'</span></span>]
|
722
|
-
n1 == n2 <span style="color:#888">#=> true</span>
|
723
|
-
left_bar = n1
|
724
|
-
</pre></ins></p>
|
725
|
-
|
726
|
-
<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>
|
727
|
-
|
728
|
-
<p>Create a new temporary button:</p>
|
729
|
-
|
730
|
-
<p><ins><pre class="para">b = left_bar.rumai_example <span style="color:#888"># path of new button</span>
|
731
|
-
b.exist? <span style="color:#888">#=> false</span>
|
732
|
-
b.create
|
733
|
-
b.exist? <span style="color:#888">#=> true</span>
|
734
|
-
</pre></ins></p>
|
735
|
-
|
736
|
-
<p>You should now see an empty button on the left-hand side of the wmii bar.</p>
|
737
|
-
|
738
|
-
<p>Color the button black-on-white and label it as “hello world”:</p>
|
739
|
-
|
740
|
-
<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>
|
741
|
-
b.write content
|
742
|
-
b.read == content <span style="color:#888">#=> true</span>
|
743
|
-
</pre></ins></p>
|
744
|
-
|
745
|
-
<p>Remove the temporary button:</p>
|
746
|
-
|
747
|
-
<p><ins><pre class="para">b.remove
|
748
|
-
b.exist? <span style="color:#888">#=> false</span>
|
749
|
-
</pre></ins></p></div>
|
750
|
-
</div><div class="section">
|
751
|
-
<a name="Available-commands"/><div class="nav" id="Available-commands"><a title="Focus this segment" href="#Available-commands"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Traversing-the-file-system"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#wmiirc"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Available-commands"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
752
|
-
<h3 class="title">
|
753
|
-
3.3.6 Available commands
|
754
|
-
</h3>
|
755
|
-
<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>
|
756
|
-
</div><p> </p></div>
|
757
|
-
</div><div class="section">
|
758
|
-
<a name="wmiirc"/><div class="nav" id="wmiirc"><a title="Focus this segment" href="#wmiirc"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Available-commands"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#History"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:wmiirc"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
759
|
-
<h2 class="title">
|
760
|
-
3.4 Scripting your wmiirc
|
761
|
-
</h2>
|
762
|
-
<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>
|
763
|
-
</div><p> </p></div>
|
764
|
-
</div>
|
765
|
-
|
766
|
-
<div class="chapter">
|
767
|
-
<a name="History"/><div class="nav" id="History"><a title="Focus this segment" href="#History"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#wmiirc"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-3.0.0-2009-05-11"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:History"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
768
|
-
<h1 class="title">
|
769
|
-
Chapter 4
|
770
|
-
<br/>
|
771
|
-
<big>History</big>
|
772
|
-
</h1>
|
773
|
-
<div class="content"><div class="section">
|
774
|
-
<a name="Version-3.0.0-2009-05-11"/><div class="nav" id="Version-3.0.0-2009-05-11"><a title="Focus this segment" href="#Version-3.0.0-2009-05-11"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#History"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Incompatible-changes"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-3.0.0-2009-05-11"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
775
|
-
<h2 class="title">
|
776
|
-
4.1 Version 3.0.0 (2009-05-11)
|
777
|
-
</h2>
|
778
|
-
<div class="content"><p>This release revises method names, adds new methods, and fixes a bug.</p>
|
779
|
-
|
780
|
-
<div class="paragraph">
|
781
|
-
<a name="Incompatible-changes"/><div class="nav" id="Incompatible-changes"><a title="Focus this segment" href="#Incompatible-changes"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-3.0.0-2009-05-11"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#New-features"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Incompatible-changes"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
782
|
-
<p class="title">Incompatible changes</p>
|
783
|
-
<div class="content"><ul>
|
784
|
-
<li>
|
785
|
-
<p>Rename <code class="line"><span style="color:#888">#toggle_</span></code> methods to use <code class="line">!</code> suffix in their names.</p>
|
786
|
-
</li>
|
787
|
-
|
788
|
-
<li>
|
789
|
-
<p>Rename <code class="line"><span style="color:#888">#float</span></code> methods to <code class="line"><span style="color:#888">#floating</span></code>.</p>
|
790
|
-
</li>
|
791
|
-
|
792
|
-
<li>
|
793
|
-
<p>Rename <code class="line"><span style="color:#036;font-weight:bold">View</span><span style="color:#888">#floater</span></code> method to <code class="line"><span style="color:#036;font-weight:bold">View</span><span style="color:#888">#floating_area</span></code>.</p>
|
794
|
-
</li>
|
795
|
-
</ul></div>
|
796
|
-
</div><div class="paragraph">
|
797
|
-
<a name="New-features"/><div class="nav" id="New-features"><a title="Focus this segment" href="#New-features"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Incompatible-changes"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:New-features"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
798
|
-
<p class="title">New features</p>
|
799
|
-
<div class="content"><ul>
|
800
|
-
<li>
|
801
|
-
<p>Add <code class="line"><span style="color:#036;font-weight:bold">Client</span><span style="color:#888">#stick</span></code> methods to manipulate sticky status.</p>
|
802
|
-
</li>
|
803
|
-
|
804
|
-
<li>
|
805
|
-
<p>Add <code class="line"><span style="color:#036;font-weight:bold">Client</span><span style="color:#888">#fullscreen</span></code> methods to manipulate fullscreen status.</p>
|
806
|
-
</li>
|
807
|
-
|
808
|
-
<li>
|
809
|
-
<p>Add <code class="line"><span style="color:#036;font-weight:bold">Client</span><span style="color:#888">#slay</span></code> method which is a forceful version of <code class="line"><span style="color:#888">#kill</span></code>.</p>
|
810
|
-
</li>
|
811
|
-
|
812
|
-
<li>
|
813
|
-
<p>Add <code class="line"><span style="color:#036;font-weight:bold">View</span><span style="color:#888">#select</span></code> method to move focus relatively inside a view.</p>
|
814
|
-
</li>
|
815
|
-
|
816
|
-
<li>
|
817
|
-
<p>Add <code class="line"><span style="color:#036;font-weight:bold">Area</span>::floating</code> method for symmetry with <code class="line"><span style="color:#036;font-weight:bold">Area</span>::curr</code>.</p>
|
818
|
-
</li>
|
819
|
-
|
820
|
-
<li>
|
821
|
-
<p>Add <code class="line"><span style="color:#036;font-weight:bold">View</span><span style="color:#888">#managed_area</span></code> aliases for <code class="line"><span style="color:#036;font-weight:bold">View</span><span style="color:#888">#column</span></code> methods.</p>
|
822
|
-
</li>
|
823
|
-
</ul></div>
|
824
|
-
</div><div class="paragraph">
|
825
|
-
<a name="Bug-fixes"/><div class="nav" id="Bug-fixes"><a title="Focus this segment" href="#Bug-fixes"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#New-features"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Housekeeping"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
826
|
-
<p class="title">Bug fixes</p>
|
827
|
-
<div class="content"><ul>
|
828
|
-
<li>
|
829
|
-
<p>Fix error when unzooming clients from temporary view.</p>
|
830
|
-
</li>
|
831
|
-
|
832
|
-
<li>
|
833
|
-
<p>Fix code that launches temporary terminals in <a class="xref" href="#Tutorial" title="Section 3.3">Tutorial</a>.</p>
|
834
|
-
|
835
|
-
<p>Use the <tt>/bin/sh</tt> version of the <strong>read</strong> command for portability.</p>
|
836
|
-
</li>
|
837
|
-
</ul></div>
|
838
|
-
</div><div class="paragraph">
|
839
|
-
<a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="Focus this segment" href="#Housekeeping"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-2.1.0-2009-05-09"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Housekeeping"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
840
|
-
<p class="title">Housekeeping</p>
|
841
|
-
<div class="content"><ul>
|
842
|
-
<li>
|
843
|
-
<p>Use <code class="line"><span style="color:#036;font-weight:bold">Client</span><span style="color:#888">#send</span></code> instead of <code class="line"><span style="color:#888">#swap</span></code> in automated arrangements because it causes less traffic on /event/.</p>
|
844
|
-
</li>
|
845
|
-
|
846
|
-
<li>
|
847
|
-
<p>Add old release notes from blog to user manual.</p>
|
848
|
-
</li>
|
849
|
-
</ul></div>
|
850
|
-
</div><p> </p></div>
|
851
|
-
</div><div class="section">
|
852
|
-
<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" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Housekeeping"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Thank-you"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-2.1.0-2009-05-09"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
853
|
-
<h2 class="title">
|
854
|
-
4.2 Version 2.1.0 (2009-05-09)
|
855
|
-
</h2>
|
856
|
-
<div class="content"><p>This release improves client arrangement, fixes several bugs, and cleans up the code.</p>
|
857
|
-
|
858
|
-
<div class="paragraph">
|
859
|
-
<a name="Thank-you"/><div class="nav" id="Thank-you"><a title="Focus this segment" href="#Thank-you"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-2.1.0-2009-05-09"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#New-features-612007698"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Thank-you"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
860
|
-
<p class="title">Thank you</p>
|
861
|
-
<div class="content"><ul>
|
862
|
-
<li>Simon Hafner reported several bugs.</li>
|
863
|
-
|
864
|
-
<li>Michael Andrus verified bug fixes.</li>
|
865
|
-
</ul></div>
|
866
|
-
</div><div class="paragraph">
|
867
|
-
<a name="New-features-612007698"/><div class="nav" id="New-features-612007698"><a title="Focus this segment" href="#New-features-612007698"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Thank-you"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-612014748"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:New-features-612007698"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
868
|
-
<p class="title">New features</p>
|
869
|
-
<div class="content"><ul>
|
870
|
-
<li>
|
871
|
-
<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>
|
872
|
-
</li>
|
873
|
-
|
874
|
-
<li>
|
875
|
-
<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>
|
876
|
-
</li>
|
877
|
-
|
878
|
-
<li>
|
879
|
-
<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>
|
880
|
-
</li>
|
881
|
-
</ul></div>
|
882
|
-
</div><div class="paragraph">
|
883
|
-
<a name="Bug-fixes-612014748"/><div class="nav" id="Bug-fixes-612014748"><a title="Focus this segment" href="#Bug-fixes-612014748"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#New-features-612007698"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Housekeeping-612018528"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-612014748"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
884
|
-
<p class="title">Bug fixes</p>
|
885
|
-
<div class="content"><ul>
|
886
|
-
<li>
|
887
|
-
<p>Fix error caused by focusing the top/bottom client in the destination area before sending new clients into that area.</p>
|
888
|
-
</li>
|
889
|
-
|
890
|
-
<li>
|
891
|
-
<p>Fix error when importing clients into an empty area.</p>
|
892
|
-
</li>
|
893
|
-
</ul></div>
|
894
|
-
</div><div class="paragraph">
|
895
|
-
<a name="Housekeeping-612018528"/><div class="nav" id="Housekeeping-612018528"><a title="Focus this segment" href="#Housekeeping-612018528"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-612014748"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-2.0.2-2009-02-26"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Housekeeping-612018528"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
896
|
-
<p class="title">Housekeeping</p>
|
897
|
-
<div class="content"><ul>
|
898
|
-
<li>
|
899
|
-
<p>Use snake_case instead of camelCase for variable names.</p>
|
900
|
-
</li>
|
901
|
-
|
902
|
-
<li>
|
903
|
-
<p>Add copyright notice at the top of every file.</p>
|
904
|
-
</li>
|
905
|
-
|
906
|
-
<li>
|
907
|
-
<p>Plenty of code formatting and beautification.</p>
|
908
|
-
</li>
|
909
|
-
</ul></div>
|
910
|
-
</div><p> </p></div>
|
911
|
-
</div><div class="section">
|
912
|
-
<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" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Housekeeping-612018528"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Thank-you-611677758"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-2.0.2-2009-02-26"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
913
|
-
<h2 class="title">
|
914
|
-
4.3 Version 2.0.2 (2009-02-26)
|
915
|
-
</h2>
|
916
|
-
<div class="content"><p>This release fixes a connection bug.</p>
|
917
|
-
|
918
|
-
<div class="paragraph">
|
919
|
-
<a name="Thank-you-611677758"/><div class="nav" id="Thank-you-611677758"><a title="Focus this segment" href="#Thank-you-611677758"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-2.0.2-2009-02-26"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-611682128"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Thank-you-611677758"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
920
|
-
<p class="title">Thank you</p>
|
921
|
-
<div class="content"><ul>
|
922
|
-
<li>Simon Hafner reported and helped debug the <code class="line"><span style="color:#d70;font-weight:bold">$DISPLAY</span></code> bug.</li>
|
923
|
-
</ul></div>
|
924
|
-
</div><div class="paragraph">
|
925
|
-
<a name="Bug-fixes-611682128"/><div class="nav" id="Bug-fixes-611682128"><a title="Focus this segment" href="#Bug-fixes-611682128"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Thank-you-611677758"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-2.0.1-2009-01-25"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-611682128"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
926
|
-
<p class="title">Bug fixes</p>
|
927
|
-
<div class="content"><ul>
|
928
|
-
<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>
|
929
|
-
</ul></div>
|
930
|
-
</div><p> </p></div>
|
931
|
-
</div><div class="section">
|
932
|
-
<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" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-611682128"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-611692458"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-2.0.1-2009-01-25"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
933
|
-
<h2 class="title">
|
934
|
-
4.4 Version 2.0.1 (2009-01-25)
|
935
|
-
</h2>
|
936
|
-
<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>
|
937
|
-
|
938
|
-
<div class="paragraph">
|
939
|
-
<a name="Bug-fixes-611692458"/><div class="nav" id="Bug-fixes-611692458"><a title="Focus this segment" href="#Bug-fixes-611692458"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-2.0.1-2009-01-25"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Housekeeping-611696068"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-611692458"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
940
|
-
<p class="title">Bug fixes</p>
|
941
|
-
<div class="content"><ul>
|
942
|
-
<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>
|
943
|
-
</ul></div>
|
944
|
-
</div><div class="paragraph">
|
945
|
-
<a name="Housekeeping-611696068"/><div class="nav" id="Housekeeping-611696068"><a title="Focus this segment" href="#Housekeeping-611696068"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-611692458"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-2.0.0-2008-02-04"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Housekeeping-611696068"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
946
|
-
<p class="title">Housekeeping</p>
|
947
|
-
<div class="content"><ul>
|
948
|
-
<li>
|
949
|
-
<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>
|
950
|
-
</li>
|
951
|
-
|
952
|
-
<li>
|
953
|
-
<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>
|
954
|
-
</li>
|
955
|
-
</ul></div>
|
956
|
-
</div><p> </p></div>
|
957
|
-
</div><div class="section">
|
958
|
-
<a name="Version-2.0.0-2008-02-04"/><div class="nav" id="Version-2.0.0-2008-02-04"><a title="Focus this segment" href="#Version-2.0.0-2008-02-04"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Housekeeping-611696068"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Thank-you-611714488"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-2.0.0-2008-02-04"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
959
|
-
<h2 class="title">
|
960
|
-
4.5 Version 2.0.0 (2008-02-04)
|
961
|
-
</h2>
|
962
|
-
<div class="content"><p>This release adds support for wmii 3.6, improves the performance of the IXP library, and fixes some bugs.</p>
|
963
|
-
|
964
|
-
<div class="paragraph">
|
965
|
-
<a name="Thank-you-611714488"/><div class="nav" id="Thank-you-611714488"><a title="Focus this segment" href="#Thank-you-611714488"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-2.0.0-2008-02-04"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Incompatible-changes-611720848"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Thank-you-611714488"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
966
|
-
<p class="title">Thank you</p>
|
967
|
-
<div class="content"><ul>
|
968
|
-
<li>Christoph Blank tested Rumai 1.0.0 under wmii 3.6 and reported bugs.</li>
|
969
|
-
</ul></div>
|
970
|
-
</div><div class="paragraph">
|
971
|
-
<a name="Incompatible-changes-611720848"/><div class="nav" id="Incompatible-changes-611720848"><a title="Focus this segment" href="#Incompatible-changes-611720848"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Thank-you-611714488"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#New-features-611728378"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Incompatible-changes-611720848"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
972
|
-
<p class="title">Incompatible changes</p>
|
973
|
-
<div class="content"><ul>
|
974
|
-
<li>
|
975
|
-
<p>wmii version 3.6 or newer is now required.</p>
|
976
|
-
</li>
|
977
|
-
|
978
|
-
<li>
|
979
|
-
<p>The <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">IXP</span>::<span style="color:#036;font-weight:bold">Agent</span>::<span style="color:#036;font-weight:bold">FidStream</span><span style="color:#888">#read_partial</span></code> method has been replaced by <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">IXP</span>::<span style="color:#036;font-weight:bold">Agent</span>::<span style="color:#036;font-weight:bold">FidStream</span><span style="color:#888">#read(true)</span></code> for efficiency.</p>
|
980
|
-
|
981
|
-
<ul>
|
982
|
-
<li>
|
983
|
-
<p>The <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">IXP</span>::<span style="color:#036;font-weight:bold">Agent</span>::<span style="color:#036;font-weight:bold">FidStream</span><span style="color:#888">#write</span></code> method no longer writes to the beginning of the stream. Instead, it writes to the current position in the stream.</p>
|
984
|
-
</li>
|
985
|
-
|
986
|
-
<li>
|
987
|
-
<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">#floating_area</span></code> method has been renamed to <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">#floater</span></code> for brevity.</p>
|
988
|
-
</li>
|
989
|
-
</ul>
|
990
|
-
</li>
|
991
|
-
</ul></div>
|
992
|
-
</div><div class="paragraph">
|
993
|
-
<a name="New-features-611728378"/><div class="nav" id="New-features-611728378"><a title="Focus this segment" href="#New-features-611728378"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Incompatible-changes-611720848"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-611732428"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:New-features-611728378"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
994
|
-
<p class="title">New features</p>
|
995
|
-
<div class="content"><ul>
|
996
|
-
<li>
|
997
|
-
<p>Added several more methods (such as rewind, pos=, eof?, and so on) from Ruby’s IO class to the <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">IXP</span>::<span style="color:#036;font-weight:bold">Agent</span>::<span style="color:#036;font-weight:bold">FidStream</span></code> class.</p>
|
998
|
-
</li>
|
999
|
-
|
1000
|
-
<li>
|
1001
|
-
<p>Added the <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">Client</span><span style="color:#888">#kill</span></code> method to simplify client termination.</p>
|
1002
|
-
</li>
|
1003
|
-
</ul></div>
|
1004
|
-
</div><div class="paragraph">
|
1005
|
-
<a name="Bug-fixes-611732428"/><div class="nav" id="Bug-fixes-611732428"><a title="Focus this segment" href="#Bug-fixes-611732428"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#New-features-611728378"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-1.0.0-2008-01-26"><img class="icon" alt="↓" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-611732428"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
1006
|
-
<p class="title">Bug fixes</p>
|
1007
|
-
<div class="content"><ul>
|
1008
|
-
<li>Fixed a race condition in <code class="line"><span style="color:#036;font-weight:bold">Rumai</span>::<span style="color:#036;font-weight:bold">Agent</span><span style="color:#888">#talk</span></code> which would cause Rumai to hang when multiple threads used it.</li>
|
1009
|
-
</ul></div>
|
1010
|
-
</div><p> </p></div>
|
1011
|
-
</div><div class="section">
|
1012
|
-
<a name="Version-1.0.0-2008-01-26"/><div class="nav" id="Version-1.0.0-2008-01-26"><a title="Focus this segment" href="#Version-1.0.0-2008-01-26"><img class="icon" alt="∗" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-611732428"><img class="icon" alt="↑" src="&icon_nav_prev;"/></a> <a title="Return to listing" href="#rev:Version-1.0.0-2008-01-26"><img class="icon" alt="≡" src="&icon_nav_list;"/></a></div>
|
1013
|
-
<h2 class="title">
|
1014
|
-
4.6 Version 1.0.0 (2008-01-26)
|
1015
|
-
</h2>
|
1016
|
-
<div class="content"><p>This is the first release of Rumai, the evolution of <a href='http://article.gmane.org/gmane.comp.window-managers.wmii/1704'>wmii-irb</a>, which lets you manipulate the <a href='http://wmii.suckless.org'>wmii</a> window manager through <a href='http://ruby-lang.org'>Ruby</a>.</p>
|
1017
|
-
|
1018
|
-
<p>Happy birthday!</p></div>
|
1019
|
-
</div><p></p><p></p></div>
|
1020
|
-
</div>
|
1021
|
-
</div>
|
1022
|
-
|
1023
|
-
|
1024
|
-
<br style="display: none"/>
|
1025
|
-
<hr style="display: none"/>
|
1026
|
-
<br style="display: none"/>
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
<div id="footer">
|
1032
|
-
|
1033
|
-
Generated by <a href="http://snk.tuxfamily.org/lib/erbook/">ERBook 7.0.0</a> on Mon May 11 21:23:13 -0700 2009.
|
1034
|
-
|
1035
|
-
<div id="footer-credits">
|
1036
|
-
<p>
|
1037
|
-
<img class="icon" alt="here_frag" src="&icon_here_frag;"/>
|
1038
|
-
<img class="icon" alt="caution" src="&icon_caution;"/>
|
1039
|
-
<img class="icon" alt="nav_here" src="&icon_nav_here;"/>
|
1040
|
-
<img class="icon" alt="nav_prev" src="&icon_nav_prev;"/>
|
1041
|
-
<img class="icon" alt="tip" src="&icon_tip;"/>
|
1042
|
-
<img class="icon" alt="important" src="&icon_important;"/>
|
1043
|
-
<img class="icon" alt="nav_list" src="&icon_nav_list;"/>
|
1044
|
-
<img class="icon" alt="note" src="&icon_note;"/>
|
1045
|
-
<img class="icon" alt="warning" src="&icon_warning;"/>
|
1046
|
-
<img class="icon" alt="quote" src="&icon_quote;"/>
|
1047
|
-
<img class="icon" alt="nav_next" src="&icon_nav_next;"/>
|
1048
|
-
|
1049
|
-
<br/>
|
1050
|
-
|
1051
|
-
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>.
|
1052
|
-
</p>
|
1053
|
-
|
1054
|
-
<p>
|
1055
|
-
<img class="icon" alt="hyperlink" src="&icon_hyperlink;"/>
|
1056
|
-
|
1057
|
-
<br/>
|
1058
|
-
|
1059
|
-
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>.
|
1060
|
-
</p>
|
1061
|
-
|
1062
|
-
<p style="margin-top: 3em">
|
1063
|
-
<a href="http://validator.w3.org/check?uri=referer"><img
|
1064
|
-
src="http://www.w3.org/Icons/valid-xhtml10-blue"
|
1065
|
-
alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
|
1066
|
-
|
1067
|
-
<a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"><img
|
1068
|
-
src="http://jigsaw.w3.org/css-validator/images/vcss-blue"
|
1069
|
-
alt="Valid CSS!" height="31" width="88" /></a>
|
1070
|
-
</p>
|
1071
|
-
</div>
|
1072
|
-
|
1073
|
-
</div>
|
1074
|
-
|
1075
|
-
|
1076
|
-
</div>
|
1077
|
-
</body>
|
1078
|
-
</html>
|