gettext 1.91.0 → 1.92.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (238) hide show
  1. data/ChangeLog +111 -1
  2. data/NEWS +35 -0
  3. data/README +26 -24
  4. data/bin/rgettext +2 -2
  5. data/bin/rmsgfmt +2 -2
  6. data/bin/rmsgmerge +2 -2
  7. data/doc/classes/ActionView/Helpers/FormBuilder.html +11 -11
  8. data/doc/classes/ActionView/TemplateFinder.html +152 -0
  9. data/doc/classes/ActiveRecord/Base.html +87 -87
  10. data/doc/classes/ActiveRecord/ConnectionAdapters/Column.html +6 -6
  11. data/doc/classes/GetText.html +617 -491
  12. data/doc/classes/GetText/ActiveRecordParser.html +13 -13
  13. data/doc/classes/GetText/ErbContainer.html +12 -12
  14. data/doc/classes/GetText/ErbParser.html +6 -6
  15. data/doc/classes/GetText/NoboundTextDomainError.html +1 -1
  16. data/doc/classes/GetText/PoParser.html +11 -11
  17. data/doc/classes/GetText/Rails.html +20 -20
  18. data/doc/classes/GetText/RubyParser.html +5 -0
  19. data/doc/classes/GetText/TextDomain.html +53 -53
  20. data/doc/classes/GetText/TextDomainManager.html +54 -54
  21. data/doc/classes/Iconv.html +20 -20
  22. data/doc/classes/Locale.html +151 -151
  23. data/doc/classes/Locale/Object.html +92 -92
  24. data/doc/classes/Locale/SystemBase.html +32 -32
  25. data/doc/classes/Locale/SystemCGI.html +31 -31
  26. data/doc/classes/Locale/SystemWin32.html +6 -6
  27. data/doc/classes/MOFile.html +311 -293
  28. data/doc/classes/MOFile/HeaderRev1.html +150 -0
  29. data/doc/classes/Module.html +6 -6
  30. data/doc/created.rid +1 -1
  31. data/doc/files/ChangeLog.html +143 -2
  32. data/doc/files/README.html +31 -25
  33. data/doc/files/lib/gettext/active_record_rb.html +1 -1
  34. data/doc/files/lib/gettext/mo_rb.html +1 -1
  35. data/doc/files/lib/gettext/parser/active_record_rb.html +1 -1
  36. data/doc/files/lib/gettext/parser/ruby_rb.html +1 -1
  37. data/doc/files/lib/gettext/poparser_rb.html +1 -1
  38. data/doc/files/lib/gettext/rails_rb.html +1 -1
  39. data/doc/files/lib/gettext/rgettext_rb.html +1 -1
  40. data/doc/files/lib/gettext/rmsgfmt_rb.html +2 -1
  41. data/doc/files/lib/gettext/utils_rb.html +1 -1
  42. data/doc/files/lib/gettext/version_rb.html +1 -1
  43. data/doc/files/lib/gettext_rb.html +1 -1
  44. data/doc/fr_class_index.html +2 -0
  45. data/doc/fr_method_index.html +133 -129
  46. data/lib/gettext.rb +49 -7
  47. data/lib/gettext/active_record.rb +49 -4
  48. data/lib/gettext/mo.rb +39 -12
  49. data/lib/gettext/parser/active_record.rb +6 -4
  50. data/lib/gettext/parser/ruby.rb +11 -4
  51. data/lib/gettext/poparser.rb +81 -52
  52. data/lib/gettext/rails.rb +28 -11
  53. data/lib/gettext/rgettext.rb +6 -1
  54. data/lib/gettext/rmsgfmt.rb +3 -11
  55. data/lib/gettext/utils.rb +7 -3
  56. data/lib/gettext/version.rb +1 -1
  57. data/po/bs/rails.po +55 -20
  58. data/po/bs/rgettext.po +3 -3
  59. data/po/ca/rails.po +58 -31
  60. data/po/ca/rgettext.po +16 -18
  61. data/po/cs/rails.po +55 -20
  62. data/po/cs/rgettext.po +3 -3
  63. data/po/de/rails.po +55 -27
  64. data/po/de/rgettext.po +21 -22
  65. data/po/el/rails.po +60 -36
  66. data/po/el/rgettext.po +15 -17
  67. data/po/eo/rails.po +51 -23
  68. data/po/eo/rgettext.po +21 -20
  69. data/po/es/rails.po +57 -31
  70. data/po/es/rgettext.po +17 -18
  71. data/po/et/rails.po +55 -20
  72. data/po/fr/rails.po +56 -21
  73. data/po/fr/rgettext.po +3 -3
  74. data/po/hr/rails.po +55 -20
  75. data/po/hr/rgettext.po +3 -3
  76. data/po/hu/rails.po +54 -26
  77. data/po/hu/rgettext.po +18 -17
  78. data/po/it/rails.po +55 -20
  79. data/po/it/rgettext.po +3 -3
  80. data/po/ja/rails.po +54 -26
  81. data/po/ja/rgettext.po +17 -18
  82. data/po/ko/rails.po +56 -21
  83. data/po/ko/rgettext.po +3 -3
  84. data/po/lv/rails.po +155 -0
  85. data/po/lv/rgettext.po +137 -0
  86. data/po/nb/rails.po +61 -34
  87. data/po/nb/rgettext.po +22 -19
  88. data/po/nl/rails.po +56 -21
  89. data/po/nl/rgettext.po +3 -3
  90. data/po/pt_BR/rails.po +53 -26
  91. data/po/pt_BR/rgettext.po +19 -19
  92. data/po/rails.pot +44 -16
  93. data/po/rgettext.pot +3 -3
  94. data/po/ru/rails.po +62 -36
  95. data/po/ru/rgettext.po +19 -19
  96. data/po/sr/rails.po +87 -58
  97. data/po/sr/rgettext.po +38 -33
  98. data/po/sv/rgettext.po +3 -3
  99. data/po/ua/rails.po +62 -32
  100. data/po/ua/rgettext.po +19 -17
  101. data/po/vi/rails.po +56 -28
  102. data/po/vi/rgettext.po +35 -34
  103. data/po/zh/rails.po +52 -24
  104. data/po/zh/rgettext.po +22 -24
  105. data/po/zh_TW/rails.po +51 -23
  106. data/po/zh_TW/rgettext.po +16 -18
  107. data/samples/cgi/cookie.cgi +0 -0
  108. data/samples/cgi/helloerb1.cgi +0 -0
  109. data/samples/cgi/helloerb2.cgi +0 -0
  110. data/samples/cgi/http.rb +0 -0
  111. data/samples/cgi/index.cgi +0 -0
  112. data/samples/cgi/po/lv/helloerb1.po +65 -0
  113. data/samples/cgi/po/lv/helloerb2.po +52 -0
  114. data/samples/cgi/po/lv/hellolib.po +24 -0
  115. data/samples/cgi/po/lv/main.po +77 -0
  116. data/samples/cgi/po/nb/helloerb1.po +16 -14
  117. data/samples/cgi/po/nb/helloerb2.po +14 -12
  118. data/samples/cgi/po/nb/hellolib.po +9 -7
  119. data/samples/cgi/po/nb/main.po +20 -18
  120. data/samples/cgi/po/sr/helloerb1.po +8 -8
  121. data/samples/cgi/po/sr/helloerb2.po +6 -6
  122. data/samples/cgi/po/sr/hellolib.po +2 -2
  123. data/samples/cgi/po/sr/main.po +15 -15
  124. data/samples/cgi/po/ua/helloerb1.po +2 -2
  125. data/samples/cgi/po/ua/main.po +3 -3
  126. data/samples/hello_plural.rb +0 -0
  127. data/samples/makemo.rb +0 -0
  128. data/samples/po/lv/hello.po +24 -0
  129. data/samples/po/lv/hello2.po +32 -0
  130. data/samples/po/lv/hello_noop.po +28 -0
  131. data/samples/po/lv/hello_plural.po +26 -0
  132. data/samples/po/lv/helloglade2.po +38 -0
  133. data/samples/po/lv/hellogtk.po +24 -0
  134. data/samples/po/lv/hellotk.po +24 -0
  135. data/samples/po/nb/hello.po +9 -8
  136. data/samples/po/nb/hello2.po +9 -9
  137. data/samples/po/nb/hello_noop.po +10 -9
  138. data/samples/po/nb/hello_plural.po +10 -8
  139. data/samples/po/nb/helloglade2.po +10 -8
  140. data/samples/po/nb/hellogtk.po +9 -8
  141. data/samples/po/nb/hellotk.po +9 -7
  142. data/samples/po/sr/hello.po +2 -2
  143. data/samples/po/sr/hello2.po +4 -4
  144. data/samples/po/sr/hello_noop.po +3 -3
  145. data/samples/po/sr/hello_plural.po +3 -3
  146. data/samples/po/sr/helloglade2.po +4 -4
  147. data/samples/po/sr/hellogtk.po +2 -2
  148. data/samples/po/sr/hellotk.po +2 -2
  149. data/samples/po/ua/hello2.po +2 -2
  150. data/samples/po/ua/hello_plural.po +2 -2
  151. data/samples/rails/config/boot.rb +3 -2
  152. data/samples/rails/config/environment.rb +2 -3
  153. data/samples/rails/db/schema.rb +0 -0
  154. data/samples/rails/po/lv/blog.po +110 -0
  155. data/samples/rails/po/nb/blog.po +19 -15
  156. data/samples/rails/po/sr/blog.po +23 -23
  157. data/samples/rails/po/ua/blog.po +3 -3
  158. data/samples/rails/public/dispatch.cgi +0 -0
  159. data/samples/rails/public/dispatch.fcgi +0 -0
  160. data/samples/rails/public/dispatch.rb +0 -0
  161. data/samples/rails/public/javascripts/controls.js +1 -1
  162. data/samples/rails/public/javascripts/dragdrop.js +1 -1
  163. data/samples/rails/public/javascripts/effects.js +1 -1
  164. data/samples/rails/script/about +0 -0
  165. data/samples/rails/script/breakpointer +0 -0
  166. data/samples/rails/script/console +0 -0
  167. data/samples/rails/script/destroy +0 -0
  168. data/samples/rails/script/generate +0 -0
  169. data/samples/rails/script/performance/benchmarker +0 -0
  170. data/samples/rails/script/performance/profiler +0 -0
  171. data/samples/rails/script/plugin +0 -0
  172. data/samples/rails/script/process/reaper +0 -0
  173. data/samples/rails/script/process/spawner +0 -0
  174. data/samples/rails/script/process/spinner +0 -0
  175. data/samples/rails/script/runner +0 -0
  176. data/samples/rails/script/server +0 -0
  177. data/samples/rails/vendor/plugins/gettext/po/lv/gettext_plugin.po +28 -0
  178. data/samples/rails/vendor/plugins/gettext/po/nb/gettext_plugin.po +11 -8
  179. data/samples/rails/vendor/plugins/gettext/po/sr/gettext_plugin.po +5 -5
  180. data/src/poparser.ry +27 -6
  181. data/test/benchmark.rb +1 -1
  182. data/test/db/mysql.drop.sql +1 -0
  183. data/test/db/mysql.sql +13 -0
  184. data/test/fixtures/inept_wizard.rb +3 -0
  185. data/test/fixtures/people.yml +6 -0
  186. data/test/fixtures/topic.rb +30 -0
  187. data/test/fixtures/wizard.rb +5 -0
  188. data/test/po/active_record.pot +151 -66
  189. data/test/po/ja/active_record.po +177 -92
  190. data/test/po/ja/test_pgettext.po +41 -0
  191. data/test/rails/app/controllers/users_controller.rb +1 -0
  192. data/test/rails/app/views/articles/_form_fr.html.erb +1 -0
  193. data/test/rails/config/boot.rb +96 -32
  194. data/test/rails/config/environment.rb +3 -2
  195. data/test/rails/db/schema.rb +4 -4
  196. data/test/rails/public/dispatch.cgi +0 -0
  197. data/test/rails/public/dispatch.fcgi +0 -0
  198. data/test/rails/public/dispatch.rb +0 -0
  199. data/test/rails/public/javascripts/controls.js +484 -354
  200. data/test/rails/public/javascripts/dragdrop.js +88 -58
  201. data/test/rails/public/javascripts/effects.js +396 -364
  202. data/test/rails/public/javascripts/prototype.js +2817 -1107
  203. data/test/rails/script/about +0 -0
  204. data/test/rails/script/breakpointer +0 -0
  205. data/test/rails/script/console +0 -0
  206. data/test/rails/script/destroy +0 -0
  207. data/test/rails/script/generate +0 -0
  208. data/test/rails/script/performance/benchmarker +0 -0
  209. data/test/rails/script/performance/profiler +0 -0
  210. data/test/rails/script/plugin +0 -0
  211. data/test/rails/script/process/inspector +0 -0
  212. data/test/rails/script/process/reaper +0 -0
  213. data/test/rails/script/process/spawner +0 -0
  214. data/test/rails/script/runner +0 -0
  215. data/test/rails/script/server +0 -0
  216. data/test/rails/test/functional/articles_controller_test.rb +5 -0
  217. data/test/rails/test/result/en/create_error.html +3 -3
  218. data/test/rails/test/result/en/custom_error_message.html +3 -3
  219. data/test/rails/test/result/en/custom_error_message_with_plural.html +60 -60
  220. data/test/rails/test/result/en/multi_error_messages_for.html +6 -6
  221. data/test/rails/test/result/en/new.html +3 -3
  222. data/test/rails/test/result/fr/custom_error_message.html +3 -3
  223. data/test/rails/test/result/fr/custom_error_message_with_plural.html +60 -60
  224. data/test/rails/test/result/fr/new.html +23 -0
  225. data/test/rails/test/result/ja/create_error.html +3 -3
  226. data/test/rails/test/result/ja/custom_error_message.html +3 -3
  227. data/test/rails/test/result/ja/custom_error_message_with_plural.html +60 -60
  228. data/test/rails/test/result/ja/multi_error_messages_for.html +6 -6
  229. data/test/rails/test/result/ja/new.html +3 -3
  230. data/test/test.sh +2 -2
  231. data/test/test_active_record.rb +824 -20
  232. data/test/test_gettext.rb +34 -4
  233. data/test/test_java.sh +0 -0
  234. data/test/test_locale.rb +2 -2
  235. data/test/test_parser.rb +13 -2
  236. data/test/test_rails_caching.rb +11 -4
  237. data/test/testlib/pgettext.rb +33 -0
  238. metadata +32 -4
