mumboe-vpim 0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/CHANGES +510 -0
  2. data/COPYING +58 -0
  3. data/README +185 -0
  4. data/lib/vpim/address.rb +219 -0
  5. data/lib/vpim/agent/atomize.rb +104 -0
  6. data/lib/vpim/agent/base.rb +73 -0
  7. data/lib/vpim/agent/calendars.rb +173 -0
  8. data/lib/vpim/agent/handler.rb +26 -0
  9. data/lib/vpim/agent/ics.rb +161 -0
  10. data/lib/vpim/attachment.rb +102 -0
  11. data/lib/vpim/date.rb +222 -0
  12. data/lib/vpim/dirinfo.rb +277 -0
  13. data/lib/vpim/duration.rb +119 -0
  14. data/lib/vpim/enumerator.rb +32 -0
  15. data/lib/vpim/field.rb +614 -0
  16. data/lib/vpim/icalendar.rb +384 -0
  17. data/lib/vpim/maker/vcard.rb +16 -0
  18. data/lib/vpim/property/base.rb +193 -0
  19. data/lib/vpim/property/common.rb +315 -0
  20. data/lib/vpim/property/location.rb +38 -0
  21. data/lib/vpim/property/priority.rb +43 -0
  22. data/lib/vpim/property/recurrence.rb +69 -0
  23. data/lib/vpim/property/resources.rb +24 -0
  24. data/lib/vpim/repo.rb +261 -0
  25. data/lib/vpim/rfc2425.rb +367 -0
  26. data/lib/vpim/rrule.rb +591 -0
  27. data/lib/vpim/time.rb +40 -0
  28. data/lib/vpim/vcard.rb +1456 -0
  29. data/lib/vpim/version.rb +18 -0
  30. data/lib/vpim/vevent.rb +187 -0
  31. data/lib/vpim/view.rb +90 -0
  32. data/lib/vpim/vjournal.rb +58 -0
  33. data/lib/vpim/vpim.rb +65 -0
  34. data/lib/vpim/vtodo.rb +103 -0
  35. data/lib/vpim.rb +13 -0
  36. data/samples/README.mutt +93 -0
  37. data/samples/ab-query.rb +57 -0
  38. data/samples/agent.ru +10 -0
  39. data/samples/cmd-itip.rb +156 -0
  40. data/samples/ex_cpvcard.rb +55 -0
  41. data/samples/ex_get_vcard_photo.rb +22 -0
  42. data/samples/ex_mkv21vcard.rb +34 -0
  43. data/samples/ex_mkvcard.rb +64 -0
  44. data/samples/ex_mkyourown.rb +29 -0
  45. data/samples/ics-dump.rb +210 -0
  46. data/samples/ics-to-rss.rb +84 -0
  47. data/samples/mutt-aliases-to-vcf.rb +45 -0
  48. data/samples/osx-wrappers.rb +86 -0
  49. data/samples/reminder.rb +209 -0
  50. data/samples/rrule.rb +71 -0
  51. data/samples/tabbed-file-to-vcf.rb +390 -0
  52. data/samples/vcf-dump.rb +86 -0
  53. data/samples/vcf-lines.rb +61 -0
  54. data/samples/vcf-to-ics.rb +22 -0
  55. data/samples/vcf-to-mutt.rb +121 -0
  56. data/test/test_agent_atomize.rb +84 -0
  57. data/test/test_agent_calendars.rb +128 -0
  58. data/test/test_agent_ics.rb +96 -0
  59. data/test/test_all.rb +17 -0
  60. data/test/test_date.rb +120 -0
  61. data/test/test_dur.rb +41 -0
  62. data/test/test_field.rb +156 -0
  63. data/test/test_ical.rb +437 -0
  64. data/test/test_misc.rb +13 -0
  65. data/test/test_repo.rb +129 -0
  66. data/test/test_rrule.rb +1030 -0
  67. data/test/test_vcard.rb +973 -0
  68. data/test/test_view.rb +79 -0
  69. metadata +140 -0
