gettext 1.91.0 → 1.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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>