@@ -87,11 +87,11 @@ shouldn‘t use this directly.
87
87
  <h3 class="section-bar">Methods</h3>
88
88
 
89
89
  <div class="name-list">
90
- <a href="#M000105">cgi</a>&nbsp;&nbsp;
91
- <a href="#M000104">cgi=</a>&nbsp;&nbsp;
92
- <a href="#M000106">default_locale</a>&nbsp;&nbsp;
93
- <a href="#M000103">set_cgi</a>&nbsp;&nbsp;
94
- <a href="#M000102">system</a>&nbsp;&nbsp;
90
+ <a href="#M000051">cgi</a>&nbsp;&nbsp;
91
+ <a href="#M000050">cgi=</a>&nbsp;&nbsp;
92
+ <a href="#M000052">default_locale</a>&nbsp;&nbsp;
93
+ <a href="#M000049">set_cgi</a>&nbsp;&nbsp;
94
+ <a href="#M000048">system</a>&nbsp;&nbsp;
95
95
  </div>
96
96
  </div>
97
97
 
@@ -113,11 +113,11 @@ shouldn&#8216;t use this directly.
113
113
  <div id="methods">
114
114
  <h3 class="section-bar">Public Instance methods</h3>
115
115
 
116
- <div id="method-M000105" class="method-detail">
117
- <a name="M000105"></a>
116
+ <div id="method-M000051" class="method-detail">
117
+ <a name="M000051"></a>
118
118
 
119
119
  <div class="method-heading">
120
- <a href="#M000105" class="method-signature">
120
+ <a href="#M000051" class="method-signature">
121
121
  <span class="method-name">cgi</span><span class="method-args">()</span>
122
122
  </a>
123
123
  </div>
@@ -132,8 +132,8 @@ Gets the CGI object. If it is nil, returns new CGI object.
132
132
  </li>
133
133
  </ul>
134
134
  <p><a class="source-toggle" href="#"
135
- onclick="toggleCode('M000105-source');return false;">[Source]</a></p>
136
- <div class="method-source-code" id="M000105-source">
135
+ onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
136
+ <div class="method-source-code" id="M000051-source">
137
137
  <pre>
138
138
  <span class="ruby-comment cmt"># File lib/locale/cgi.rb, line 68</span>
139
139
  68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi</span>
@@ -145,11 +145,11 @@ Gets the CGI object. If it is nil, returns new CGI object.
145
145
  </div>
146
146
  </div>
147
147
 
148
- <div id="method-M000104" class="method-detail">
149
- <a name="M000104"></a>
148
+ <div id="method-M000050" class="method-detail">
149
+ <a name="M000050"></a>
150
150
 
151
151
  <div class="method-heading">
152
- <a href="#M000104" class="method-signature">
152
+ <a href="#M000050" class="method-signature">
153
153
  <span class="method-name">cgi=</span><span class="method-args">(cgi_)</span>
154
154
  </a>
155
155
  </div>
@@ -167,8 +167,8 @@ Sets a CGI object.
167
167
  </li>
168
168
  </ul>
169
169
  <p><a class="source-toggle" href="#"