data/CHANGES ADDED
@@ -0,0 +1,510 @@
1
+ 0.695 - 2009-03-01
2
+
3
+ - Alpha versions of vPim agent (http://agent.octetcloud.com)
4
+ - Fixed: reminder app had drifted out of sync with API change
5
+
6
+
7
+ 0.657 - 2008-08-14
8
+
9
+ - Date#to_time renamed to Date#vpim_to_time. Apparently Rails also patches the core.
10
+
11
+ - Debian doesn't like RFCs. I think there is a problem with the DFG, not the
12
+ IETF. The value of a standard is that it can't be modified (if anybody could
13
+ publish a modified version of an RFC without restriction chaos would ensue).
14
+ Still, we lost that argument, and I'll try and help packagers out.
15
+
16
+ - View, gives various views of calendars. Experimental.
17
+
18
+ - Fixed doc comment refs to common Property module.
19
+
20
+ - Vtodo#duration and #due now work correctly (the missing one will be calculated
21
+ from the other).
22
+
23
+ - Vevent::Maker#add_rrule, #set_rrule are new, using Rrule::Maker.
24
+
25
+ - There is now (half-of) an Rrule::Maker class to help construct RRULE values.
26
+
27
+ - Vjournal can be encoded now (it was broken).
28
+
29
+ - Better code coverage by the tests.
30
+
31
+ - Recurrence#occurrences now returns an Enumerator instead of an Rrule. Both
32
+ have #each, and both yield the same thing, so that isn't an API change. However,
33
+ Rrule had an each_until, and the Enumerator doesn't. Use the dountil argument
34
+ to #occurrences to get the same effect. The asymetry of this API caused me
35
+ (non-aesthetic) trouble, now Rrule is an internal implementation detail.
36
+ Also, this would have had to change eventually, because occurrences need to
37
+ be the union of multiple RRULE and RDATE fields.
38
+
39
+ - Recurrence#rrule, returns an Rrule for the first RRULE field. Can be used
40
+ as transition.
41
+
42
+ - Icalendar#calscale was broken, and is now unit tested, along with #version
43
+ and #protocol?.
44
+
45
+ - Icalendar#{each,events,todos,journals} all yield components, or return an
46
+ enumerator.
47
+
48
+ - Icalendar is enumerable.
49
+
50
+ - Repo and Repo::Calendar are enumerable.
51
+
52
+ - #occurrences will call Rrule#each if a block is provided
53
+
54
+ - Recurrence rules with DTSTART in UTC will now sortof work (thanks to Max
55
+ Werner for providing the patch).
56
+
57
+ - Added convenience methods for setting and getting title and org fiels (thanks
58
+ to Jade Meskill for providing the patch).
59
+
60
+ - Modified Icalendar#create2 so only prodid can be supplied and cal is yielded
61
+ so events/etc. can be pushed.
62
+
63
+ - Support Highrisehq.com's broken google talk field (see test_vcard.rb for
64
+ examples, thanks to Terry Tong for reporting).
65
+
66
+
67
+ 0.619 - 2008-03-30
68
+
69
+ - Fixed some problems with rescue statements not being specific enough.
70
+
71
+ - Vcard#birthday may now return a DateTime.
72
+
73
+ - Added Vcard#urls
74
+
75
+ - Fixed a mispelled Uri in Vcard#url
76
+
77
+ - Global fix of misspellings of "occurrence"
78
+
79
+ - KAddressBook compatibility fix - allow / in field names, even though it is
80
+ illegal in vCard 3.0.
81
+
82
+
83
+ 0.604 - 2008-03-13
84
+
85
+ - Fixed a bug with lower-case UTF-16 encoded cards not being detected properly.
86
+
87
+ - Skip over invalidly encoded vCard fields when enumerating them.
88
+
89
+
90
+ 0.602 - 2008-03-12
91
+
92
+ - Updated reminder utility to work with iCal 3.
93
+
94
+ - Reworked gem to include tests, samples, and binaries.
95
+
96
+
97
+ 0.597 - 2008-03-01
98
+
99
+ - Support for BYSETPOS in recurrence rules (development supported by ZipDX.com)
100
+
101
+ - Support for FREQ=weekly in recurrence rules (development supported by ZipDX.com)
102
+
103
+ - Fixed an encode_text() bug (patch supplied by Jan Becvar)
104
+
105
+ - Fixed problem with interaction between BYMONTH and BYDAY (patch supplied by
106
+ Sam Stephenson of 32signals.com)
107
+
108
+ - Vevent::Maker - Started adding high-level iCalendar encoding APIs
109
+
110
+ - Vpim::Vcard::Maker - the vCard maker is moved here
111
+
112
+ - Vpim::Maker - deprecated
113
+
114
+ - Vcard::make, Maker::Vcard#delete_if - new
115
+
116
+ - Vcard::Maker#add_name - deprecate, see Vcard::Maker#name
117
+
118
+ - Vcard::Maker#fullname= - deprecate, see Vcard::Maker#name
119
+
120
+ - Added high-level vCard decoding API.
121
+
122
+ - Beginning to depend on ruby1.8. I'm willing to try for backwards compat if I
123
+ get feedback that this causes difficulties.
124
+
125
+ - Icalendar#components - new
126
+
127
+ - Icalendar#vevents - deprecated, see Icalendar#components
128
+
129
+ - split Vtodo and Vjournal into own files
130
+
131
+ - Added Recurrence module to Vtodo and Vjournal
132
+
133
+ - Property::Common#sequence - new
134
+
135
+ - Property::Common#attachments - new
136
+
137
+ - Icalendar::Attachment - new
138
+
139
+ - Maker::Vcard#add_url - new
140
+
141
+ - ex_mkyourown.rb - new example
142
+
143
+ - Modularized the component property accessor methods, and added lots of
144
+ Icalendar property support for Vevent, Vtodo, and Vjournal.
145
+
146
+ - Fixed support for TEXT decoding.
147
+
148
+ - Use Subversion revision as release sub-version.
149
+
150
+ - It appears that a top-level vpim.rb that requires everything else is needed
151
+ for ruby-gems, gemspec seems to work now.
152
+
153
+ - Don't package backup files (.../*.rb~).
154
+
155
+ - Icalendar decoding optimizations. Icalendar.decode is about twice as fast
156
+ now, and more optimizations are scheduled.
157
+
158
+ - Continue the move to using uppercase for all syntactic elements that can be
159
+ mixed case. The API might eventually allow only uppercase, it appears
160
+ case-insensitive comparisons still have a noticeable effect on performance.
161
+
162
+
163
+ 0.17 - 2006-03-08
164
+
165
+ - DirectoryInfo#delete - new
166
+
167
+ - Maker::Vcard#fullname - new
168
+
169
+ - Provide an example of how to create, copy, and modify version 2.1 vCards.
170
+
171
+ - Maker::Vcard.make2 - new
172
+
173
+ - Maker::Vcard.make - deprecated
174
+
175
+ - Profiled decoding of a huge iCalendar file. Performance appears to be
176
+ dominated by overhead of String#downcase (20% of time spent in Field#name?).
177
+ Keeping the field group, field name, and field's parameter's names internally
178
+ in uppercase and using ruby 1.8's String#casecmp? is a first attempt at
179
+ optimization. This is a change in the default case returned, but it aligns
180
+ with the RFC and common usage.
181
+
182
+ - Maker::Vcard.make - full_name is now optional, it will be derived from name/N:
183
+
184
+ - Maker::Vcard#add_field - better argument checking
185
+
186
+ - Maker::Vcard#copy - new
187
+
188
+ - Vcard#[] - now limits return to fields with values
189
+
190
+ - Vcard#name - new
191
+
192
+ - Vcard::Name - new
193
+
194
+ - Vcard#nicknames - new
195
+
196
+ - Field#params and Field#param - deprecated and undocumented, I could never
197
+ remember the difference
198
+
199
+ - Field#pnames - new
200
+
201
+ - Field#pvalues - new
202
+
203
+ - Methods.casecmp? - new
204
+
205
+ - Field#pref= - new
206
+
207
+ - Field#pvalue_idel - new
208
+
209
+ - Field#pvalue_iadd - new
210
+
211
+
212
+ 0.16 - 2006-02-19
213
+
214
+ - Packaged in gem format, experimental.
215
+
216
+ - Read vCards in UTF-8 or UTF-16, big or little endian, with or without a byte
217
+ order mark (BOM).
218
+
219
+ - Fixed bug with rrule occurences containing the end of the interval. Reported
220
+ with patch by Brad Ediger.
221
+
222
+ 0.15 - 2005-07-29
223
+
224
+ - Fixed bug with param values with quoted strings, particularly a quoted string
225
+ containing a : character, like
226
+ name;param="file:///":value
227
+
228
+ Thanks to Tamiji Homma for reporting this and sending me an example calendar.
229
+
230
+ - Vtodo.create - new
231
+ - Icalendar#push - allow Vtodos to be added
232
+
233
+ Thanks to Maximillian Dornseif for contributing the above two Vtodo patches.
234
+
235
+ - Vevent.duration - bug fixes so duration can be calculated from begin/end, and
236
+ end can be calculated from begin/duration
237
+
238
+ - Vcard#nickname that strips whitespace to see if there really is a nickname
239
+
240
+ - Vcard#birthday - returns birthday as a date
241
+
242
+ - Vevent#create_yearly - easy, cheesy way to create yearly recurring events
243
+
244
+ - vcf-to-ics.rb: example of how to create calendars of bdays from vcards
245
+
246
+ - Icalendar.create() like Vevent.create(), it will take arrays of Fields, or
247
+ Hashes of String => value.
248
+
249
+ - maker/vcard.rb: Added support for X-AIM, an Apple extension.
250
+
251
+ 0.14 - 2005-02-01
252
+
253
+ - Fix: if an RRULE didn't ever yield an event (a bug in the rule) dountil was never tested.
254
+
255
+ - Change: don't throw an ArgumentError with infinite events, just stop when the
256
+ Time is no longer representable
257
+
258
+ 0.13 - 2005-01-20
259
+
260
+ - Was calling to_time with an arg, fixed.
261
+
262
+ 0.12 - 2005-01-17
263
+
264
+ - Removed require of pp from the library and utilities where it wasn't needed,
265
+ it was causing problems because it doesn't exist on ruby 1.6 systems.
266
+
267
+ - Added Field#to_date, returns field value as an array of Date objects
268
+
269
+ - Changed Field#to_time - it now auto-detects format of values
270
+ (DATE/DATE-TIME), and doesn't take/require a default_kind argument.
271
+
272
+ - Added IMPP support to Vpim::Maker::Vcard.
273
+
274
+ - Makefile wasn't copying the Maker classes into the release.
275
+
276
+ - Duration value not returned unless it was negative, fixed.
277
+
278
+ - An RRULE's UNTIL was always being assumed to be a DATE-TIME, but it can be a
279
+ DATE. I fixed this, but is something of a hack, see comments and TODO.
280
+
281
+ - Use String#scan instead of String#gsub, when appropriate (I didn't know it
282
+ existed when I stated the project).
283
+
284
+ - Run tests on 3 ruby versions.
285
+
286
+ - Don't include docs in release package, it makes it way too large.
287
+
288
+ - Change: use String.unpack instead of iconv to convert UCS-2 to UTF-8,
289
+ removing dependency on iconv (it wasn't standard in ruby 1.6).
290
+
291
+ - Change: simplified mutt_ab_query.rb, and renamed to vcf-to-mutt.
292
+
293
+ - Change: reminder.rb sorts todo items by priority.
294
+
295
+ - New: Vtodo#priority - the priority of the vTodo component.
296
+
297
+ 0.11 - 2004-11-17
298
+
299
+ - Added a Vpim::Maker::Vcard class to simplify the creation of vCards, modelled
300
+ after the RSS maker from ruby's RSS library.
301
+
302
+ 0.10 - 2004-11-07
303
+
304
+ - If events don't have a recurrence rule, they occur once, but they
305
+ were being returned even if they occurred after "dountil". Fixed.
306
+
307
+ - New sample of converting tab-delimited files to a vcard file, from
308
+ Dane G. Avilla. Thanks!
309
+
310
+ 0.9a - 2004-10-31
311
+
312
+ - Made sure all events occur once in rrules.
313
+
314
+ - New sample of encoding: mutt-aliases-vcard.rb
315
+
316
+ - Added ToDo support to reminder.rb.
317
+
318
+ 0.9 - 2004-06-17
319
+
320
+ - Field now is mutable, you can change the group, value, params, etc.
321
+
322
+ - Using the Enumerator object for DirectoryInfo now, instead of all the
323
+ each_by_X, and field_by_X() APIs.
324
+
325
+ - Moved homepage and docs to Ruby Forge.
326
+
327
+ - DirectoryInfo.create: added a profile argument
328
+
329
+ - DirectoryInfo#push: now pushes to 1 before the end
330
+
331
+ - DirectoryInfo#push_end: pushes onto end, in case you really want to
332
+
333
+ - Field.create: a Date or Time object value will now be encoded as date or time
334
+
335
+ - Vpim.encode_date(): encodes an RFC2425 date
336
+
337
+ - Vpim.encode_time(): encodes an RFC2425 time
338
+
339
+ - Vpim.encode_date_time(): encodes an RFC2425 date-time
340
+
341
+ - Icalendar#encode(): encodes an Icalendar
342
+
343
+ - Icalendar#push(): pushes a calendar component onto a calendar
344
+
345
+ - Vevent#accept(): accepts an event invitation
346
+
347
+ - Vevent#create(): creates a new event
348
+
349
+ - Address#copy(): create a copy of Address. If the original Address was frozen,
350
+ this one won't be.
351
+
352
+ - Address#partstat=(): set or change the PARTSTAT.
353
+
354
+ - Field#copy(): create a copy of Field. If the original Field was frozen, this
355
+ one won't be.
356
+
357
+ 0.8 - 2004-04-01
358
+
359
+ - Moved DirectoryInfo::Field into it's own file, vpim/field.rb.
360
+
361
+ - New: Vpim::Duration - crude way of getting days/hours/mins/secs from a
362
+ duration in seconds.
363
+
364
+ - New: Icalendar#create() and Icalendar#create_reply()
365
+
366
+ - New: Icalendar#encode(), #to_s is an alias to #encode.
367
+
368
+ - New: Icalendar#protocol?()
369
+
370
+ - Change: Icalendar#version() raises an error if there is no VERSION
371
+
372
+ - Change: made all the DirectoryInfo, Vcard, and Field .new() class methods
373
+ private, and replaced with the 2 class methods:
374
+
375
+ - decode() decodes a string, returning a ruby object
376
+ - create() creates a new object
377
+
378
+ and all objects now get encoded using:
379
+
380
+ - encode() takes a ruby object, and encodes it as a string
381
+
382
+ They become more symetrical, and the overloaded meanings of .new() dissappear -
383
+ with .new() are you decoding, encoding, creating...?
384
+
385
+ - Change: Icalendar::Vevent#attendees() can return only attendees
386
+ with a particular URI.
387
+
388
+ - New: Icalendar::Address#==()
389
+
390
+ - New: Icalendar::Vevent#attendee?()
391
+
392
+ - Fixed bug: Field#encode() was adding an unexpecte NL to the line.
393
+
394
+ - Change: Field#name?() can accept a symbol.
395
+
396
+ - New: DirectoryInfo has an #each(), so I included Enumerable. Because of this
397
+ #to_a() now returns all the Fields in a DirectoryInfo.
398
+
399
+ - New: DirectoryInfo#push() and DirectoryInfo@push_uniq().
400
+
401
+ - Change: DirectoryInfo#<<() is now an alias for DirectoryInfo#push()
402
+
403
+ - Change: DirectoryInfo#each() and DirectoryInfo#each_by() now return self
404
+ instead of nil, I think this is more rubyish.
405
+
406
+ - New: Date#to_time() - converts a Date, and maybe a DateTime, to a Time
407
+
408
+ - New: Icalendar#protocol()
409
+
410
+ - New: Icalendar::Address
411
+
412
+ - New: Icalendar::Vevent#organizer()/attendees(), which return an
413
+ Icalendar::Address
414
+
415
+ - New: An array of all the values of fields named name, converted to text,
416
+ using Field.to_text().
417
+
418
+
419
+ 0.7 - 2004-03-21
420
+
421
+ - Bug fixes, not all files were requiring vpim.rb, which had the definition of
422
+ the invalid encoding error.
423
+
424
+ - Implemented much requested feature: ignore empty lines in input. This is an
425
+ invalid encoding, but I'm tired of fighting it.
426
+
427
+
428
+ 0.6 - 2004-03-20
429
+
430
+ WARNING: major API renamings!
431
+
432
+ - Replaced the Vpim::Errors::*Error exception classes with a single exception
433
+ class: Vpim::InvalidEncodingError. That, and a message, is all I really need.
434
+ I don't think people need different classes for different types of encoding
435
+ errors, either the library can decode it for them, or it can't.
436
+
437
+ - Renamed project to "vpim" (to reflect vCard and vCalendar/iCalendar support),
438
+ renamed top-level Rfc2425 module to Vpim, split vard.rb into multiple files.
439
+
440
+ - Add support for iCalendar (RFC2445), see vpim/icalendar.rb. Currently only
441
+ supports VEVENT, no VTODO or VALARM yet, but is useable to print my upcoming
442
+ iCal events.
443
+
444
+ - Implemented the iCalendar recurrence rules mini-language, which is possibly
445
+ of more general use than just for iCalendar.
446
+
447
+ - Fixed bug in time decoding where usec would be nil instead of zero when no
448
+ usec were present in the time value.
449
+
450
+ - Field#to_time now assumes that time is in local time, unless the timezone is
451
+ "Z", meaning UTC.
452
+
453
+ - Field#to_text - new method, unescapes newlines, commas, and escape
454
+ characters.
455
+
456
+ - Field#field(name) - new method, returns the first field named +name+.
457
+
458
+
459
+ 0.5 - 3003-11-23
460
+
461
+ - ab-query.rb - short option for --me was mistyped as -v, instead of -m.
462
+
463
+ - mutt_ab_query.rb - added a --pipe option, so that the output of an other
464
+ script can be directly queried.
465
+
466
+ - New method: Rfc2425.version
467
+
468
+ - Decode vCard 2.1 abbreviated parameters (ones where the name of the parameter
469
+ is missing, only the value is present, which only works for type and encoding).
470
+
471
+ - Vcard.decode() now support UCS-2 encoded vCards, by translating anything that
472
+ looks like UCS-2 to UTF-8 before decoding.
473
+
474
+ 0.4 - 2003-04-14
475
+
476
+ - More support for decoding date, time, and date-time values.
477
+
478
+ - New method Field#to_time().
479
+
480
+ - Can pass an IO object to decode APIs, its entire contents is read as a
481
+ string.
482
+
483
+ - Field#group?() now considers nil as equivalent to no group, so you can use
484
+ each_group(nil) to iterate through all fields without a group.
485
+
486
+ 0.3 -
487
+
488
+ - Added description of how to use mutt_ab_query.rb
489
+
490
+ - Added support for querying the kind of a value, and began support for
491
+ decoding date and time values.
492
+
493
+ 0.2 -
494
+
495
+ - Supports encoding.
496
+
497
+ - Supports accessing values using [].
498
+
499
+ - No longer have methods return an Array, or nil if the array is zero length, I
500
+ just return an Array.
501
+
502
+ - mutt_ab_query.rb - an example of using vcard.rb to do lookups in the OS X
503
+ Address Book from Mutt
504
+
505
+ 0.1 -
506
+
507
+ - First release.
508
+ ---
509
+
510
+ vim:expandtab:tabstop=8:softtabstop=2:shiftwidth=2
data/COPYING ADDED
@@ -0,0 +1,58 @@
1
+ vPim is copyrighted free software by Sam Roberts <sroberts@uniserve.com>.
2
+
3
+ You can redistribute it and/or modify it under either the terms of the GPL (see
4
+ the file GPL), or the conditions below:
5
+
6
+ 1. You may make and give away verbatim copies of the source form of the
7
+ software without restriction, provided that you duplicate all of the
8
+ original copyright notices and associated disclaimers.
9
+
10
+ 2. You may modify your copy of the software in any way, provided that
11
+ you do at least ONE of the following:
12
+
13
+ a) place your modifications in the Public Domain or otherwise make them
14
+ Freely Available, such as by posting said modifications to Usenet or an
15
+ equivalent medium, or by allowing the author to include your
16
+ modifications in the software.
17
+
18
+ b) use the modified software only within your corporation or
19
+ organization.
20
+
21
+ c) give non-standard binaries non-standard names, with instructions on
22
+ where to get the original software distribution.
23
+
24
+ d) make other distribution arrangements with the author.
25
+
26
+ 3. You may distribute the software in object code or binary form,
27
+ provided that you do at least ONE of the following:
28
+
29
+ a) distribute the binaries and library files of the software, together
30
+ with instructions (in the manual page or equivalent) on where to get the
31
+ original distribution.
32
+
33
+ b) accompany the distribution with the machine-readable source of the
34
+ software.
35
+
36
+ c) give non-standard binaries non-standard names, with instructions on
37
+ where to get the original software distribution.
38
+
39
+ d) make other distribution arrangements with the author.
40
+
41
+ 4. You may modify and include the part of the software into any other
42
+ software (possibly commercial). But some files in the distribution
43
+ are not written by the author, so that they are not under these terms.
44
+
45
+ For the list of those files and their copying conditions, see the
46
+ file LEGAL.
47
+
48
+ 5. The scripts and library files supplied as input to or produced as
49
+ output from the software do not automatically fall under the
50
+ copyright of the software, but belong to whomever generated them,
51
+ and may be sold commercially, and may be aggregated with this
52
+ software.
53
+
54
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
55
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
56
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
57
+ PURPOSE.
58
+