Minor changes and typo fixes.
[gnupg.git] / common / ChangeLog
1 2006-09-04  Werner Koch  <wk@g10code.com>
2
3         * http.c (http_get_header): New.
4         (capitalize_header_name, store_header): New.
5         (parse_response): Store headers away.
6         (send_request): Return GPG_ERR_NOT_FOUND if connect_server failed.
7         * http.h: New flag HTTP_FLAG_NEED_HEADER.
8
9 2006-08-21  Werner Koch  <wk@g10code.com>
10
11         * Makefile.am (libcommon_a_SOURCES): Added keyserver.h
12
13         * openpgpdefs.h: New.  Stripped from ..g10/packet.h.
14
15 2006-08-16  Werner Koch  <wk@g10code.com>
16
17         * keyserver.h: Moved from ../include to here.
18
19         * http.c: Include srv.h.
20
21         * srv.c, srv.h: New. Taken from GnuPG 1.4
22
23 2006-08-14  Werner Koch  <wk@g10code.com>
24
25         * http.h (struct http_context_s): Moved to implementation.
26         * http.c (http_open): Changed call to return a context.
27         (http_open_document): Ditto.
28         (http_get_read_ptr, http_get_read_ptr, http_get_status_code): New.
29         (do_parse_uri): Replaced strlwr by straight code to ease
30         standalone use of this file.
31         (http_wait_response): Removed arg STATUS_CODE as it is available
32         through an accessor function. Adjusted caller.
33         (http_escape_string): New.
34
35         * estream.c (es_read_line): Renamed to ..
36         (doreadline): .. this.  Changed all callers.
37         (es_read_line): New.  This is theusual limited getline variabnt as
38         used at several places.  Here taken and adjusted from xreadline.c
39         (es_free): New.
40
41 2006-08-11  Werner Koch  <wk@g10code.com>
42
43         * http.c: Major internal changes to optionallly support GNUTLS and
44         ESTREAM.
45         (http_open): Move initialization of the stream ...
46         (send_request): .. here.
47         (http_register_tls_callback): New.
48
49         * estream.c (es_writen): Try to seek only is a seek function has
50         been registered.
51
52 2006-08-09  Werner Koch  <wk@g10code.com>
53
54         * http.c, http.h: New.  Taken from gnupg 1.4.5, merged with
55         changes done for the Dirmngr project (by g10 Code) and cleaned up
56         some stuff.
57         (make_header_line): New. Change all caller to make user of the new
58         * Makefile.am (libcommon_a_SOURCES): Added http.c and http.h.
59
60 2006-05-23  Werner Koch  <wk@g10code.com>
61
62         * gettime.c (isotimestamp): New.
63
64         * ttyio.c (tty_get_ttyname): Posixly correct usage of ctermid.
65
66         * dns-cert.c: New.  Taken from 1.4.3's util/cert.c.
67         * dns-cert.h: New.
68
69 2006-05-22  Werner Koch  <wk@g10code.com>
70
71         * pka.c: New. Taked from 1.4.3.
72         * pka.h: New.
73         * Makefile.am: Added pka.
74
75 2006-05-19  Werner Koch  <wk@g10code.com>
76
77         * yesno.c (answer_is_yes_no_default, answer_is_yes_no_quit):
78         Updated from 1.4.3.
79         (answer_is_okay_cancel): new.  From 1.4.3.
80
81         * miscellaneous.c (match_multistr): New.  Taken from 1.4.3.
82
83         * ttyio.c (tty_enable_completion, tty_disable_completion): New
84         dummy functions.
85         * ttyio.h: Add prototypes and stubs.
86
87 2006-04-19  Werner Koch  <wk@g10code.com>
88
89         * iobuf.c (iobuf_get_fd): New.  Taken from 1.4.3.
90         (iobuf_is_pipe_filename): New.
91         (pop_filter): Made static.
92         (iobuf_skip_rest): New.  Orginal patch by Florian
93         Weimer.  Added new argument PARTIAL.
94         (block_filter): Remove the old gpg indeterminate length mode.
95         (block_filter): Properly handle a partial body stream
96         that ends with a 5-byte length that happens to be zero.
97         (iobuf_set_block_mode, iobuf_in_block_mode): Removed as
98         superfluous.
99         (iobuf_get_filelength): New arg OVERFLOW.
100         (iobuf_get_filelength) [W32]: Use GetFileSizeEx if available
101         * miscellaneous.c (is_file_compressed): Take care of OVERFLOW.
102
103 2006-04-18  Werner Koch  <wk@g10code.com>
104
105         * homedir.c (w32_shgetfolderpath): New.  Taken from gpg 1.4.3.
106         (default_homedir): Use it.
107
108 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
109
110         * signal.c (get_signal_name): Check value of HAVE_DECL_SYS_SIGLIST
111         instead of just if it is defined.
112
113 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
114
115         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
116
117 2005-07-04  Marcus Brinkmann  <marcus@g10code.de>
118
119         * simple-pwquery.h (simple_pwclear): New prototype.
120         * simple-pwquery.c (simple_pwclear): New function.
121
122 2005-06-15  Werner Koch  <wk@g10code.com>
123
124         * miscellaneous.c (make_printable_string): Made P a void*.
125
126         * sexputil.c (keygrip_from_canon_sexp, cmp_simple_canon_sexp):
127         Fixed signed/unsigned pointer mismatch.
128         (make_simple_sexp_from_hexstr): Ditto.  This is all too ugly; I
129         wonder why gcc-4's default is to warn about them and forcing us to
130         use cast the warning away.
131         * iobuf.c (block_filter): Ditto.
132         (iobuf_flush): Ditto.
133         (iobuf_read_line): Ditto.
134         (iobuf_read): Make BUFFER a void *.
135         (iobuf_write): Make BUFFER a const void *.
136         * ttyio.c (tty_print_utf8_string2): Ditto.
137         * estream.c (estream_cookie_mem): Make MEMORY unsigned char*.
138         (es_write): Make BUFFER a void *.
139         (es_writen): Ditto.
140         (es_func_fd_read, es_func_fd_write, es_func_mem_read) 
141         (es_func_mem_write): Ditto.
142         (es_read, es_readn): Ditto.
143         (es_func_mem_write): Made MEMORY_NEW an unsigned char *.
144         * estream.h (es_cookie_read_function_t)
145         (es_cookie_write_function_t): Changed buffer arg to void*.
146
147 2005-06-03  Werner Koch  <wk@g10code.com>
148
149         * estream.c: Use HAVE_CONFIG_H and not USE_CONFIG_H!
150         (es_func_fd_read, es_func_fd_write): Protect against EINTR.
151         
152 2005-06-01  Werner Koch  <wk@g10code.com>
153
154         * Makefile.am (AM_CPPFLAGS): Added.
155
156         * util.h: Add some includes for gnulib.
157         (ttyname, isascii): Define them inline.
158         * fseeko.c, ftello.c: Removed.
159         * strsep.c, mkdtemp.c: Removed.
160         * ttyname.c, isascii.c: Removed.
161
162 2005-05-31  Werner Koch  <wk@g10code.com>
163
164         * dynload.h: s/__inline__/inline/.
165
166 2005-05-13  Werner Koch  <wk@g10code.com>
167
168         * signal.c (got_fatal_signal): Print the signal number if we can't
169         get a name for it.
170         (get_signal_name): Return NULL if no name is available. Fixed
171         conditional for sys_siglist to the correct one.
172
173 2005-04-17  Werner Koch  <wk@g10code.com>
174
175         * sexputil.c (cmp_simple_canon_sexp): New.
176         (make_simple_sexp_from_hexstr): New.
177
178 2005-04-07  Werner Koch  <wk@g10code.com>
179
180         * sexputil.c: New.
181
182 2005-04-11  Marcus Brinkmann  <marcus@g10code.de>
183
184         * simple-pwquery.c (simple_pwquery): Use spwq_secure_free.
185
186 2005-03-03  Werner Koch  <wk@g10code.com>
187
188         * Makefile.am (AM_CFLAGS): Added PTH_CFLAGS.  Noted by Kazu Yamamoto.
189
190 2005-02-25  Werner Koch  <wk@g10code.com>
191
192         * xasprintf.c (xtryasprintf): New.
193
194 2005-01-26  Moritz Schulte  <moritz@g10code.com>
195
196         * Makefile.am (libcommon_a_SOURCES): New source files: estream.c,
197         estream.h.
198         * estream.c, estream.h: New files.
199
200 2005-01-03  Werner Koch  <wk@g10code.com>
201
202         * asshelp.c (send_pinentry_environment): Fixed changed from
203         2004-12-18; cut+paste error for lc-messages.
204
205 2004-12-21  Werner Koch  <wk@g10code.com>
206
207         * simple-pwquery.c (agent_open) [W32]: Implement for W32.
208         (readline) [W32]: Use recv instead of read.
209         (writen) [W32]: Use send instead of write.
210         (my_stpcpy): Define a stpcpy replacement so that this file
211         continues to be self-contained.
212         (agent_send_all_options) [W32]: Don't call ttyname.
213
214 2004-12-21  Marcus Brinkmann  <marcus@g10code.de>
215
216         * simple-pwquery.h (simple_query): Add prototype.
217         * simple-pwquery.c (simple_query): New function.
218
219 2004-12-21  Werner Koch  <wk@g10code.com>
220
221         * signal.c (got_fatal_signal, got_usr_signal)
222         (got_fatal_signal) [DOSISH]: Don't build.
223         * simple-gettext.c: Include sysutils.h 
224
225         * homedir.c: New. Use CSIDL_APPDATA for W32 as the default home
226         directory.
227         * Makefile.am (libcommon_a_SOURCES): Add it.
228         (EXTRA_DIST): Removed mkerror and mkerrtok.
229
230 2004-12-20  Werner Koch  <wk@g10code.com>
231
232         * sysutils.h [W32]: Define sleep.
233         * util.h: Add prototype for mkdtemp.
234
235         * membuf.c (put_membuf): Wipe out buffer after a failed realloc.
236
237 2004-12-19  Werner Koch  <wk@g10code.com>
238
239         * maperror.c (map_assuan_err_with_source): Oops, args were swapped.
240
241 2004-12-18  Werner Koch  <wk@g10code.com>
242
243         * maperror.c (map_assuan_err): Renamed to ..
244         (map_assuan_err_with_source): .. this and add arg SOURCE.c
245         * asshelp.c (send_pinentry_environment, send_one_option): Add arg
246         ERRSOURCE.
247
248 2004-12-15  Werner Koch  <wk@g10code.com>
249
250         * sysutils.h [W32]: Prototypes for registry functions.
251         * w32reg.c: Include sysutils.h
252
253         * simple-pwquery.c [W32]: Dummy code to allow a build.
254
255         * exechelp.c [W32]: Implemented for W32 .
256
257         * ttyname.c: New.
258
259         * asshelp.c (send_one_option): New.
260         (send_pinentry_environment): Cleaned up and made sure that empty
261         values are not send.
262
263 2004-12-07  Werner Koch  <wk@g10code.com>
264
265         * asshelp.c (send_pinentry_environment) [W32]: Do not use ttyname.
266
267 2004-12-06  Werner Koch  <wk@g10code.com>
268
269         * exechelp.h, exechelp.c: New.  Based on code from ../sm/import.c.
270
271 2004-12-03  Werner Koch  <wk@g10code.com>
272
273         * strsep.c: Fixed copyright comments.
274
275 2004-11-26  Werner Koch  <wk@g10code.com>
276
277         * simple-gettext.c: New taken from gnupg 1.3.x
278
279         * simple-pwquery.c [_WIN32]: Include winsock2.h.
280         (agent_open): Disable it until we have our AF_UNIX implementation
281         ready.
282         * fseeko.c, ftello.c: Include sys/types for the sake of W32.
283
284 2004-11-23  Werner Koch  <wk@g10code.com>
285
286         * b64enc.c: Include stdio.h and string.h
287
288 2004-08-18  Werner Koch  <wk@g10code.de>
289
290         * simple-pwquery.c (simple_pwquery): Handle gpg-error style return
291         code for canceled.
292
293 2004-07-20  Werner Koch  <wk@g10code.de>
294
295         * maperror.c: Removed header ksba.h.  Not required anymore.
296
297 2004-06-14  Werner Koch  <wk@gnupg.org>
298
299         * xreadline.c: New.  Based on the iobuf_read_line function.
300
301 2004-05-12  Werner Koch  <wk@gnupg.org>
302
303         * util.h (xtrycalloc_secure,xtrymalloc_secure): New.
304
305 2004-05-11  Werner Koch  <wk@gnupg.org>
306
307         * sysutils.c (disable_core_dumps): Only set the current limit.
308         (enable_core_dumps): New.
309
310 2004-04-13  Werner Koch  <wk@gnupg.org>
311
312         * simple-pwquery.c (copy_and_escape): Relaxed quoting.
313
314 2004-04-05  Werner Koch  <wk@gnupg.org>
315
316         * errors.h (STATUS_NEWSIG): New.
317
318 2004-03-11  Werner Koch  <wk@gnupg.org>
319
320         * dynload.h [__MINGW32__]: Define RTLD_LAZY.
321
322 2004-03-09  Werner Koch  <wk@gnupg.org>
323
324         * maperror.c (map_assuan_err): Map the Locale_Problem item.
325
326 2004-03-03  Werner Koch  <wk@gnupg.org>
327
328         * asshelp.c, asshelp.h: New.
329         (send_pinentry_environment): New. Code taken from ../sm/call-agent.c.
330
331 2004-02-19  Werner Koch  <wk@gnupg.org>
332
333         * simple-pwquery.c (agent_open): Don't mangle INFOSTR.
334
335 2004-02-17  Werner Koch  <wk@gnupg.org>
336
337         * simple-pwquery.c (agent_open): Ignore an empty GPG_AGENT_INFO.
338
339         * errors.h: Added STATUS_IMPORT_OK.
340
341 2004-02-10  Werner Koch  <wk@gnupg.org>
342
343         * b64enc.c: New.  Based on code from ../sm/base64.c.
344
345 2004-01-30  Marcus Brinkmann  <marcus@g10code.de>
346
347         * Makefile.am (libcommon_a_SOURCES): Add xasprintf.c.
348         * miscellaneous.c (xasprintf): Moved to ...
349         * xasprintf (xasprintf): ... here.  New file.
350         This allows to use xasprintf without sucking in gpg-error.
351
352 2004-01-27  Werner Koch  <wk@gnupg.org>
353
354         * sexp-parse.h: New; moved from../agent.
355
356         * util.h (xtoi_4): New.
357
358 2003-12-23  Werner Koch  <wk@gnupg.org>
359
360         * maperror.c (map_assuan_err): Prepared for a new error code.
361
362 2003-12-17  Werner Koch  <wk@gnupg.org>
363
364         * gettime.c (asctimestamp): Add a note on a non-avoidable gcc warning.
365
366         * util.h [!HAVE_VASPRINTF]: Add printf format attribute to the
367         replacement function.
368
369         * miscellaneous.c (xasprintf): New.
370
371 2003-11-14  Werner Koch  <wk@gnupg.org>
372
373         * mkdtemp.c (mkdtemp): Use gcry_create_nonce.
374
375         * cryptmiss.c: Removed.
376
377 2003-11-13  Werner Koch  <wk@gnupg.org>
378
379         * util.h (vasprintf): Also fixed the prototype.
380
381         * vasprintf.c (vasprintf): ARGS should not be a pointer.  Fixed
382         segv on Solaris.  Reported by Andrew J. Schorr.
383
384 2003-11-12  Werner Koch  <wk@gnupg.org>
385
386         * maperror.c (map_ksba_err, map_gcry_err, map_kbx_err): Removed.
387
388 2003-10-31  Werner Koch  <wk@gnupg.org>
389
390         * util.h (gnupg_isotime_t): New.
391         (gnupg_copy_time): New.
392
393         * gettime.c (gnupg_get_isotime): New.
394
395 2003-09-23  Werner Koch  <wk@gnupg.org>
396
397         * iobuf.c (check_special_filename): Replaced is isdigit by digitp
398         to avoid passing negative values and potential locale problems.
399         Problem noted by Christian Biere.
400
401         * util.h (ascii_isspace): New.
402
403 2003-09-18  Werner Koch  <wk@gnupg.org>
404
405         * ttyio.c (tty_fprintf): New.
406         (tty_print_string, tty_print_utf8_string2)
407         (tty_print_utf8_string): Made P argument const byte*.
408
409 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
410
411         * maperror.c (map_ksba_err): Map -1.  Use gpg_err_make to set
412         the error source.
413
414 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
415
416         * dynload.h. New. W32 wrapper around the dynload mechanism.
417         
418 2003-07-15  Werner Koch  <wk@gnupg.org>
419
420         * simple-pwquery.c, simple-pwquery.h:  New; moved from ../agent.  
421         * Makefile.am (libsimple_pwquery_a_LIBADD): New.
422
423 2003-06-25  Werner Koch  <wk@gnupg.org>
424
425         * maperror.c (map_to_assuan_status): Directly map 0 to 0.
426
427 2003-06-17  Werner Koch  <wk@gnupg.org>
428
429         * gettime.c (scan_isodatestr,add_days_to_timestamp,strtimevalue)
430         (strtimestamp,asctimestamp): New.  Code taken from gnupg 1.3.2
431         mischelp.c.
432
433         * yesno.c: New.  Code taken from gnupg 1.3.2 mischelp.c
434
435         * miscellaneous.c: New.
436
437         * util.h: Include utf8conf.h
438
439 2003-06-16  Werner Koch  <wk@gnupg.org>
440
441         * gettime.c (make_timestamp): New.
442
443         * ttyio.c: New. Taken from gnupg 1.2.
444         * ttyio.h: Move from ../include.
445
446 2003-06-13  Werner Koch  <wk@gnupg.org>
447
448         * util.h (seterr): Removed macro.
449         (xmalloc_secure,xcalloc_secure): New.
450
451 2003-06-11  Werner Koch  <wk@gnupg.org>
452
453         * iobuf.c (iobuf_writebyte,iobuf_write): Return error code from
454         iobuf_flush.
455         (iobuf_writestr): Ditto.
456
457 2003-06-10  Werner Koch  <wk@gnupg.org>
458
459         * iobuf.c, iobuf.h: New. Taken from current gnupg 1.3 CVS.  Run
460         indent on it and adjusted error handling to libgpg-error style.
461         Replaced IOBUF by iobuf_t. Renamed malloc functions.
462
463 2003-06-04  Werner Koch  <wk@gnupg.org>
464
465         * errors.h: Removed all error codes.  We keep the status codes for
466         now.
467         * Makefile.am: Do not create errors.c anymore; remove it from the
468         sources.
469
470         * maperror.c: Don't include error.h.  Change all error codes to
471         libgpg-error style.
472         (map_assuan_err): Changed to new Assuan error code convention.
473         (map_to_assuan_status): Likewise.
474         (map_gcry_err,map_kbx_err): Not needed.  For now dummy functions.
475
476         * membuf.c, membuf.h: New.  Code taken from ../sm/call-agent.h.
477         * Makefile.am: Added above.
478
479 2003-04-29  Werner Koch  <wk@gnupg.org>
480
481         * util.h (fopencokokie): Removed prototype and struct.
482
483         * fopencookie.c: Removed.
484
485         * maperror.c: Use system assuan.h
486
487 2002-10-31  Neal H. Walfield  <neal@g10code.de>
488
489         * isascii.c: New file.
490         * putc_unlocked.c: Likewise.
491
492 2002-10-28  Neal H. Walfield  <neal@g10code.de>
493
494         * signal.c (caught_fatal_sig): Remove superfluous zero
495         initializer.
496         (caught_sigusr1): Likewise.
497
498 2002-09-04  Neal H. Walfield  <neal@g10code.de>
499
500         * vasprintf.c (vasprintf) [va_copy]: Use va_copy.
501         [!va_copy && __va_copy]: Use __va_copy.
502         [!va_copy && !__va_copy]: Only now fall back to using memcpy.
503
504 2002-08-21  Werner Koch  <wk@gnupg.org>
505
506         * errors.h: Added STATUS_IMPORT_PROBLEM.
507
508 2002-08-20  Werner Koch  <wk@gnupg.org>
509
510         * vasprintf.c: Hack to handle NULL for %s.
511
512 2002-08-09  Werner Koch  <wk@gnupg.org>
513
514         * signal.c: New. Taken from GnuPG 1.1.91.
515
516 2002-07-23  Werner Koch  <wk@gnupg.org>
517
518         * util.h (_IO_cookie_io_functions_t): Fixed typo.  Noted by
519         Richard Lefebvre.
520
521 2002-07-22  Werner Koch  <wk@gnupg.org>
522
523         * fseeko.c, ftello.c: New.
524
525 2002-06-28  Werner Koch  <wk@gnupg.org>
526
527         * maperror.c (map_to_assuan_status): Map more errorcodes to Bad
528         Certificate.
529
530 2002-06-26  Werner Koch  <wk@gnupg.org>
531
532         * maperror.c (map_to_assuan_status): Map EOF to No_Data_Available.
533
534 2002-06-10  Werner Koch  <wk@gnupg.org>
535
536         * errors.h (gnupg_error_token): Add new prototype.
537         (STATUS_ERROR): New.
538
539         * mkerrtok: New.
540         * Makefile.am: Use it to create the new error token function.
541
542 2002-06-04  Werner Koch  <wk@gnupg.org>
543
544         * maperror.c (map_to_assuan_status): Map Bad_CA_Certificate.
545
546 2002-05-23  Werner Koch  <wk@gnupg.org>
547
548         * no-pth.c, Makefile.am: Removed.
549
550 2002-05-22  Werner Koch  <wk@gnupg.org>
551
552         * mkdtemp.c: Replaced byte by unsigned char because it is no longer
553         defined in gcrypt.h.
554
555 2002-05-21  Werner Koch  <wk@gnupg.org>
556
557         * maperror.c (map_gcry_err): Add libgcrypt's new S-expression errors.
558         (map_ksba_err): Add a few mappings.
559
560 2002-05-14  Werner Koch  <wk@gnupg.org>
561
562         * gettime.c: New.
563
564 2002-05-03  Werner Koch  <wk@gnupg.org>
565
566         * errors.h: Added STARUS_EXPSIG and STATUS_EXPKEYSIG.
567
568 2002-04-15  Werner Koch  <wk@gnupg.org>
569
570         * cryptmiss.c: New.
571
572 2002-02-14  Werner Koch  <wk@gnupg.org>
573
574         * maperror.c: Add more assuan<->gnupg mappings.
575
576 2002-02-12  Werner Koch  <wk@gnupg.org>
577
578         * fopencookie.c: Dummy function.
579
580         * vasprintf.c: New.  Taken from binutils-2.9.1 and dropped all non
581         ANSI-C stuff.  Merged with asprintf version.
582
583         * no-pth.c: New.
584
585 2002-01-23  Werner Koch  <wk@gnupg.org>
586
587         * mkdtemp.c: Copied from gnupg-1.0.6c and changed to use libgcrypt.
588
589 2002-01-19  Werner Koch  <wk@gnupg.org>
590
591         * sysutils.c: New.  This is the misc.c file from gnupg 1.0.6 with
592         the OpenPGP stuff removed.
593         * sysutils.h: New.
594         
595 2002-01-15  Werner Koch  <wk@gnupg.org>
596
597         * maperror.c: Add mapping for Not_Trusted. 
598
599 2002-01-11  Werner Koch  <wk@gnupg.org>
600
601         * maperror.c (map_assuan_err): Codes for CRL
602
603 2002-01-08  Werner Koch  <wk@gnupg.org>
604
605         * util.h (spacep): New.
606
607 2002-01-02  Werner Koch  <wk@gnupg.org>
608
609         * maperror.c (map_to_assuan_status): New.  Merged from ../agent
610         and ../sm.
611
612 2001-12-20  Werner Koch  <wk@gnupg.org>
613
614         * maperror.c (map_gcry_err): Add some mappings.
615
616 2001-12-18  Werner Koch  <wk@gnupg.org>
617
618         * Makefile.am (AM_CPPFLAGS): Include flags for gcrypt and ksba
619
620 2001-12-14  Werner Koch  <wk@gnupg.org>
621
622         * util.h (digitp, hexdigitp): New ctype like macros.
623         (atoi_1,atoi_2,atoi_4,xtoi_1,xtoi_2): New.
624         
625         
626  Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
627
628  This file is free software; as a special exception the author gives
629  unlimited permission to copy and/or distribute it, with or without
630  modifications, as long as this notice is preserved.
631
632  This file is distributed in the hope that it will be useful, but
633  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
634  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
635                 
636