170
- onclick="toggleCode('M000104-source');return false;">[Source]</a></p>
171
- <div class="method-source-code" id="M000104-source">
170
+ onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
171
+ <div class="method-source-code" id="M000050-source">
172
172
  <pre>
173
173
  <span class="ruby-comment cmt"># File lib/locale/cgi.rb, line 61</span>
174
174
  61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi=</span>(<span class="ruby-identifier">cgi_</span>)
@@ -180,11 +180,11 @@ Sets a CGI object.
180
180
  </div>
181
181
  </div>
182
182
 
183
- <div id="method-M000106" class="method-detail">
184
- <a name="M000106"></a>
183
+ <div id="method-M000052" class="method-detail">
184
+ <a name="M000052"></a>
185
185
 
186
186
  <div class="method-heading">
187
- <a href="#M000106" class="method-signature">
187
+ <a href="#M000052" class="method-signature">
188
188
  <span class="method-name">default_locale</span><span class="method-args">()</span>
189
189
  </a>
190
190
  </div>
@@ -199,8 +199,8 @@ Gets the default <a href="Object.html">Locale::Object</a>.
199
199
  </li>
200
200
  </ul>
201
201
  <p><a class="source-toggle" href="#"
202
- onclick="toggleCode('M000106-source');return false;">[Source]</a></p>
203
- <div class="method-source-code" id="M000106-source">
202
+ onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
203
+ <div class="method-source-code" id="M000052-source">
204
204
  <pre>
205
205
  <span class="ruby-comment cmt"># File lib/locale/cgi.rb, line 75</span>
206
206
  75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">default_locale</span>
@@ -211,11 +211,11 @@ Gets the default <a href="Object.html">Locale::Object</a>.
211
211
  </div>
212
212
  </div>
213
213
 
214
- <div id="method-M000103" class="method-detail">
215
- <a name="M000103"></a>
214
+ <div id="method-M000049" class="method-detail">
215
+ <a name="M000049"></a>
216
216
 
217
217
  <div class="method-heading">
218
- <a href="#M000103" class="method-signature">
218
+ <a href="#M000049" class="method-signature">
219
219
  <span class="method-name">set_cgi</span><span class="method-args">(cgi_)</span>
220
220
  </a>
221
221
  </div>
@@ -233,8 +233,8 @@ Sets a CGI object.
233
233
  </li>
234
234
  </ul>
235
235
  <p><a class="source-toggle" href="#"
236
- onclick="toggleCode('M000103-source');return false;">[Source]</a></p>
237
- <div class="method-source-code" id="M000103-source">
236
+ onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
237
+ <div class="method-source-code" id="M000049-source">
238
238
  <pre>
239
239
  <span class="ruby-comment cmt"># File lib/locale/cgi.rb, line 53</span>
240
240
  53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_cgi</span>(<span class="ruby-identifier">cgi_</span>)
@@ -246,11 +246,11 @@ Sets a CGI object.
246
246
  </div>
247
247
  </div>
248
248
 
249
- <div id="method-M000102" class="method-detail">
250
- <a name="M000102"></a>
249
+ <div id="method-M000048" class="method-detail">
250
+ <a name="M000048"></a>
251
251
 
252
252
  <div class="method-heading">
253
- <a href="#M000102" class="method-signature">
253
+ <a href="#M000048" class="method-signature">
254
254
  <span class="method-name">system</span><span class="method-args">()</span>
255
255
  </a>
256
256
  </div>
@@ -260,14 +260,14 @@ Sets a CGI object.
260
260
  Gets the default locale using setlocale and nl_langinfo.
261
261
  </p>
262
262
  <ul>
263
- <li>Returns the <a href="SystemCGI.html#M000102">system</a> locale (<a
263
+ <li>Returns the <a href="SystemCGI.html#M000048">system</a> locale (<a
264
264
  href="Object.html">Locale::Object</a>).
265
265
 
266
266
  </li>
267
267
  </ul>
268
268
  <p><a class="source-toggle" href="#"
269
- onclick="toggleCode('M000102-source');return false;">[Source]</a></p>
270
- <div class="method-source-code" id="M000102-source">
269
+ onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
270
+ <div class="method-source-code" id="M000048-source">
271
271
  <pre>
272
272
  <span class="ruby-comment cmt"># File lib/locale/cgi.rb, line 26</span>
273
273
  26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">system</span>
@@ -87,7 +87,7 @@ is a low-level class. Application shouldn&#8216;t use this directly.
87
87
  <h3 class="section-bar">Methods</h3>
88
88
 
89
89
  <div class="name-list">
90
- <a href="#M000101">get_charset</a>&nbsp;&nbsp;
90
+ <a href="#M000043">get_charset</a>&nbsp;&nbsp;
91
91
  </div>
92
92
  </div>
93
93
 
@@ -116,11 +116,11 @@ is a low-level class. Application shouldn&#8216;t use this directly.
116
116
  <div id="methods">
117
117
  <h3 class="section-bar">Public Instance methods</h3>
118
118
 
119
- <div id="method-M000101" class="method-detail">
120
- <a name="M000101"></a>
119
+ <div id="method-M000043" class="method-detail">
120
+ <a name="M000043"></a>
121
121
 
122
122
  <div class="method-heading">
123
- <a href="#M000101" class="method-signature">
123
+ <a href="#M000043" class="method-signature">
124
124
  <span class="method-name">get_charset</span><span class="method-args">(locale)</span>
125
125
  </a>
126
126
  </div>
@@ -138,8 +138,8 @@ Gets the Win32 charset of the locale.
138
138
  </li>
139
139
  </ul>
140
140
  <p><a class="source-toggle" href="#"
141
- onclick="toggleCode('M000101-source');return false;">[Source]</a></p>
142
- <div class="method-source-code" id="M000101-source">
141
+ onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
142
+ <div class="method-source-code" id="M000043-source">
143
143
  <pre>
144
144
  <span class="ruby-comment cmt"># File lib/locale/win32.rb, line 31</span>
145
145
  31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_charset</span>(<span class="ruby-identifier">locale</span>)
@@ -86,18 +86,18 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000011">hash_string</a>&nbsp;&nbsp;
90
- <a href="#M000007">load</a>&nbsp;&nbsp;
91
- <a href="#M000013">load_from_file</a>&nbsp;&nbsp;
92
- <a href="#M000008">load_from_stream</a>&nbsp;&nbsp;
93
- <a href="#M000005">new</a>&nbsp;&nbsp;
94
- <a href="#M000010">next_prime</a>&nbsp;&nbsp;
95
- <a href="#M000004">open</a>&nbsp;&nbsp;
96
- <a href="#M000009">prime?</a>&nbsp;&nbsp;
97
- <a href="#M000014">save_to_file</a>&nbsp;&nbsp;
98
- <a href="#M000012">save_to_stream</a>&nbsp;&nbsp;
99
- <a href="#M000015">set_comment</a>&nbsp;&nbsp;
100
- <a href="#M000006">update!</a>&nbsp;&nbsp;
89
+ <a href="#M000012">hash_string</a>&nbsp;&nbsp;
90
+ <a href="#M000008">load</a>&nbsp;&nbsp;
91
+ <a href="#M000014">load_from_file</a>&nbsp;&nbsp;
92
+ <a href="#M000009">load_from_stream</a>&nbsp;&nbsp;
93
+ <a href="#M000006">new</a>&nbsp;&nbsp;
94
+ <a href="#M000011">next_prime</a>&nbsp;&nbsp;
95
+ <a href="#M000005">open</a>&nbsp;&nbsp;
96
+ <a href="#M000010">prime?</a>&nbsp;&nbsp;
97
+ <a href="#M000015">save_to_file</a>&nbsp;&nbsp;
98
+ <a href="#M000013">save_to_stream</a>&nbsp;&nbsp;
99
+ <a href="#M000016">set_comment</a>&nbsp;&nbsp;
100
+ <a href="#M000007">update!</a>&nbsp;&nbsp;
101
101
  </div>
102
102
  </div>
103
103
 
@@ -111,7 +111,8 @@
111
111
  <div id="class-list">
112
112
  <h3 class="section-bar">Classes and Modules</h3>
113
113
 
114
- Class <a href="MOFile/InvalidFormat.html" class="link">MOFile::InvalidFormat</a><br />
114
+ Class <a href="MOFile/HeaderRev1.html" class="link">MOFile::HeaderRev1</a><br />
115
+ Class <a href="MOFile/InvalidFormat.html" class="link">MOFile::InvalidFormat</a><br />
115
116
 
116
117
  </div>
117
118
 
@@ -204,52 +205,52 @@ Laboratories, Inc.]
204
205
  <div id="methods">
205
206
  <h3 class="section-bar">Public Class methods</h3>
206
207
 
207
- <div id="method-M000005" class="method-detail">
208
- <a name="M000005"></a>
208
+ <div id="method-M000006" class="method-detail">
209
+ <a name="M000006"></a>
209
210
 
