Commit | Line | Data |
---|---|---|
b0a578cb RK |
1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
2 | <html> | |
3 | <head> | |
4 | <title>DisOrder Change History</title> | |
5 | <style type="text/css"> | |
6 | body { | |
7 | color: black; | |
8 | background-color: white; | |
9 | font-family: times,serif; | |
10 | font-weight: normal; | |
11 | font-size: 12pt; | |
12 | font-variant: normal | |
13 | } | |
14 | ||
15 | div.section { | |
16 | margin-left:1em | |
17 | } | |
18 | ||
19 | h1 { | |
20 | background-color: #e0ffe0; | |
21 | font-family: helvetica,sans-serif; | |
22 | padding: 0.2em | |
23 | } | |
24 | ||
25 | h2 { | |
26 | background-color: #e0ffe0; | |
27 | font-family: helvetica,sans-serif; | |
28 | padding: 0.2em | |
29 | } | |
30 | ||
31 | h3 { | |
32 | background-color: #f0f0f0; | |
33 | font-family: helvetica,sans-serif; | |
34 | padding: 0.2em | |
35 | } | |
36 | ||
37 | h4 { | |
38 | font-family: helvetica,sans-serif | |
39 | } | |
40 | ||
41 | table.bugs { | |
42 | width: 100% | |
43 | } | |
44 | ||
45 | table.bugs th { | |
46 | text-align: left | |
47 | } | |
48 | ||
49 | span.command { | |
50 | font-family: monospace | |
51 | } | |
52 | </style> | |
53 | </head> | |
54 | ||
55 | <body> | |
56 | <h1>DisOrder Change History</h1> | |
57 | ||
d8b95785 RK |
58 | <p>This file documents recent user-visible changes to <a |
59 | href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p> | |
60 | ||
f5fd9a6b RK |
61 | <h2>Changes up to version 4.4</h2> |
62 | ||
63 | <div class=section> | |
64 | ||
f207f710 RK |
65 | <h3>Server</h3> |
66 | ||
f5fd9a6b RK |
67 | <div class=section> |
68 | ||
fe33cfc0 | 69 | <p>The <tt>device</tt> configuration option now works under OS X. |
7cd4dd21 | 70 | Devices may |
f207f710 | 71 | be specified either by UID or name. Fixes <a |
f5fd9a6b RK |
72 | href="http://code.google.com/p/disorder/issues/detail?id=27">Issue |
73 | 27</a>.</p> | |
f207f710 | 74 | |
f71fc3ab | 75 | <p>Gapless play should be more reliable, and playback latency over RTP |
6762ac8a | 76 | should be a bit lower. Note though that all the sound output code has |
f71fc3ab RK |
77 | been reorganized and in some cases completely rewritten, so it's possible |
78 | that bugs may have been (re-)introduced.</p> | |
7cd4dd21 RK |
79 | |
80 | <p>The <tt>command</tt> backend now (optionally) sends silence instead | |
81 | of suspending writes when a pause occurs or no track is playing.</p> | |
82 | ||
83 | </div> | |
84 | ||
85 | <h3>Web Interface</h3> | |
86 | ||
87 | <div class=section> | |
53710d44 | 88 | |
7cd4dd21 RK |
89 | <p>Confirmation URLs should be cleaner (and in particular not end |
90 | with punctuation). (Please see <a | |
91 | href="README.upgrades">README.upgrades</a> for more about this.)</p> | |
92 | ||
f207f710 RK |
93 | </div> |
94 | ||
95 | <h3>RTP Player</h3> | |
96 | ||
97 | <div class=section> | |
98 | ||
99 | <p>There is a new <tt>--command</tt> option which allows the RTP player | |
100 | to send audio data to a user-chosen command instead of an audio API. See | |
101 | the man page for details.</p> | |
102 | ||
103 | <p>The <tt>--device</tt> option to <tt>disorder-playrtp</tt> now works | |
104 | under OS X (as above).</p> | |
f5fd9a6b RK |
105 | |
106 | </div> | |
7cd4dd21 RK |
107 | |
108 | <h3>General</h3> | |
f5fd9a6b | 109 | |
7cd4dd21 RK |
110 | <div class=section> |
111 | ||
112 | <p>IPv6 should now work. Network address specifications | |
113 | (<tt>listen</tt>, <tt>connect</tt> etc) can now be prefixed with | |
114 | <tt>-4</tt> or <tt>-6</tt> to force use | |
115 | of IPv4 or IPv6, though normally this should not be needed.</p> | |
116 | ||
2cb9bc5f RK |
117 | <p>Unicode support has been upgraded to <a |
118 | href="http://www.unicode.org/versions/Unicode5.1.0/">Unicode | |
119 | 5.1.0</a>.</p> | |
120 | ||
7cd4dd21 RK |
121 | <p>Various elements of the source code have been |
122 | rationalized.</p> | |
123 | ||
124 | </div> | |
125 | ||
f5fd9a6b RK |
126 | <h3>Bugs fixed</h3> |
127 | ||
128 | <div class=section> | |
129 | ||
130 | <table class=bugs> | |
131 | <tr> | |
132 | <th>ID</th> | |
133 | <th>Description</th> | |
134 | </tr> | |
135 | ||
136 | <tr> | |
137 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=27">#27</a></td> | |
138 | <td>Mac DisOrder uses wrong sound device</td> | |
139 | </tr> | |
140 | ||
7cd4dd21 RK |
141 | <tr> |
142 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=33">#33</a></d> | |
143 | <td>(Some) plugins need -lm.</td> | |
144 | </tr> | |
6762ac8a RK |
145 | |
146 | <tr> | |
147 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=39">#39</a></d> | |
148 | <td>Double bind() non-multicast AF_INET</td> | |
149 | </tr> | |
150 | ||
151 | <tr> | |
152 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=40">#40</a></d> | |
153 | <td>Missing stub function</td> | |
154 | </tr> | |
155 | ||
156 | <tr> | |
157 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=41">#41</a></d> | |
158 | <td>Missing includes for timeval</td> | |
159 | </tr> | |
160 | ||
161 | <tr> | |
162 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=42">#42</a></d> | |
163 | <td>syntax error in empeg_host section</td> | |
164 | </tr> | |
165 | ||
93379b3d RK |
166 | <tr> |
167 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=43">#43</a></d> | |
168 | <td>decoder segfault with FLAC 1.2.1</td> | |
169 | </tr> | |
170 | ||
6762ac8a RK |
171 | <tr> |
172 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=44">#44</a></d> | |
173 | <td>gcc 4.3.2-1ubuntu12 SUYB patch</td> | |
174 | </tr> | |
175 | ||
176 | <tr> | |
177 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=45">#45</a></d> | |
178 | <td>disobedience doesn't configure its back end</td> | |
179 | </tr> | |
fa667301 RK |
180 | |
181 | <tr> | |
182 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=48">#48</a></d> | |
183 | <td>build-time dependency on <tt>oggdec</tt> removed</td> | |
184 | </tr> | |
185 | ||
7cd4dd21 | 186 | |
f5fd9a6b RK |
187 | </table> |
188 | ||
189 | </div> | |
190 | </div> | |
191 | ||
a0e78d96 | 192 | <h2>Changes up to version 4.3</h2> |
d8b95785 RK |
193 | |
194 | <div class=section> | |
195 | ||
196 | <h3>Disobedience</h3> | |
197 | ||
198 | <div class=section> | |
199 | ||
200 | <p>A bug was fixed in the calculation of how much of the track had | |
e02f9807 RK |
201 | played. This would lead to the counter showing incorrect values in |
202 | various situations.</p> | |
d8b95785 RK |
203 | |
204 | <p>Disobedience's icons have been changed to larger, more colorful | |
205 | ones. The SVG source is included if you want to fiddle with them.</p> | |
206 | ||
a0e78d96 RK |
207 | <p>“Select all” is now no longer available in the choose |
208 | tab. Instead there is a new “Select children” option which | |
209 | selects the file children of a single subdirectory.</p> | |
210 | ||
d8b95785 RK |
211 | </div> |
212 | ||
6151ae7e RK |
213 | <h3>Server</h3> |
214 | ||
215 | <div class=section> | |
216 | ||
217 | <p>The selection bias for newly added tracks was reduced by half. You | |
218 | can put it back to the old very neophilic value with | |
219 | “<tt>new_bias 900000</tt>” in the config file.</p> | |
220 | ||
ff45af7c RK |
221 | <p>It is now possible to ‘adopt’ randomly picked tracks. |
222 | Disobedience and the command-line client support this but the web | |
223 | interface does not.</p> | |
224 | ||
e02f9807 RK |
225 | <p>The default track name parsing was modified to handle filenames |
226 | generated by iTunes.</p> | |
227 | ||
6151ae7e RK |
228 | </div> |
229 | ||
10a6c925 | 230 | <h3>Miscellaneous</h3> |
d8b95785 RK |
231 | |
232 | <div class=section> | |
233 | ||
10a6c925 RK |
234 | <p><tt>disorderfm</tt> now preserves directory permissions.</p> |
235 | ||
e7eb3a27 RK |
236 | <p>DisOrder is now licensed under <a |
237 | href="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</a>. The main | |
238 | goal is to prohibit <a | |
239 | href="http://en.wikipedia.org/wiki/Tivoization">Tivoization</a>.</p> | |
240 | ||
d8b95785 | 241 | <p>The build system will now automatically cope with Fink's broken GTK+ |
e02f9807 RK |
242 | packages. There are a number of improvements to the Debian |
243 | packaging.</p> | |
d8b95785 | 244 | |
74cfbeaa RK |
245 | <p>DisOrder now builds on 64-bit Linux systems.</p> |
246 | ||
e02f9807 | 247 | <p>There are various minor fixes.</p> |
d8b95785 RK |
248 | |
249 | </div> | |
250 | ||
e02f9807 RK |
251 | <h3>Bugs fixed</h3> |
252 | ||
253 | <div class=section> | |
254 | ||
255 | <table class=bugs> | |
256 | <tr> | |
257 | <th>ID</th> | |
258 | <th>Description</th> | |
259 | </tr> | |
260 | ||
261 | <tr> | |
262 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=24">#24</a></td> | |
263 | <td>Fails to build on ubuntu 8.10</td> | |
264 | </tr> | |
265 | <tr> | |
266 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=26">#26</a></td> | |
267 | <td>Disobedience shows wrong track elapsed time after a pause</td> | |
268 | </tr> | |
269 | </table> | |
270 | ||
271 | </div> | |
d8b95785 | 272 | </div> |
b0a578cb | 273 | |
eb2a1fe9 RK |
274 | <h2>Changes up to version 4.2</h2> |
275 | ||
276 | <div class=section> | |
277 | ||
278 | <h3>Disobedience</h3> | |
279 | ||
280 | <div class=section> | |
281 | ||
282 | <p>The login window now has a 'remote' switch. If this is turned off | |
283 | then Disobedience will connect to a local server. Formerly it would | |
284 | always use TCP/IP.</p> | |
285 | ||
286 | <p>The Delete and backspace keys will now remove tracks from the queue. | |
287 | Escape will now dismiss the properties, users or login windows and return | |
288 | now works in the login and properties windows.</p> | |
289 | ||
290 | </div> | |
291 | ||
292 | <h3>Documentation</h3> | |
293 | ||
294 | <div class=section> | |
295 | ||
296 | <p>Track and global preferences are now described in a new | |
297 | <b>disorder_preferences</b>(5) man page.</p> | |
298 | ||
299 | </div> | |
cc5b0a8e RK |
300 | |
301 | <h3>Bugs fixed</h3> | |
302 | ||
303 | <div class=section> | |
304 | ||
305 | <table class=bugs> | |
306 | <tr> | |
307 | <th>ID</th> | |
308 | <th>Description</th> | |
309 | </tr> | |
310 | ||
311 | <tr> | |
312 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=21">#21</a></td> | |
313 | <td>CGI should use PATH_INFO more sensibly</td> | |
314 | </tr> | |
315 | </table> | |
316 | ||
317 | </div> | |
eb2a1fe9 RK |
318 | </div> |
319 | ||
320 | ||
68210888 RK |
321 | <h2>Changes up to version 4.1.1</h2> |
322 | ||
323 | <div class=section> | |
324 | ||
325 | <p>Disobedience's “Login” window now works when you are logged | |
326 | in.</p> | |
327 | ||
328 | </div> | |
329 | ||
452ad6ba RK |
330 | <h2>Changes up to version 4.1</h2> |
331 | ||
332 | <div class=section> | |
333 | ||
334 | <h3>Disobedience</h3> | |
335 | ||
336 | <div class=section> | |
337 | ||
338 | <p>Disobedience has been largely rewritten:</p> | |
339 | ||
340 | <ul> | |
341 | ||
342 | <li>All the tabs now use native GTK+ list/tree widgets, resulting in | |
343 | greater speed in some cases and more consistency with other GTK+ | |
344 | applications.</li> | |
345 | ||
346 | <li>You can now use type-ahead find in the choose tab. The initiation | |
347 | of a search is delayed slightly to avoid lots of updates when you're | |
348 | half way through entering search terms.</li> | |
349 | ||
350 | <li>The choose tab now shows track lengths.</li> | |
351 | ||
352 | <li>Many buttons are now more reliably made insensitive when they can't | |
353 | be used.</li> | |
30f2f8c9 RK |
354 | |
355 | <li>You can now play tracks off the recent tab.</li> | |
356 | ||
452ad6ba RK |
357 | </ul> |
358 | ||
359 | <p>Disobedience attempts to cope with servers from older versions, up to | |
360 | a point, but this is not well tested and it's best to keep the server | |
361 | fully up to date.</p> | |
362 | ||
363 | </div> | |
364 | ||
365 | <h3>Server</h3> | |
366 | ||
367 | <div class=section> | |
368 | ||
369 | <p>When a track shares a directory with its alias, the real track name is | |
370 | now returned instead of the alias (the opposite way round to the previous | |
371 | behaviour).</p> | |
372 | ||
373 | </div> | |
374 | </div> | |
375 | ||
32918782 RK |
376 | <h2>Changes up to version 4.0.2</h2> |
377 | ||
378 | <div class=section> | |
379 | ||
380 | <p>Corrected web browser linked from Disobedience.</p> | |
381 | ||
382 | </div> | |
383 | ||
f03d4184 RK |
384 | <h2>Changes up to version 4.0.1</h2> |
385 | ||
386 | <div class=section> | |
387 | ||
388 | <p>Libtool and Automake now install the CGI correctly. As part of this, | |
389 | <tt>cgidir</tt> has been renamed to <tt>cgiexecdir</tt>. The configure | |
390 | script will report an error if you try to use the old name.</p> | |
391 | ||
392 | </div> | |
393 | ||
0ba75c7f | 394 | <h2>Changes up to version 4.0</h2> |
b0a578cb RK |
395 | |
396 | <div class=section> | |
397 | ||
398 | <h3>Server</h3> | |
399 | ||
400 | <div class=section> | |
401 | ||
402 | <p>The <tt>gap</tt> directive will no longer work. It could be | |
403 | restored if there is real demand.</p> | |
404 | ||
405 | <h4>Event Scheduling</h4> | |
406 | ||
407 | <div class=section> | |
408 | ||
409 | <p>It is now possible to schedule events to occur in the future. | |
410 | Currently the supported actions are playing a specific track, and | |
411 | changing a global preference (thus allowing e.g. random play to be | |
412 | turned on or off). See the <tt>schedule-*</tt> | |
413 | commands described in disorder(1).</p> | |
414 | ||
415 | </div> | |
416 | ||
417 | <h4>Random Track Choice</h4> | |
418 | ||
419 | <div class=section> | |
420 | ||
421 | <p>This has been completely rewritten to support new features:</p> | |
422 | ||
423 | <ul> | |
424 | ||
425 | <li>tracks in the recently-played list or in the queue are no longer | |
426 | eligible for random choice.</li> | |
427 | ||
428 | <li>there is a new <tt>weight</tt> track preference allowing for | |
429 | non-uniform track selection. See disorder(1) for details.</li> | |
430 | ||
431 | <li>there is a new configuration item <tt>replay_min</tt> defining | |
432 | the minimum time before a played track can be picked at random. | |
433 | The default is 8 hours (which matches the earlier behaviour).</li> | |
434 | ||
435 | <li>recently added tracks are biased up; see <tt>new_bias</tt> and | |
436 | <tt>new_bias_age</tt> in disorder_config(5).</li> | |
437 | ||
438 | </ul> | |
439 | ||
440 | </div> | |
441 | ||
442 | <h4>Web Interface</h4> | |
443 | ||
444 | <div class=section> | |
445 | ||
446 | <p>This has been largely rewritten. The most immediate benefits are:</p> | |
447 | ||
448 | <ul> | |
449 | ||
450 | <li>the search page is integrated into the choose page, and | |
451 | includes links to parent directories.</li> | |
452 | ||
453 | <li>if you try to do something you have insufficient rights for, | |
454 | instead of getting an error page or nothing happening, you are | |
455 | redirected to the login page.</li> | |
456 | ||
457 | </ul> | |
458 | ||
459 | <p>Customizers should find their lives easier: the syntax is less onerous, it | |
460 | is possible to define macros to avoid repetition, and the documentation is | |
461 | less monolithic (see disorder.cgi(8) as a starting point).</p> | |
462 | ||
2eee4b0c RK |
463 | <p>Mail is now sent via the system sendmail program, though it remains |
464 | possible to use TCP to connect to an SMTP server. See <tt>sendmail</tt> and | |
465 | <tt>smtp_server</tt> in disorder_config(5).</p> | |
4cbafe13 | 466 | |
64ac73bb RK |
467 | <p>The web interface is now installed automatically. If you don't want it, |
468 | use <tt>./configure --without-cgi</tt>. If you want it in a non-default | |
469 | location, or no location for it is detected, set <tt>cgidir</tt> | |
470 | and <tt>httpdir</tt> on the <tt>./configure</tt> command line.</p> | |
2eee4b0c | 471 | |
b0a578cb RK |
472 | </div> |
473 | ||
474 | </div> | |
475 | ||
476 | <h3>Disobedience</h3> | |
477 | ||
478 | <div class=section> | |
479 | ||
480 | <p>There is now a new user management window. From here you can add and | |
481 | remove users or modify their settings.</p> | |
482 | ||
483 | <p>Relatedly, the server will only allow remote user management if you set | |
484 | <tt>remote_userman</tt> to <tt>yes</tt>.</p> | |
485 | ||
486 | </div> | |
487 | ||
488 | <h3>Miscellaneous</h3> | |
489 | ||
490 | <div class=section> | |
491 | ||
492 | <p><tt>scripts/setup</tt> now honors command line options, and can | |
493 | set up network play as well as the local default sound device.</p> | |
494 | ||
495 | </div> | |
496 | ||
497 | <h3>Bugs Fixed</h3> | |
498 | ||
499 | <div class=section> | |
500 | ||
501 | <table class=bugs> | |
502 | <tr> | |
503 | <th>ID</th> | |
504 | <th>Description</th> | |
505 | </tr> | |
506 | ||
507 | <tr> | |
508 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=2">#2</a></td> | |
509 | <td>Search results should link to directories</td> | |
510 | </tr> | |
511 | ||
512 | <tr> | |
513 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=6">#6</a></td> | |
514 | <td>Schedule tracks for a particular time</td> | |
515 | </tr> | |
516 | ||
517 | <tr> | |
518 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=10">#10</a></td> | |
519 | <td>Non-uniform track selection</td> | |
520 | </tr> | |
521 | ||
522 | <tr> | |
523 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=11">#11</a></td> | |
524 | <td>Bias random selection to newly added tracks</td> | |
525 | </tr> | |
526 | ||
527 | <tr> | |
528 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=13">#13</a></td> | |
529 | <td>Default encoding for debian setup scripts</td> | |
530 | </tr> | |
531 | ||
532 | <tr> | |
533 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=16">#16</a></td> | |
534 | <td>Cookie expiry causes user to be silently logged out and not | |
535 | subsequently redirected to login page</td> | |
536 | </tr> | |
537 | ||
538 | <tr> | |
539 | <td><a href="http://code.google.com/p/disorder/issues/detail?id=20">#20</a></td> | |
540 | <td>Broken aliasing rules</td> | |
541 | </tr> | |
542 | ||
543 | </table> | |
544 | ||
545 | </div> | |
546 | ||
547 | </div> | |
548 | ||
549 | <h2>Changes up to version 3.0.2</h2> | |
550 | ||
551 | <div class=section> | |
552 | ||
553 | <p>Builds <tt>--without-server</tt> should work again.</p> | |
554 | ||
555 | <p>The web interface is a bit more liberal in the cookie value | |
556 | syntax it will accept.</p> | |
557 | ||
558 | <p>Clients fail more gracefully if no password is available.</p> | |
559 | ||
560 | </div> | |
561 | ||
562 | <h2>Changes up to version 3.0.1</h2> | |
563 | ||
564 | <div class=section> | |
565 | ||
566 | <p>Debian upgrades from 2.0.x should now work better.</p> | |
567 | ||
568 | </div> | |
569 | ||
570 | <h2>Changes up to version 3.0</h2> | |
571 | ||
572 | <div class=section> | |
573 | ||
574 | <p><b>Important</b>! See <a | |
575 | href="README.upgrades">README.upgrades</a> when upgrading.</p> | |
576 | ||
577 | <h3>Platforms And Installation</h3> | |
578 | ||
579 | <div class=section> | |
580 | ||
581 | <p>Mac OS X and FreeBSD are somewhat supported. There is now a bash | |
582 | script in <tt>scripts/setup</tt> which will automate the setup after | |
583 | <tt>make install</tt>.</p> | |
584 | ||
585 | </div> | |
586 | ||
587 | <h3>Server</h3> | |
588 | ||
589 | <div class=section> | |
590 | ||
591 | <p>Users are now stored in the database rather than a configuration | |
592 | file.</p> | |
593 | ||
594 | <p>The server now has a built-in list of stopwords and players, so | |
595 | only additions to these need be mentioned in the configuration file.</p> | |
596 | ||
597 | <p>The default inter-track gap is now 0s.</p> | |
598 | ||
599 | <p>How sound is played is now controlled via the new <tt>api</tt> | |
600 | configuration command. This also controls how the volume is set, | |
601 | which now works with ALSA as well as OSS.</p> | |
602 | ||
603 | <p>A bug in the MP3 decoder was fixed (also in 2.0.4).</p> | |
604 | ||
605 | </div> | |
606 | ||
607 | <h3>Web Interface</h3> | |
608 | ||
609 | <div class=section> | |
610 | ||
611 | <p>The web interface now uses cookies to remember user identity, and | |
612 | allows online registration of new users. Also it is no longer | |
613 | necessary to manually specify the URL of the web interface (but you | |
614 | can override it if you don't like the value it figures out).</p> | |
615 | ||
616 | <p>It is possible to allow users to register via the web interface.</p> | |
617 | ||
618 | <p>The web interface's browser support has been improved. It has | |
619 | been tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer | |
620 | 7 and Opera 9.</p> | |
621 | ||
622 | </div> | |
623 | ||
624 | <h3>Disobedience</h3> | |
625 | ||
626 | <div class=section> | |
627 | ||
628 | <p>A bug which would cause a crash if you attempt to rearrange the | |
629 | queue while no track was playing has been fixed. There is a new | |
630 | 'deselect all tracks' option, mirroring 'select all tracks.</p> | |
631 | ||
632 | </div> | |
633 | ||
634 | </div> | |
635 | ||
636 | <!-- | |
637 | Local Variables: | |
638 | fill-column:79 | |
4cbafe13 | 639 | indent-tabs-mode:nil |
b0a578cb RK |
640 | End: |
641 | --> |