210
211
  <div class="method-heading">
211
- <a href="#M000005" class="method-signature">
212
+ <a href="#M000006" class="method-signature">
212
213
  <span class="method-name">new</span><span class="method-args">(output_charset = nil)</span>
213
214
  </a>
214
215
  </div>
215
216
 
216
217
  <div class="method-description">
217
218
  <p><a class="source-toggle" href="#"
218
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
219
- <div class="method-source-code" id="M000005-source">
219
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
220
+ <div class="method-source-code" id="M000006-source">
220
221
  <pre>
221
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 42</span>
222
- 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">output_charset</span> = <span class="ruby-keyword kw">nil</span>)
223
- 43: <span class="ruby-ivar">@filename</span> = <span class="ruby-keyword kw">nil</span>
224
- 44: <span class="ruby-ivar">@last_modified</span> = <span class="ruby-keyword kw">nil</span>
225
- 45: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">true</span>
226
- 46: <span class="ruby-ivar">@output_charset</span> = <span class="ruby-identifier">output_charset</span>
227
- 47: <span class="ruby-keyword kw">super</span>()
228
- 48: <span class="ruby-keyword kw">end</span>
222
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 52</span>
223
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">output_charset</span> = <span class="ruby-keyword kw">nil</span>)
224
+ 53: <span class="ruby-ivar">@filename</span> = <span class="ruby-keyword kw">nil</span>
225
+ 54: <span class="ruby-ivar">@last_modified</span> = <span class="ruby-keyword kw">nil</span>
226
+ 55: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">true</span>
227
+ 56: <span class="ruby-ivar">@output_charset</span> = <span class="ruby-identifier">output_charset</span>
228
+ 57: <span class="ruby-keyword kw">super</span>()
229
+ 58: <span class="ruby-keyword kw">end</span>
229
230
  </pre>
230
231
  </div>
231
232
  </div>
232
233
  </div>
233
234
 
234
- <div id="method-M000004" class="method-detail">
235
- <a name="M000004"></a>
235
+ <div id="method-M000005" class="method-detail">
236
+ <a name="M000005"></a>
236
237
 
237
238
  <div class="method-heading">
238
- <a href="#M000004" class="method-signature">
239
+ <a href="#M000005" class="method-signature">
239
240
  <span class="method-name">open</span><span class="method-args">(arg = nil, output_charset = nil)</span>
240
241
  </a>
241
242
  </div>
242
243
 
243
244
  <div class="method-description">
244
245
  <p><a class="source-toggle" href="#"
245
- onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
246
- <div class="method-source-code" id="M000004-source">
246
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
247
+ <div class="method-source-code" id="M000005-source">
247
248
  <pre>
248
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 37</span>
249
- 37: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">arg</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">output_charset</span> = <span class="ruby-keyword kw">nil</span>)
250
- 38: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">output_charset</span>)
251
- 39: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">arg</span>)
252
- 40: <span class="ruby-keyword kw">end</span>
249
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 47</span>
250
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">arg</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">output_charset</span> = <span class="ruby-keyword kw">nil</span>)
251
+ 48: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">output_charset</span>)
252
+ 49: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">arg</span>)
253
+ 50: <span class="ruby-keyword kw">end</span>
253
254
  </pre>
254
255
  </div>
255
256
  </div>
@@ -257,190 +258,207 @@ Laboratories, Inc.]
257
258
 
258
259
  <h3 class="section-bar">Public Instance methods</h3>
259
260
 
260
- <div id="method-M000011" class="method-detail">
261
- <a name="M000011"></a>
261
+ <div id="method-M000012" class="method-detail">
262
+ <a name="M000012"></a>
262
263
 
263
264
  <div class="method-heading">
264
- <a href="#M000011" class="method-signature">
265
+ <a href="#M000012" class="method-signature">
265
266
  <span class="method-name">hash_string</span><span class="method-args">(str)</span>
266
267
  </a>
267
268
  </div>
268
269
 
269
270
  <div class="method-description">
270
271
  <p><a class="source-toggle" href="#"
271
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
272
- <div class="method-source-code" id="M000011-source">
272
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
273
+ <div class="method-source-code" id="M000012-source">
273
274
  <pre>
274
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 170</span>
275
- 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hash_string</span>(<span class="ruby-identifier">str</span>)
276
- 171: <span class="ruby-identifier">hval</span> = <span class="ruby-value">0</span>
277
- 172: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
278
- 173: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">each_byte</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
279
- 174: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'\0'</span>
280
- 175: <span class="ruby-identifier">hval</span> <span class="ruby-operator">&lt;&lt;=</span> <span class="ruby-value">4</span>
281
- 176: <span class="ruby-identifier">hval</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_i</span>
282
- 177: <span class="ruby-identifier">g</span> = <span class="ruby-identifier">hval</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">0xf</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-constant">HASHWORDBITS</span> <span class="ruby-operator">-</span> <span class="ruby-value">4</span>))
283
- 178: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">g</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
284
- 179: <span class="ruby-identifier">hval</span> <span class="ruby-operator">^=</span> <span class="ruby-identifier">g</span> <span class="ruby-operator">&gt;&gt;</span> (<span class="ruby-constant">HASHWORDBITS</span> <span class="ruby-operator">-</span> <span class="ruby-value">8</span>)
285
- 180: <span class="ruby-identifier">hval</span> <span class="ruby-operator">^=</span> <span class="ruby-identifier">g</span>
286
- 181: <span class="ruby-keyword kw">end</span>
287
- 182: <span class="ruby-keyword kw">end</span>
288
- 183: <span class="ruby-identifier">hval</span>
289
- 184: <span class="ruby-keyword kw">end</span>
275
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 192</span>
276
+ 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hash_string</span>(<span class="ruby-identifier">str</span>)
277
+ 193: <span class="ruby-identifier">hval</span> = <span class="ruby-value">0</span>
278
+ 194: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
279
+ 195: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">each_byte</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
280
+ 196: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'\0'</span>
281
+ 197: <span class="ruby-identifier">hval</span> <span class="ruby-operator">&lt;&lt;=</span> <span class="ruby-value">4</span>
282
+ 198: <span class="ruby-identifier">hval</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_i</span>
283
+ 199: <span class="ruby-identifier">g</span> = <span class="ruby-identifier">hval</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">0xf</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-constant">HASHWORDBITS</span> <span class="ruby-operator">-</span> <span class="ruby-value">4</span>))
284
+ 200: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">g</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
285
+ 201: <span class="ruby-identifier">hval</span> <span class="ruby-operator">^=</span> <span class="ruby-identifier">g</span> <span class="ruby-operator">&gt;&gt;</span> (<span class="ruby-constant">HASHWORDBITS</span> <span class="ruby-operator">-</span> <span class="ruby-value">8</span>)
286
+ 202: <span class="ruby-identifier">hval</span> <span class="ruby-operator">^=</span> <span class="ruby-identifier">g</span>
287
+ 203: <span class="ruby-keyword kw">end</span>
288
+ 204: <span class="ruby-keyword kw">end</span>
289
+ 205: <span class="ruby-identifier">hval</span>
290
+ 206: <span class="ruby-keyword kw">end</span>
290
291
  </pre>
291
292
  </div>
292
293
  </div>
293
294
  </div>
294
295
 
295
- <div id="method-M000007" class="method-detail">
296
- <a name="M000007"></a>
296
+ <div id="method-M000008" class="method-detail">
297
+ <a name="M000008"></a>
297
298
 
298
299
  <div class="method-heading">
299
- <a href="#M000007" class="method-signature">
300
+ <a href="#M000008" class="method-signature">
300
301
  <span class="method-name">load</span><span class="method-args">(arg)</span>
301
302
  </a>
302
303
  </div>
303
304
 
304
305
  <div class="method-description">
305
306
  <p><a class="source-toggle" href="#"
306
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
307
- <div class="method-source-code" id="M000007-source">
307
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
308
+ <div class="method-source-code" id="M000008-source">
308
309
  <pre>
309
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 61</span>
310
- 61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">arg</span>)
311
- 62: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">String</span>
312
- 63: <span class="ruby-keyword kw">begin</span>
313
- 64: <span class="ruby-identifier">st</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">arg</span>)
314
- 65: <span class="ruby-ivar">@last_modified</span> = [<span class="ruby-identifier">st</span>.<span class="ruby-identifier">ctime</span>, <span class="ruby-identifier">st</span>.<span class="ruby-identifier">mtime</span>]
315
- 66: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
316
- 67: <span class="ruby-keyword kw">end</span>
317
- 68: <span class="ruby-identifier">load_from_file</span>(<span class="ruby-identifier">arg</span>)
318
- 69: <span class="ruby-keyword kw">else</span>
319
- 70: <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">arg</span>)
320
- 71: <span class="ruby-keyword kw">end</span>
321
- 72: <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">arg</span>
322
- 73: <span class="ruby-keyword kw">self</span>
323
- 74: <span class="ruby-keyword kw">end</span>
310
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 71</span>
311
+ 71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">arg</span>)
312
+ 72: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">String</span>
313
+ 73: <span class="ruby-keyword kw">begin</span>
314
+ 74: <span class="ruby-identifier">st</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">arg</span>)
315
+ 75: <span class="ruby-ivar">@last_modified</span> = [<span class="ruby-identifier">st</span>.<span class="ruby-identifier">ctime</span>, <span class="ruby-identifier">st</span>.<span class="ruby-identifier">mtime</span>]
316
+ 76: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
317
+ 77: <span class="ruby-keyword kw">end</span>
318
+ 78: <span class="ruby-identifier">load_from_file</span>(<span class="ruby-identifier">arg</span>)
319
+ 79: <span class="ruby-keyword kw">else</span>
320
+ 80: <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">arg</span>)
321
+ 81: <span class="ruby-keyword kw">end</span>
322
+ 82: <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">arg</span>
323
+ 83: <span class="ruby-keyword kw">self</span>
324
+ 84: <span class="ruby-keyword kw">end</span>
324
325
  </pre>
325
326
  </div>
326
327
  </div>
327
328
  </div>
328
329
 
329
- <div id="method-M000013" class="method-detail">
330
- <a name="M000013"></a>
330
+ <div id="method-M000014" class="method-detail">
331
+ <a name="M000014"></a>
331
332
 
332
333
  <div class="method-heading">
333
- <a href="#M000013" class="method-signature">
334
+ <a href="#M000014" class="method-signature">
334
335
  <span class="method-name">load_from_file</span><span class="method-args">(filename)</span>
335
336
  </a>
336
337
  </div>
337
338
 
338
339
  <div class="method-description">
339
340
  <p><a class="source-toggle" href="#"
340
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
341
- <div class="method-source-code" id="M000013-source">
341
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
342
+ <div class="method-source-code" id="M000014-source">
342
343
  <pre>
343
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 253</span>
344
- 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_from_file</span>(<span class="ruby-identifier">filename</span>)
345
- 254: <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">filename</span>
346
- 255: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'rb'</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">f</span>)}
347
- 256: <span class="ruby-keyword kw">end</span>
344
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 275</span>
345
+ 275: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_from_file</span>(<span class="ruby-identifier">filename</span>)
346
+ 276: <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">filename</span>
347
+ 277: <span class="ruby-keyword kw">begin</span>
348
+ 278: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'rb'</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">f</span>)}
349
+ 279: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
350
+ 280: <span class="ruby-identifier">e</span>.<span class="ruby-identifier">set_backtrace</span>(<span class="ruby-node">&quot;File: #{@filename}&quot;</span>)
351
+ 281: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
352
+ 282: <span class="ruby-keyword kw">end</span>
353
+ 283: <span class="ruby-keyword kw">end</span>
348
354
  </pre>
349
355
  </div>
350
356
  </div>
351
357
  </div>
352
358
 
353
- <div id="method-M000008" class="method-detail">
354
- <a name="M000008"></a>
359
+ <div id="method-M000009" class="method-detail">
360
+ <a name="M000009"></a>
355
361
 
356
362
  <div class="method-heading">
357
- <a href="#M000008" class="method-signature">
363
+ <a href="#M000009" class="method-signature">
358
364
  <span class="method-name">load_from_stream</span><span class="method-args">(io)</span>
359
365
  </a>
360
366
  </div>
361
367
 
362
368
  <div class="method-description">
363
369
  <p><a class="source-toggle" href="#"
364
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
365
- <div class="method-source-code" id="M000008-source">
370
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
371
+ <div class="method-source-code" id="M000009-source">
366
372
  <pre>
367
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 76</span>
368
- 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">io</span>)
369
- 77: <span class="ruby-identifier">magic</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>)
370
- 78: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">magic</span>
371
- 79: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">MAGIC_BIG_ENDIAN</span>
372
- 80: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">false</span>
373
- 81: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">MAGIC_LITTLE_ENDIAN</span>
374
- 82: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">true</span>
375
- 83: <span class="ruby-keyword kw">else</span>
376
- 84: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidFormat</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;Unknown signature %s&quot;</span>, <span class="ruby-identifier">magic</span>.<span class="ruby-identifier">dump</span>))
377
- 85: <span class="ruby-keyword kw">end</span>
378
- 86:
379
- 87: <span class="ruby-identifier">header</span> = <span class="ruby-constant">Header</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">magic</span>, <span class="ruby-operator">*</span>(<span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">6</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-ivar">@little_endian</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'V6'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'N6'</span>)))
380
- 88: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidFormat</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;file format revision %d isn't supported&quot;</span>, <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
381
- 89:
382
- 90: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">orig_table_offset</span>
383
- 91: <span class="ruby-identifier">orig_table_data</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>((<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-ivar">@little_endian</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'V*'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'N*'</span>)
384
- 92:
385
- 93: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">translated_table_offset</span>
386
- 94: <span class="ruby-identifier">trans_table_data</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>((<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-ivar">@little_endian</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'V*'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'N*'</span>)
387
- 95:
388
- 96: <span class="ruby-identifier">original_strings</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>)
389
- 97: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>
390
- 98: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">orig_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>]
391
- 99: <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">orig_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">0</span>])
392
- 100: <span class="ruby-keyword kw">end</span>
373
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 86</span>
374
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">io</span>)
375
+ 87: <span class="ruby-identifier">magic</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>)
376
+ 88: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">magic</span>
377
+ 89: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">MAGIC_BIG_ENDIAN</span>
378
+ 90: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">false</span>
379
+ 91: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">MAGIC_LITTLE_ENDIAN</span>
380
+ 92: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">true</span>
381
+ 93: <span class="ruby-keyword kw">else</span>
382
+ 94: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidFormat</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;Unknown signature %s&quot;</span>, <span class="ruby-identifier">magic</span>.<span class="ruby-identifier">dump</span>))
383
+ 95: <span class="ruby-keyword kw">end</span>
384
+ 96:
385
+ 97: <span class="ruby-identifier">endian_type6</span> = <span class="ruby-ivar">@little_endian</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'V6'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'N6'</span>
386
+ 98: <span class="ruby-identifier">endian_type_astr</span> = <span class="ruby-ivar">@little_endian</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'V*'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'N*'</span>
387
+ 99:
388
+ 100: <span class="ruby-identifier">header</span> = <span class="ruby-constant">HeaderRev1</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">magic</span>, <span class="ruby-operator">*</span>(<span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">6</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)))
393
389
  101:
394
- 102: <span class="ruby-identifier">clear</span>
395
- 103: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>
396
- 104: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">trans_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>]
397
- 105: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">trans_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">0</span>])
398
- 106:
399
- 107: <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span> <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>]) <span class="ruby-operator">||</span> <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
400
- 108: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>
401
- 109: <span class="ruby-ivar">@charset</span> = <span class="ruby-keyword kw">nil</span>
402
- 110: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-keyword kw">nil</span>
403
- 111: <span class="ruby-ivar">@plural</span> = <span class="ruby-keyword kw">nil</span>
404
- 112: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">each_line</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
405
- 113: <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/^Content-Type:/i</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span> <span class="ruby-keyword kw">and</span> <span class="ruby-regexp re">/charset=((?:\w|-)+)/i</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span>
406
- 114: <span class="ruby-ivar">@charset</span> = <span class="ruby-identifier">$1</span>
407
- 115: <span class="ruby-keyword kw">elsif</span> <span class="ruby-regexp re">/^Plural-Forms:\s*nplurals\s*\=\s*(\d*);\s*plural\s*\=\s*([^;]*)\n?/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span>
408
- 116: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-identifier">$1</span>
409
- 117: <span class="ruby-ivar">@plural</span> = <span class="ruby-identifier">$2</span>
410
- 118: <span class="ruby-keyword kw">end</span>
411
- 119: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@charset</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@nplurals</span>
412
- 120: }
413
- 121: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-value str">&quot;1&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@nplurals</span>
414
- 122: <span class="ruby-ivar">@plural</span> = <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@plural</span>
415
- 123: <span class="ruby-keyword kw">end</span>
416
- 124: <span class="ruby-keyword kw">else</span>
417
- 125: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@output_charset</span>
418
- 126: <span class="ruby-keyword kw">begin</span>
419
- 127: <span class="ruby-identifier">str</span> = <span class="ruby-constant">Iconv</span>.<span class="ruby-identifier">conv</span>(<span class="ruby-ivar">@output_charset</span>, <span class="ruby-ivar">@charset</span>, <span class="ruby-identifier">str</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@charset</span>
420
- 128: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Iconv</span><span class="ruby-operator">::</span><span class="ruby-constant">Failure</span>
421
- 129: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
422
- 130: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;@charset = &quot;</span>, <span class="ruby-ivar">@charset</span>, <span class="ruby-value str">&quot;\n&quot;</span>
423
- 131: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;@output_charset = &quot;</span>, <span class="ruby-ivar">@output_charset</span>, <span class="ruby-value str">&quot;\n&quot;</span>
424
- 132: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;msgid = &quot;</span>, <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>], <span class="ruby-value str">&quot;\n&quot;</span>
425
- 133: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;msgstr = &quot;</span>, <span class="ruby-identifier">str</span>, <span class="ruby-value str">&quot;\n&quot;</span>
426
- 134: <span class="ruby-keyword kw">end</span>
427
- 135: <span class="ruby-keyword kw">end</span>
428
- 136: <span class="ruby-keyword kw">end</span>
429
- 137: <span class="ruby-keyword kw">end</span>
430
- 138: <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>]] = <span class="ruby-identifier">str</span>
431
- 139: <span class="ruby-keyword kw">end</span>
432
- 140: <span class="ruby-keyword kw">self</span>
433
- 141: <span class="ruby-keyword kw">end</span>
390
+ 102: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
391
+ 103: <span class="ruby-comment cmt"># FIXME: It doesn't support sysdep correctly.</span>
392
+ 104: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">n_sysdep_segments</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
393
+ 105: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">sysdep_segments_offset</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
394
+ 106: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">n_sysdep_strings</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
395
+ 107: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">orig_sysdep_tab_offset</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
396
+ 108: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">trans_sysdep_tab_offset</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
397
+ 109: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
398
+ 110: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidFormat</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;file format revision %d isn't supported&quot;</span>, <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span>))
399
+ 111: <span class="ruby-keyword kw">end</span>
400
+ 112: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">orig_table_offset</span>
401
+ 113: <span class="ruby-identifier">orig_table_data</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>((<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type_astr</span>)
402
+ 114:
403
+ 115: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">translated_table_offset</span>
404
+ 116: <span class="ruby-identifier">trans_table_data</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>((<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type_astr</span>)
405
+ 117:
406
+ 118: <span class="ruby-identifier">original_strings</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>)
407
+ 119: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>
408
+ 120: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">orig_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>]
409
+ 121: <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">orig_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">0</span>])
410
+ 122: <span class="ruby-keyword kw">end</span>
411
+ 123:
412
+ 124: <span class="ruby-identifier">clear</span>
413
+ 125: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>
414
+ 126: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">trans_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>]
415
+ 127: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">trans_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">0</span>])
416
+ 128:
417
+ 129: <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span> <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>]) <span class="ruby-operator">||</span> <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
418
+ 130: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>
419
+ 131: <span class="ruby-ivar">@charset</span> = <span class="ruby-keyword kw">nil</span>
420
+ 132: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-keyword kw">nil</span>
421
+ 133: <span class="ruby-ivar">@plural</span> = <span class="ruby-keyword kw">nil</span>
422
+ 134: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">each_line</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
423
+ 135: <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/^Content-Type:/i</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span> <span class="ruby-keyword kw">and</span> <span class="ruby-regexp re">/charset=((?:\w|-)+)/i</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span>
424
+ 136: <span class="ruby-ivar">@charset</span> = <span class="ruby-identifier">$1</span>
425
+ 137: <span class="ruby-keyword kw">elsif</span> <span class="ruby-regexp re">/^Plural-Forms:\s*nplurals\s*\=\s*(\d*);\s*plural\s*\=\s*([^;]*)\n?/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span>
426
+ 138: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-identifier">$1</span>
427
+ 139: <span class="ruby-ivar">@plural</span> = <span class="ruby-identifier">$2</span>
428
+ 140: <span class="ruby-keyword kw">end</span>
429
+ 141: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@charset</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@nplurals</span>
430
+ 142: }
431
+ 143: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-value str">&quot;1&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@nplurals</span>
432
+ 144: <span class="ruby-ivar">@plural</span> = <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@plural</span>
433
+ 145: <span class="ruby-keyword kw">end</span>
434
+ 146: <span class="ruby-keyword kw">else</span>
435
+ 147: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@output_charset</span>
436
+ 148: <span class="ruby-keyword kw">begin</span>
437
+ 149: <span class="ruby-identifier">str</span> = <span class="ruby-constant">Iconv</span>.<span class="ruby-identifier">conv</span>(<span class="ruby-ivar">@output_charset</span>, <span class="ruby-ivar">@charset</span>, <span class="ruby-identifier">str</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@charset</span>
438
+ 150: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Iconv</span><span class="ruby-operator">::</span><span class="ruby-constant">Failure</span>
439
+ 151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
440
+ 152: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;@charset = &quot;</span>, <span class="ruby-ivar">@charset</span>, <span class="ruby-value str">&quot;\n&quot;</span>
441
+ 153: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;@output_charset = &quot;</span>, <span class="ruby-ivar">@output_charset</span>, <span class="ruby-value str">&quot;\n&quot;</span>
442
+ 154: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;msgid = &quot;</span>, <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>], <span class="ruby-value str">&quot;\n&quot;</span>
443
+ 155: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;msgstr = &quot;</span>, <span class="ruby-identifier">str</span>, <span class="ruby-value str">&quot;\n&quot;</span>
444
+ 156: <span class="ruby-keyword kw">end</span>
445
+ 157: <span class="ruby-keyword kw">end</span>
446
+ 158: <span class="ruby-keyword kw">end</span>
447
+ 159: <span class="ruby-keyword kw">end</span>
448
+ 160: <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>]] = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">freeze</span>
449
+ 161: <span class="ruby-keyword kw">end</span>
450
+ 162: <span class="ruby-keyword kw">self</span>
451
+ 163: <span class="ruby-keyword kw">end</span>
434
452
  </pre>
435
453
  </div>
436
454
  </div>
437
455
  </div>
438
456
 
439
- <div id="method-M000010" class="method-detail">
440
- <a name="M000010"></a>
457
+ <div id="method-M000011" class="method-detail">
458
+ <a name="M000011"></a>
441
459
 
442
460
  <div class="method-heading">
443
- <a href="#M000010" class="method-signature">
461
+ <a href="#M000011" class="method-signature">
444
462
  <span class="method-name">next_prime</span><span class="method-args">(seed)</span>
445
463
  </a>
446
464
  </div>
@@ -450,27 +468,27 @@ Laboratories, Inc.]
450
468
  From gettext-0.12.1/gettext-tools/lib/hash.c
451
469
  </p>
452
470
  <p><a class="source-toggle" href="#"
453
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
454
- <div class="method-source-code" id="M000010-source">
471
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
472
+ <div class="method-source-code" id="M000011-source">
455
473
  <pre>
456
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 157</span>
457
- 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">next_prime</span>(<span class="ruby-identifier">seed</span>)
458
- 158: <span class="ruby-identifier">seed</span> <span class="ruby-operator">|=</span> <span class="ruby-value">1</span>
459
- 159: <span class="ruby-keyword kw">while</span> (<span class="ruby-operator">!</span> <span class="ruby-identifier">prime?</span>(<span class="ruby-identifier">seed</span>))
460
- 160: <span class="ruby-identifier">seed</span> <span class="ruby-operator">+=</span> <span class="ruby-value">2</span>
461
- 161: <span class="ruby-keyword kw">end</span>
462
- 162: <span class="ruby-identifier">seed</span>
463
- 163: <span class="ruby-keyword kw">end</span>
474
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 179</span>
475
+ 179: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">next_prime</span>(<span class="ruby-identifier">seed</span>)
476
+ 180: <span class="ruby-identifier">seed</span> <span class="ruby-operator">|=</span> <span class="ruby-value">1</span>
477
+ 181: <span class="ruby-keyword kw">while</span> (<span class="ruby-operator">!</span> <span class="ruby-identifier">prime?</span>(<span class="ruby-identifier">seed</span>))
478
+ 182: <span class="ruby-identifier">seed</span> <span class="ruby-operator">+=</span> <span class="ruby-value">2</span>
479
+ 183: <span class="ruby-keyword kw">end</span>
480
+ 184: <span class="ruby-identifier">seed</span>
481
+ 185: <span class="ruby-keyword kw">end</span>
464
482
  </pre>
465
483
  </div>
466
484
  </div>
467
485
  </div>
468
486
 
469
- <div id="method-M000009" class="method-detail">
470
- <a name="M000009"></a>
487
+ <div id="method-M000010" class="method-detail">
488
+ <a name="M000010"></a>
471
489
 
472
490
  <div class="method-heading">
473
- <a href="#M000009" class="method-signature">
491
+ <a href="#M000010" class="method-signature">
474
492
  <span class="method-name">prime?</span><span class="method-args">(candidate)</span>
475
493
  </a>
476
494
  </div>
@@ -480,183 +498,183 @@ From gettext-0.12.1/gettext-tools/lib/hash.c
480
498
  From gettext-0.12.1/gettext-tools/lib/hash.c
481
499
  </p>
482
500
  <p><a class="source-toggle" href="#"
483
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
484
- <div class="method-source-code" id="M000009-source">
501
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
502
+ <div class="method-source-code" id="M000010-source">
485
503
  <pre>
486
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 144</span>
487
- 144: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prime?</span>(<span class="ruby-identifier">candidate</span>)
488
- 145: <span class="ruby-identifier">divn</span> = <span class="ruby-value">3</span>
489
- 146: <span class="ruby-identifier">sq</span> = <span class="ruby-identifier">divn</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">divn</span>
490
- 147:
491
- 148: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">sq</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">candidate</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">candidate</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">divn</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
492
- 149: <span class="ruby-identifier">divn</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
493
- 150: <span class="ruby-identifier">sq</span> <span class="ruby-operator">+=</span> <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">divn</span>
494
- 151: <span class="ruby-identifier">divn</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
495
- 152: <span class="ruby-keyword kw">end</span>
496
- 153: <span class="ruby-identifier">candidate</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">divn</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
497
- 154: <span class="ruby-keyword kw">end</span>
504
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 166</span>
505
+ 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prime?</span>(<span class="ruby-identifier">candidate</span>)
506
+ 167: <span class="ruby-identifier">divn</span> = <span class="ruby-value">3</span>
507
+ 168: <span class="ruby-identifier">sq</span> = <span class="ruby-identifier">divn</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">divn</span>
508
+ 169:
509
+ 170: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">sq</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">candidate</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">candidate</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">divn</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
510
+ 171: <span class="ruby-identifier">divn</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
511
+ 172: <span class="ruby-identifier">sq</span> <span class="ruby-operator">+=</span> <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">divn</span>
512
+ 173: <span class="ruby-identifier">divn</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
513
+ 174: <span class="ruby-keyword kw">end</span>
514
+ 175: <span class="ruby-identifier">candidate</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">divn</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
515
+ 176: <span class="ruby-keyword kw">end</span>
498
516
  </pre>
499
517
  </div>
500
518
  </div>
501
519
  </div>
502
520
 
503
- <div id="method-M000014" class="method-detail">
504
- <a name="M000014"></a>
521
+ <div id="method-M000015" class="method-detail">
522
+ <a name="M000015"></a>
505
523
 
506
524
  <div class="method-heading">
507
- <a href="#M000014" class="method-signature">
525
+ <a href="#M000015" class="method-signature">
508
526
  <span class="method-name">save_to_file</span><span class="method-args">(filename)</span>
509
527
  </a>
510
528
  </div>
511
529
 
512
530
  <div class="method-description">
513
531
  <p><a class="source-toggle" href="#"
514
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
515
- <div class="method-source-code" id="M000014-source">
532
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
533
+ <div class="method-source-code" id="M000015-source">
516
534
  <pre>
517
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 258</span>
518
- 258: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save_to_file</span>(<span class="ruby-identifier">filename</span>)
519
- 259: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'wb'</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">save_to_stream</span>(<span class="ruby-identifier">f</span>)}
520
- 260: <span class="ruby-keyword kw">end</span>
535
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 285</span>
536
+ 285: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save_to_file</span>(<span class="ruby-identifier">filename</span>)
537
+ 286: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'wb'</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">save_to_stream</span>(<span class="ruby-identifier">f</span>)}
538
+ 287: <span class="ruby-keyword kw">end</span>
521
539
  </pre>
522
540
  </div>
523
541
  </div>
524
542
  </div>
525
543
 
526
- <div id="method-M000012" class="method-detail">
527
- <a name="M000012"></a>
544
+ <div id="method-M000013" class="method-detail">
545
+ <a name="M000013"></a>
528
546
 
529
547
  <div class="method-heading">
530
- <a href="#M000012" class="method-signature">
548
+ <a href="#M000013" class="method-signature">
531
549
  <span class="method-name">save_to_stream</span><span class="method-args">(io)</span>
532
550
  </a>
533
551
  </div>
534
552
 
535
553
  <div class="method-description">
536
554
  <p><a class="source-toggle" href="#"
537
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
538
- <div class="method-source-code" id="M000012-source">
555
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
556
+ <div class="method-source-code" id="M000013-source">
539
557
  <pre>
540
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 186</span>
541
- 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save_to_stream</span>(<span class="ruby-identifier">io</span>)
542
- 187: <span class="ruby-comment cmt">#Save data as little endian format.</span>
543
- 188: <span class="ruby-identifier">header_size</span> = <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">7</span>
544
- 189: <span class="ruby-identifier">table_size</span> = <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">size</span>
545
- 190:
546
- 191: <span class="ruby-identifier">hash_table_size</span> = <span class="ruby-identifier">next_prime</span>((<span class="ruby-identifier">size</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span>) <span class="ruby-operator">/</span> <span class="ruby-value">3</span>)
547
- 192: <span class="ruby-identifier">hash_table_size</span> = <span class="ruby-value">3</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">2</span>
548
- 193: <span class="ruby-identifier">header</span> = <span class="ruby-constant">Header</span>.<span class="ruby-identifier">new</span>(
549
- 194: <span class="ruby-constant">MAGIC_LITTLE_ENDIAN</span>, <span class="ruby-comment cmt"># magic</span>
550
- 195: <span class="ruby-value">0</span>, <span class="ruby-comment cmt"># revision</span>
551
- 196: <span class="ruby-identifier">size</span>, <span class="ruby-comment cmt"># nstrings</span>
552
- 197: <span class="ruby-identifier">header_size</span>, <span class="ruby-comment cmt"># orig_table_offset</span>
553
- 198: <span class="ruby-identifier">header_size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">table_size</span>, <span class="ruby-comment cmt"># translated_table_offset</span>
554
- 199: <span class="ruby-identifier">hash_table_size</span>, <span class="ruby-comment cmt"># hash_table_size</span>
555
- 200: <span class="ruby-identifier">header_size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">table_size</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-comment cmt"># hash_table_offset</span>
556
- 201: )
557
- 202: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">header</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'a4V*'</span>))
558
- 203:
559
- 204: <span class="ruby-identifier">ary</span> = <span class="ruby-identifier">to_a</span>
560
- 205: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">sort!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>]} <span class="ruby-comment cmt"># sort by original string</span>
561
- 206:
562
- 207: <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">hash_table_offset</span>
563
- 208:
564
- 209: <span class="ruby-identifier">orig_table_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
565
- 210: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">item</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span>
566
- 211: <span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span>)
567
- 212: <span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">pos</span>)
568
- 213: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-comment cmt"># +1 is &lt;NUL&gt;</span>
569
- 214: }
570
- 215: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
571
- 216:
572
- 217: <span class="ruby-identifier">trans_table_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
573
- 218: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
574
- 219: <span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span>)
575
- 220: <span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">pos</span>)
576
- 221: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-comment cmt"># +1 is &lt;NUL&gt;</span>
577
- 222: }
578
- 223: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
579
- 224:
580
- 225: <span class="ruby-identifier">hash_tab</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">hash_table_size</span>)
581
- 226: <span class="ruby-identifier">j</span> = <span class="ruby-value">0</span>
582
- 227: <span class="ruby-identifier">ary</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">size</span>].<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span>
583
- 228: <span class="ruby-identifier">hash_val</span> = <span class="ruby-identifier">hash_string</span>(<span class="ruby-identifier">key</span>)
584
- 229: <span class="ruby-identifier">idx</span> = <span class="ruby-identifier">hash_val</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">hash_table_size</span>
585
- 230: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
586
- 231: <span class="ruby-identifier">incr</span> = <span class="ruby-value">1</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">hash_val</span> <span class="ruby-operator">%</span> (<span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>))
587
- 232: <span class="ruby-keyword kw">begin</span>
588
- 233: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">incr</span>)
589
- 234: <span class="ruby-identifier">idx</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">incr</span>
590
- 235: <span class="ruby-keyword kw">else</span>
591
- 236: <span class="ruby-identifier">idx</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">incr</span>
592
- 237: <span class="ruby-keyword kw">end</span>
593
- 238: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>)
594
- 239: <span class="ruby-keyword kw">end</span>
595
- 240: <span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-identifier">j</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
596
- 241: <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
597
- 242: }
598
- 243: <span class="ruby-identifier">hash_tab</span>.<span class="ruby-identifier">collect!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span> <span class="ruby-value">? </span><span class="ruby-identifier">i</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>}
599
- 244:
600
- 245: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">hash_tab</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
558
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 208</span>
559
+ 208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save_to_stream</span>(<span class="ruby-identifier">io</span>)
560
+ 209: <span class="ruby-comment cmt">#Save data as little endian format.</span>
561
+ 210: <span class="ruby-identifier">header_size</span> = <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">7</span>
562
+ 211: <span class="ruby-identifier">table_size</span> = <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">size</span>
563
+ 212:
564
+ 213: <span class="ruby-identifier">hash_table_size</span> = <span class="ruby-identifier">next_prime</span>((<span class="ruby-identifier">size</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span>) <span class="ruby-operator">/</span> <span class="ruby-value">3</span>)
565
+ 214: <span class="ruby-identifier">hash_table_size</span> = <span class="ruby-value">3</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">2</span>
566
+ 215: <span class="ruby-identifier">header</span> = <span class="ruby-constant">Header</span>.<span class="ruby-identifier">new</span>(
567
+ 216: <span class="ruby-constant">MAGIC_LITTLE_ENDIAN</span>, <span class="ruby-comment cmt"># magic</span>
568
+ 217: <span class="ruby-value">0</span>, <span class="ruby-comment cmt"># revision</span>
569
+ 218: <span class="ruby-identifier">size</span>, <span class="ruby-comment cmt"># nstrings</span>
570
+ 219: <span class="ruby-identifier">header_size</span>, <span class="ruby-comment cmt"># orig_table_offset</span>
571
+ 220: <span class="ruby-identifier">header_size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">table_size</span>, <span class="ruby-comment cmt"># translated_table_offset</span>
572
+ 221: <span class="ruby-identifier">hash_table_size</span>, <span class="ruby-comment cmt"># hash_table_size</span>
573
+ 222: <span class="ruby-identifier">header_size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">table_size</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-comment cmt"># hash_table_offset</span>
574
+ 223: )
575
+ 224: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">header</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'a4V*'</span>))
576
+ 225:
577
+ 226: <span class="ruby-identifier">ary</span> = <span class="ruby-identifier">to_a</span>
578
+ 227: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">sort!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>]} <span class="ruby-comment cmt"># sort by original string</span>
579
+ 228:
580
+ 229: <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">hash_table_offset</span>
581
+ 230:
582
+ 231: <span class="ruby-identifier">orig_table_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
583
+ 232: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">item</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span>
584
+ 233: <span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span>)
585
+ 234: <span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">pos</span>)
586
+ 235: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-comment cmt"># +1 is &lt;NUL&gt;</span>
587
+ 236: }
588
+ 237: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
589
+ 238:
590
+ 239: <span class="ruby-identifier">trans_table_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
591
+ 240: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
592
+ 241: <span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span>)
593
+ 242: <span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">pos</span>)
594
+ 243: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-comment cmt"># +1 is &lt;NUL&gt;</span>
595
+ 244: }
596
+ 245: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
601
597
  246:
602
- 247: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">item</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">item</span>); <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;\0&quot;</span>) }
603
- 248: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">item</span>); <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;\0&quot;</span>) }
604
- 249:
605
- 250: <span class="ruby-keyword kw">self</span>
606
- 251: <span class="ruby-keyword kw">end</span>
598
+ 247: <span class="ruby-identifier">hash_tab</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">hash_table_size</span>)
599
+ 248: <span class="ruby-identifier">j</span> = <span class="ruby-value">0</span>
600
+ 249: <span class="ruby-identifier">ary</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">size</span>].<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span>
601
+ 250: <span class="ruby-identifier">hash_val</span> = <span class="ruby-identifier">hash_string</span>(<span class="ruby-identifier">key</span>)
602
+ 251: <span class="ruby-identifier">idx</span> = <span class="ruby-identifier">hash_val</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">hash_table_size</span>
603
+ 252: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
604
+ 253: <span class="ruby-identifier">incr</span> = <span class="ruby-value">1</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">hash_val</span> <span class="ruby-operator">%</span> (<span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>))
605
+ 254: <span class="ruby-keyword kw">begin</span>
606
+ 255: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">incr</span>)
607
+ 256: <span class="ruby-identifier">idx</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">incr</span>
608
+ 257: <span class="ruby-keyword kw">else</span>
609
+ 258: <span class="ruby-identifier">idx</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">incr</span>
610
+ 259: <span class="ruby-keyword kw">end</span>
611
+ 260: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>)
612
+ 261: <span class="ruby-keyword kw">end</span>
613
+ 262: <span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-identifier">j</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
614
+ 263: <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
615
+ 264: }
616
+ 265: <span class="ruby-identifier">hash_tab</span>.<span class="ruby-identifier">collect!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span> <span class="ruby-value">? </span><span class="ruby-identifier">i</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>}
617
+ 266:
618
+ 267: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">hash_tab</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
619
+ 268:
620
+ 269: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">item</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">item</span>); <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;\0&quot;</span>) }
621
+ 270: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">item</span>); <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;\0&quot;</span>) }
622
+ 271:
623
+ 272: <span class="ruby-keyword kw">self</span>
624
+ 273: <span class="ruby-keyword kw">end</span>
607
625
  </pre>
608
626
  </div>
609
627
  </div>
610
628
  </div>
611
629
 
612
- <div id="method-M000015" class="method-detail">
613
- <a name="M000015"></a>
630
+ <div id="method-M000016" class="method-detail">
631
+ <a name="M000016"></a>
614
632
 
615
633
  <div class="method-heading">
616
- <a href="#M000015" class="method-signature">
634
+ <a href="#M000016" class="method-signature">
617
635
  <span class="method-name">set_comment</span><span class="method-args">(msgid_or_sym, comment)</span>
618
636
  </a>
619
637
  </div>
620
638
 
621
639
  <div class="method-description">
622
640
  <p><a class="source-toggle" href="#"
623
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
624
- <div class="method-source-code" id="M000015-source">
641
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
642
+ <div class="method-source-code" id="M000016-source">
625
643
  <pre>
626
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 262</span>
627
- 262: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_comment</span>(<span class="ruby-identifier">msgid_or_sym</span>, <span class="ruby-identifier">comment</span>)
628
- 263: <span class="ruby-comment cmt">#Do nothing</span>
629
- 264: <span class="ruby-keyword kw">end</span>
644
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 289</span>
645
+ 289: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_comment</span>(<span class="ruby-identifier">msgid_or_sym</span>, <span class="ruby-identifier">comment</span>)
646
+ 290: <span class="ruby-comment cmt">#Do nothing</span>
647
+ 291: <span class="ruby-keyword kw">end</span>
630
648
  </pre>
631
649
  </div>
632
650
  </div>
633
651
  </div>
634
652
 
635
- <div id="method-M000006" class="method-detail">
636
- <a name="M000006"></a>
653
+ <div id="method-M000007" class="method-detail">
654
+ <a name="M000007"></a>
637
655
 
638
656
  <div class="method-heading">
639
- <a href="#M000006" class="method-signature">
657
+ <a href="#M000007" class="method-signature">
640
658
  <span class="method-name">update!</span><span class="method-args">()</span>
641
659
  </a>
642
660
  </div>
643
661
 
644
662
  <div class="method-description">
645
663
  <p><a class="source-toggle" href="#"
646
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
647
- <div class="method-source-code" id="M000006-source">
664
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
665
+ <div class="method-source-code" id="M000007-source">
648
666
  <pre>
649
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 50</span>
650
- 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update!</span>
651
- 51: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@filename</span>)
652
- 52: <span class="ruby-identifier">st</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-ivar">@filename</span>)
653
- 53: <span class="ruby-identifier">load</span>(<span class="ruby-ivar">@filename</span>) <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@last_modified</span> <span class="ruby-operator">==</span> [<span class="ruby-identifier">st</span>.<span class="ruby-identifier">ctime</span>, <span class="ruby-identifier">st</span>.<span class="ruby-identifier">mtime</span>])
654
- 54: <span class="ruby-keyword kw">else</span>
655
- 55: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{@filename} was lost.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
656
- 56: <span class="ruby-identifier">clear</span>
657
- 57: <span class="ruby-keyword kw">end</span>
658
- 58: <span class="ruby-keyword kw">self</span>
659
- 59: <span class="ruby-keyword kw">end</span>
667
+ <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 60</span>
668
+ 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update!</span>
669
+ 61: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@filename</span>)
670
+ 62: <span class="ruby-identifier">st</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-ivar">@filename</span>)
671
+ 63: <span class="ruby-identifier">load</span>(<span class="ruby-ivar">@filename</span>) <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@last_modified</span> <span class="ruby-operator">==</span> [<span class="ruby-identifier">st</span>.<span class="ruby-identifier">ctime</span>, <span class="ruby-identifier">st</span>.<span class="ruby-identifier">mtime</span>])
672
+ 64: <span class="ruby-keyword kw">else</span>
673
+ 65: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{@filename} was lost.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
674
+ 66: <span class="ruby-identifier">clear</span>
675
+ 67: <span class="ruby-keyword kw">end</span>
676
+ 68: <span class="ruby-keyword kw">self</span>
677
+ 69: <span class="ruby-keyword kw">end</span>
660
678
  </pre>
661
679
  </div>
662
680
  </div>