Merge branch 'master' into keyserver-via-dirmngr
[gnupg.git] / common / ChangeLog
1 2011-01-20  Werner Koch  <wk@g10code.com>
2
3         * util.h (struct b64state): Add field LASTERR.
4         * b64enc.c (enc_start, b64enc_write, b64enc_finish): Handle
5         LASTERR.  This is to make sure that we don't leak strduped data.
6         * b64dec.c (b64dec_start, b64dec_proc, b64dec_finish): Ditto.
7
8         * http.c (escape_data): New.
9         (insert_escapes): Implement using escape_data.
10         (http_escape_data): New.
11
12 2011-01-19  Werner Koch  <wk@g10code.com>
13
14         * homedir.c (gnupg_module_name): Use NAME_OF_INSTALLED_GPG instead
15         of "gpg2".
16
17 2011-01-18  Werner Koch  <wk@g10code.com>
18
19         * iobuf.c (file_es_filter_ctx_t): New.
20         (file_es_filter): New.
21         (iobuf_esopen): New.
22
23         * membuf.c (clear_membuf, peek_membuf): New.
24
25         * util.h (GPG_ERR_NO_KEYSERVER): New.
26
27         * keyserver.h (keyserver_spec): Move from ../g10/options.h to here.
28
29         * http.c (do_parse_uri): Add arg NO_SCHEME_CHECK.  Change all
30         callers.  Support HKP and HKPS.
31         (_http_parse_uri): Do proper error management.
32         * http.h (parsed_uri_s): Add field IS_HTTP.
33         (http_parse_uri): Support NO_SCHEME_CHECK arg.
34
35         * estream.c (es_func_mem_write): Fix computation of NEWSIZE.
36
37 2011-01-10  Werner Koch  <wk@g10code.com>
38
39         * session-env.c (update_var): Fix same value detection.  Fixes
40         bug#1311.
41
42 2010-12-17  Werner Koch  <wk@g10code.com>
43
44         * asshelp.c (lock_spawning): Add arg VERBOSE.  Improve timeout
45         management.  Make callers pass a value for VERBOSE.
46         (lock_agent_spawning, unlock_agent_spawning): Remove.  Change
47         callers to use lock_spawning and unlock_spawning.
48
49 2010-12-17  Marcus Brinkmann  <mb@g10code.com>
50
51         * homedir.c (gnupg_cachedir): Create /temp subdirectories.
52
53 2010-12-02  Werner Koch  <wk@g10code.com>
54
55         * miscellaneous.c (gnupg_cipher_algo_name): New.  Replace all
56         users of gcry_cipher_algo_name by this one.
57
58         * logging.c (fun_cookie_s) [W32CE]: Add field USE_WRITEFILE.
59         (fun_writer) [W32CE]: Make use of it.
60         (set_file_fd) [W32CE]: Implement special filename "GPG2:".
61
62 2010-11-25  Werner Koch  <wk@g10code.com>
63
64         * asshelp.c (start_new_gpg_agent): Change style of startup info.
65         (start_new_dirmngr): Ditto.
66
67 2010-11-23  Werner Koch  <wk@g10code.com>
68
69         * asshelp.c (SECS_TO_WAIT_FOR_AGENT, SECS_TO_WAIT_FOR_DIRMNGR):
70         Use these constants.  For W32CE increase them to 30 seconds.
71         (start_new_gpg_agent): Print time to startup agent.
72         (start_new_dirmngr): Ditto.
73
74 2010-11-04  Werner Koch  <wk@g10code.com>
75
76         * logging.c (do_logv) [W32]: Don't set a default log stream if the
77         registry entry is empty.
78
79 2010-10-27  Werner Koch  <wk@g10code.com>
80
81         * gettime.c (gnupg_get_isotime): Compare to (time_t)-1.
82         (epoch2isotime): Ditto.
83         (IS_INVALID_TIME_T): New.
84         (asctimestamp): Use new macro.
85         (strtimestamp, isotimestamp): Ditto.  Use snprintf.
86
87 2010-10-25  Werner Koch  <wk@g10code.com>
88
89         * logging.c (do_log): Rename to log_log and make global.
90
91 2010-10-20  Werner Koch  <wk@g10code.com>
92
93         * i18n.c (i18n_init) [USE_SIMPLE_GETTEXT]: Call textdomain.
94
95 2010-10-14  Werner Koch  <wk@g10code.com>
96
97         * asshelp.c (start_new_gpg_agent): Print a notice once the agent
98         has been started.
99         (start_new_dirmngr): Likewise.
100
101 2010-10-13  Werner Koch  <wk@g10code.com>
102
103         * miscellaneous.c (parse_version_number, parse_version_string)
104         (gnupg_compare_version): New.
105
106 2010-10-04  Werner Koch  <wk@g10code.com>
107
108         * gettime.c (asctimestamp) [W32CE]: Do not print the timezone.
109
110 2010-09-30  Werner Koch  <wk@g10code.com>
111
112         * util.h (GPG_ERR_FULLY_CANCELED): Add replacement.
113
114 2010-09-17  Werner Koch  <wk@g10code.com>
115
116         * http.c (INADDR_NONE): Provide fallback.
117         * logging.c (INADDR_NONE): Ditto.
118
119 2010-09-16  Werner Koch  <wk@g10code.com>
120
121         * util.h: Add GPG_ERR_MISSING_ISSUER_CERT.
122         * status.c (get_inv_recpsgnr_code): Ditto.
123
124 2010-09-13  Werner Koch  <wk@g10code.com>
125
126         * homedir.c (gnupg_bindir) [W32CE]: Change to bin/.
127         (gnupg_libexecdir) [W32]: Call gnupg_bindir.
128         (gnupg_libdir, gnupg_datadir, gnupg_localedir) [W32]: Simplify by
129         using xstrconcat.
130         (gnupg_module_name): Ditto.
131         (w32_rootdir): Strip a trailing "bin".
132
133 2010-09-02  Werner Koch  <wk@g10code.com>
134
135         * util.h (GPG_ERR_NOT_INITIALIZED): Define if not defined.
136
137 2010-09-01  Marcus Brinkmann  <marcus@g10code.de>
138
139         * estream.c (_es_set_std_fd): Disable debug output.
140
141 2010-08-26  Werner Koch  <wk@g10code.com>
142
143         * estream.c (es_convert_mode): Rename to parse_mode.
144         (parse_mode): Add arg R_CMODE and parse key value pairs.  Use Use
145         664 as the default mode.  Change callers.
146         (ES_DEFAULT_OPEN_MODE): Remove.
147         (es_fopen, do_fpopen, do_w32open, es_freopen): Support a creation
148         mode.
149         (es_func_file_create): Rename to func_file_create and add arg CMODE.
150         (es_func_fd_create): Rename to func_fd_create.
151         (es_func_fp_create): Rename to func_fp_create.
152         (es_list_add): Rename to do_list_add.
153         (es_list_remove): Rename to do_list_remove.
154         (es_list_iterate): Rename to do_list_iterate.
155         (es_pth_read): Rename to do_pth_read.
156         (es_deinit): Rename to do_deinit.
157         (es_init_do): Rename to do_init.
158         (es_func_mem_create): Rename to func_mem_create.
159
160 2010-08-23  Werner Koch  <wk@g10code.com>
161
162         * exechelp-w32ce.c: Rewrite all spawn stuff.
163
164         * exechelp-w32.c (close_all_fds) [W32]: Make it a dummy function.
165
166         * estream.c (es_onclose): New.
167         (notify_list_t, onclose): New.
168         (struct estream_internal): Add field ONCLOSE.
169         (es_initialize, es_deinitialize): Manage new field.
170         (do_close): Call onclose notify functions.
171
172 2010-08-20  Werner Koch  <wk@g10code.com>
173
174         * exechelp-w32.c (create_inheritable_pipe): Change arg to HANDLE.
175
176         * estream.h (es_sysopen_t): New.
177         * estream.c (es_func_w32_create, es_func_w32_read)
178         (es_func_w32_write, es_func_w32_seek, es_func_w32_destroy)
179         (estream_functions_w32, estream_cookie_fd): New.  Only for W32.
180         (es_sysopen, es_sysopen_nc): New.
181         (do_w32open, do_sysopen): New.
182         (es_syshd, es_syshd_unlocked): New.
183         (struct estream_internal): Replace filed FD by SYSHD.
184         (es_initialize): Clear SYSHD_VALID.
185         (map_w32_to_errno): New.
186         (es_get_fd): Remove.
187         (es_fileno_unlocked): Re-implement using es_syshd.
188         (es_initialize, es_create): Replace arg FD by SYSHD.
189         (es_fopen, es_mopen, es_fopenmem, do_fdopen, do_fpopen)
190         (es_tmpfile): Use SYSHD instead of FD.
191         (es_destroy): Rename to do_close.
192
193 2010-08-19  Werner Koch  <wk@g10code.com>
194
195         * exechelp-posix.c (create_pipe_and_estream): New.
196         (gnupg_spawn_process): Rework this function and its calling
197         convention; it is not used anyway.
198         * exechelp-w32.c (gnupg_spawn_process): Ditto.
199
200 2010-08-18  Werner Koch  <wk@g10code.com>
201
202         * logging.c (writen): Add arg IS_SOCKET.
203         (fun_writer): Pass the is_socket flag.
204         (do_logv) [W32]: Allow for a default log stream
205
206         * estream.c (struct estream_internal): Remove obsolete fields
207         PRINT_FP, PRINT_ERRNO, PRINT_ERR and all remaining code cruft.
208
209 2010-08-16  Werner Koch  <wk@g10code.com>
210
211         * estream.c (es_printf_unlocked, es_printf): New.
212
213         * asshelp.c (lock_agent_t): Rename to lock_spawn_t.
214         (lock_agent_spawning, unlock_agent_spawning): Factor code out to ...
215         (lock_spawning, unlock_spawning): .. new.
216         (start_new_gpg_agent): Make more use of ERRSOURCE.
217         (start_new_dirmngr): New.
218
219 2010-08-13  Werner Koch  <wk@g10code.com>
220
221         * Makefile.am (audit-events.h, status-codes.h): Fix srcdir problem
222         amd depend on Makefile.am instead of Makefile.
223
224 2010-08-12  Werner Koch  <wk@g10code.com>
225
226         * sysutils.c (gnupg_remove) [W32CE]: Fix returned error.
227
228 2010-08-09  Werner Koch  <wk@g10code.com>
229
230         * logging.c (WITH_IPV6): New macro.
231         (parse_portno): New.  From libassuan.
232         (fun_writer): Support TCP logging on all platforms.
233         (sock_close): New.
234
235 2010-08-06  Werner Koch  <wk@g10code.com>
236
237         * homedir.c (dirmngr_socket_name) [W32CE]: Base on default homedir.
238         (gnupg_cachedir) [W32CE]: Drop drive letter.
239
240         * http.c (http_open_document): Rename to _http_open_document and
241         add arg ERRSOURCE.  Pass ERRSOURCE to all called funcs.
242         (http_wait_response, http_open, http_parse_uri): Likewise.
243         (do_parse_uri, parse_response, store_header): Change to return an
244         gpg_err_code_t.  Change callers.
245         (send_request): Add arg ERRSOURCE.  Change callers.
246         * http.h (http_open_document, http_wait_response, http_open)
247         (http_parse_uri): Define as macro.
248
249 2010-08-05  Werner Koch  <wk@g10code.com>
250
251         * estream.h (es_asprintf, es_vasprintf): Add lost prototyps.
252
253         * http.c: Require estream and make HTTP_USE_ESTREAM obsolete.  It
254         make the code unreadable and we require estream anyway for GnuPG.
255         (http_wait_response): Get use of cookies right.
256         (send_request): s/xtryasprintf/es_asprintf/ to allow standalone
257         use of the code.
258         (insert_escapes, connect_server): s/sprintf/snprintf/.
259         (parse_response): s/my_read_line/es_read_line/.
260         (my_read_line): Remove.
261         (write_server): Use pth_write.
262
263 2010-07-26  Werner Koch  <wk@g10code.com>
264
265         * estream.c (es_func_fp_write) [W32]: Write smaller chunks.
266
267 2010-07-25  Werner Koch  <wk@g10code.com>
268
269         * argparse.c (initialize): Use ARGPARSE_PRINT_WARNING constant.
270
271 2010-07-24  Werner Koch  <wk@g10code.com>
272
273         * estream.c (es_set_binary): New.
274
275 2010-07-19  Werner Koch  <wk@g10code.com>
276
277         * utf8conv.c (utf8_to_wchar): s/malloc/jnlib_malloc/.
278
279 2010-07-16  Werner Koch  <wk@g10code.com>
280
281         * http.h (HTTP_FLAG_IGNORE_CL): Add flag .
282         * http.c (WITHOUT_GNU_PTH): Test macro for Pth support.
283         (http_parse_uri): s/xcalloc/xtrycalloc/.
284         (send_request): Replace of discrete allocation and sprintf by
285         xtryasprintf.
286         (http_wait_response): Replace HTTP_FLAG_NO_SHUTDOWN by
287         HTTP_FLAG_SHUTDOWN to change the default to no shutdown.
288         (cookie_read) [HAVE_PTH]: Use pth_read.
289         (longcounter_t): New.
290         (struct cookie_s): Add support for content length.  Turn flag
291         fields into bit types.
292         (parse_response): Parse content length header.
293         (cookie_read): Take care of the content length.
294
295 2010-07-08  Werner Koch  <wk@g10code.com>
296
297         * estream.c (estream_functions_file): Remove and replace by
298         identical estream_functions_fd.
299
300 2010-07-06  Werner Koch  <wk@g10code.com>
301
302         * util.h (b64state): Add field STREAM.
303         * b64enc.c (b64enc_start): Factor code out to ..
304         (enc_start): new.
305         (b64enc_start_es, my_fputs): New.
306         (b64enc_write, b64enc_finish): Support estream.
307
308 2010-06-24  Werner Koch  <wk@g10code.com>
309
310         * asshelp.c (lock_agent_spawning) [W32]: Use CreateMutexW.
311         (start_new_gpg_agent): Use HANG option for gnupg_wait_progress.
312         Fixes regression from 2010-06-09.
313
314 2010-06-21  Werner Koch  <wk@g10code.com>
315
316         * util.h (xfree_fnc): New.
317
318 2010-06-18  Werner Koch  <wk@g10code.com>
319
320         * util.h (GPG_ERR_MISSING_KEY) [!GPG_ERR_MISSING_KEY]: New.
321
322         * sexputil.c (make_canon_sexp_pad): Add arg SECURE.
323
324 2010-06-17  Werner Koch  <wk@g10code.com>
325
326         * sexputil.c (make_canon_sexp_pad): New.
327
328 2010-06-14  Werner Koch  <wk@g10code.com>
329
330         * membuf.c (put_membuf): Add shortcut for !LEN.
331
332 2010-06-11  Marcus Brinkmann  <marcus@g10code.de>
333
334         * sysutils.c (translate_sys2libc_fd): Revert last change.
335         (translate_sys2libc_fd_int): Revert last change.
336
337 2010-06-10  Marcus Brinkmann  <marcus@g10code.de>
338
339         * sysutils.c (translate_sys2libc_fd) [HAVE_W32CE_SYSTEM]:
340         Implement.
341         (translate_sys2libc_fd_int) [HAVE_W32CE_SYSTEM]: Don't call
342         translate_sys2libc_fd.
343
344         * estream.c (_es_get_std_stream): Fix cut&paste bug.
345
346 2010-06-09  Werner Koch  <wk@g10code.com>
347
348         * exechelp-posix.c, exechelp-w32.c
349         * exechelp-w32ce.c (gnupg_wait_process): Add new arg HANG.  Change
350         all callers.
351         (gnupg_release_process): New.  Use it after all calls to
352         gnupg_wait_process.
353
354         * util.h (GNUPG_MODULE_NAME_DIRMNGR_LDAP): New.
355         * homedir.c (gnupg_cachedir): New.
356         (w32_try_mkdir): New.
357         (dirmngr_socket_name): Change standard socket name.
358         (gnupg_module_name): Support GNUPG_MODULE_NAME_DIRMNGR_LDAP.
359
360         * logging.c (log_set_get_tid_callback): Replace by ...
361         (log_set_pid_suffix_cb): .. new.
362         (do_logv): Change accordingly.
363
364 2010-06-08  Marcus Brinkmann  <marcus@g10code.de>
365
366         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
367         (t_common_ldadd): Add $(LIBASSUAN_LIBS).
368         * sysutils.c: Include <assuan.h>.
369         (translate_sys2libc_fd_int): Cast to silence gcc warning.
370         * iobuf.c: Include <assuan.h>
371         (translate_file_handle): Fix syntax error.
372
373 2010-06-08  Werner Koch  <wk@g10code.com>
374
375         * iobuf.c (translate_file_handle) [W32CE]: Handle rendezvous ids.
376
377 2010-06-07  Werner Koch  <wk@g10code.com>
378
379         * sysutils.c [W32CE]: Finish pipe creation.
380
381         * estream.c (es_fname_get, es_fname_set): New.
382         (fname_set_internal): New.
383         (struct estream_internal): Add fields printable_fname and
384         printable_fname_inuse.
385         (_es_get_std_stream): Set stream name.
386         (es_fopen, es_freopen, es_deinitialize): Set fname.
387
388         * exechelp-posix.c (gnupg_spawn_process): Allow passing INFILE or
389         OUTFILE as NULL.
390         * exechelp-w32.c (gnupg_spawn_process): Ditto.
391         * exechelp-w32ce.c (gnupg_spawn_process): Return an error for
392         INFILE or OUTFILE passed as NULL.
393
394 2010-06-01  Werner Koch  <wk@g10code.com>
395
396         * logging.c (log_get_stream): Make sture a log stream is available.
397
398 2010-05-30  Werner Koch  <wk@g10code.com>
399
400         * init.c (writestring_via_estream): New.
401         (init_common_subsystems): Register with argparse.
402
403         * argparse.c (argparse_register_outfnc): New.
404         (writestrings, flushstrings): New.  Use them instead of stdout or
405         stderr based functions.
406
407 2010-05-04  Werner Koch  <wk@g10code.com>
408
409         * estream.c (_es_get_std_stream): Re-use registered standard fds.
410         (IS_INVALID_FD, ESTREAM_SYS_YIELD): New.
411         (es_func_fd_read, es_func_fd_write, es_func_fd_seek)
412         (es_func_fd_destroy): Implement a dummy stream.
413
414         * exechelp-w32ce.c (build_w32_commandline): Add args FD0_ISNULL
415         and FD1_ISNULL.  Remove arg PGMNAME.  Change callers.
416         (gnupg_spawn_process_detached): Implement.
417         (gnupg_spawn_process_fd): Implement one special case for now.
418
419 2010-05-03  Werner Koch  <wk@g10code.com>
420
421         * asshelp.c (lock_agent_spawning, unlock_agent_spawning): New.
422         (start_new_gpg_agent): Test for configured standard socket and
423         try to fire up the agent in this case.
424
425         * exechelp-posix.c (gnupg_wait_process): Do not log a message if
426         EXITCODE is given.
427         (gnupg_spawn_process_detached): Do not reuse PID for the second fork.
428
429 2010-04-26  Werner Koch  <wk@g10code.com>
430
431         * utf8conv.c (load_libiconv) [W32CE]: No libiconv warning
432
433         * init.c (init_common_subsystems) [W32CE]: Register the sleep
434         function before es_init.
435
436 2010-04-20  Werner Koch  <wk@g10code.com>
437
438         * estream.c (es_deinit): New.
439         (es_init_do): Install atexit handler to flush all streams.
440
441         * Makefile.am (common_sources): Add gettime.h.
442
443 2010-04-20  Marcus Brinkmann  <marcus@g10code.de>
444
445         * logging.c (do_log_ignore_arg): New helper function.
446         (log_string): Use it to remove ugly volatile hack that causes gcc
447         warning.
448         (log_flush): Likewise.
449         * sysutils.c (gnupg_unsetenv) [!HAVE_W32CE_SYSTEM]: Return something.
450         (gnupg_setenv) [!HAVE_W32CE_SYSTEM]: Likewise.
451         * pka.c (get_pka_info): Solve strict aliasing rule violation.
452         * t-exechelp.c (test_close_all_fds): Use dummy variables to
453         silence gcc warning.
454
455 2010-04-15  Werner Koch  <wk@g10code.com>
456
457         * util.h: Factor time related functions out to ...
458         * gettime.h: New.
459         (gnupg_copy_time): Move to ...
460         * gettime.c (gnupg_copy_time): New.
461
462         * sysutils.c (gnupg_setenv) [!W32CE]: Add missing return.
463         (gnupg_unsetenv) [!W32CE]: Add missing return.
464
465 2010-04-14  Werner Koch  <wk@g10code.com>
466
467         * Makefile.am (noinst_LIBRARIES) [W32CE]: Exclude libsimple-pwquery.
468
469         * w32help.h (umask) [W32CE]: New.
470
471         * sysutils.c (_gnupg_isatty): New.
472         * util.h (gnupg_isatty): New.
473
474         * asshelp.c (setup_libassuan_logging): Read ASSUAN_DEBUG envvar.
475         (my_libassuan_log_handler): Use it.
476         * sysutils.c (_gnupg_getenv): Implement ASSUAN_DEBUG.
477
478 2010-04-08  Werner Koch  <wk@g10code.com>
479
480         * w32help.h (_setmode, setmode) [W32CE]: Provide prototype and
481         macro.
482
483 2010-04-07  Werner Koch  <wk@g10code.com>
484
485         * mischelp.c (timegm): Replace unsetenv/putenv by gnupg_unsetenv.
486
487         * sysutils.c: Include setenv.h.
488         (gnupg_setenv, gnupg_unsetenv): New.
489
490
491 2010-04-06  Werner Koch  <wk@g10code.com>
492
493         * sysutils.c (gnupg_mkdir): New.
494
495 2010-03-29  Werner Koch  <wk@g10code.com>
496
497         * init.c (sleep_on_exit): Change to 400ms.
498
499 2010-03-25  Werner Koch  <wk@g10code.com>
500
501         * init.c (sleep_on_exit) [W32CE]: New.
502         (init_common_subsystems): Call it.
503
504 2010-03-24  Werner Koch  <wk@g10code.com>
505
506         * stringhelp.c (change_slashes, compare_filenames): Replace
507         HAVE_DRIVE_LETTERS by HAVE_DOSISH_SYSTEM.
508         (make_basename, make_dirname): Detect backslashes and drive
509         letters separately.
510
511         * dotlock.c (make_dotlock, create_dotlock, release_dotlock): Use
512         LockFileEx and UnlockFileEx to support W32CE.
513
514         * ttyio.c (USE_W32_CONSOLE): Replace all _WIN32 by this.
515         (init_ttyfp) [W32CE]: Use stderr.
516
517         * iobuf.c (FD_FOR_STDIN, FD_FOR_STDOUT) [W32CE]: Use estream.
518         (translate_file_handle) [W32CE]: Remove handle translation.
519
520 2010-03-23  Werner Koch  <wk@g10code.com>
521
522         * sysutils.c (gnupg_remove): New.
523
524 2010-03-22  Werner Koch  <wk@g10code.com>
525
526         * exechelp-w32ce.c (build_w32_commandline): Replace by code from
527         libassuan.
528         (create_inheritable_pipe): Use _assuan_w32ce_prepare_pipe.
529         (build_w32_commandline_copy, do_create_pipe): Remove.
530
531         * exechelp-posix.c (gnupg_spawn_process): Change to use estream
532         also for INFILE and STATUSFILE.
533         * exechelp-w32.c (gnupg_spawn_process): Ditto.
534
535 2010-03-22  Werner Koch  <wk@g10code.com>
536
537         * exechelp.c: Remove after factoring all code out to ...
538         * exechelp-posix.c, exechelp-w32.c, exechelp-w32ce.c:  .. new.
539
540         * exechelp.c (create_inheritable_pipe_r)
541         (create_inheritable_pipe_w): Fold both into ...
542         (create_inheritable_pipe): .. New.  Change callers to use this.
543         (gnupg_create_inbound_pipe, gnupg_create_outbound_pipe): Factor
544         code out to ...
545         (do_create_pipe): .. New.
546
547         * init.c (parse_std_file_handles): Change to use rendezvous ids.
548
549 2010-03-15  Werner Koch  <wk@g10code.com>
550
551         * init.c (init_common_subsystems): Add args ARGCP and
552         ARGVP.  Change all callers to provide them.
553         (parse_std_file_handles): New.
554
555         * t-sysutils.c (rewind) [W32CE]: Provide a replacement.
556
557         * Makefile.am (module_tests) [W32CE]: Don't build t-exechelp for now.
558
559         * sysutils.c (gnupg_allow_set_foregound_window) [W32CE]: Don't
560         call AllowSetForegroundWindow.
561
562         * logging.c (isatty) [W32CE]: New.
563         (fun_writer, set_file_fd): Use estream even for the internal error
564         messages.
565         (log_string, log_flush): Make DUMMY_ARG_PTR static.
566
567 2010-03-15  Werner Koch  <wk@g10code.com>
568
569         * asshelp.c (send_pinentry_environment) [!HAVE_SETLOCALE]: Do not
570         define OLD_LC.
571         * http.c (connect_server) [!USE_DNS_SRV]: Mark SRVTAG unused.
572         * dns-cert.c (get_dns_cert) [!USE_DNS_CERT]: Mark args unused.
573         * pka.c (get_pka_info): Ditto.
574
575         * signal.c (pause_on_sigusr): Remove.  It was used in ancient gpg
576         version with shared memory IPC.  Last caller removed on 2006-04-18.
577         (do_block) [W32]: Mark arg unused.
578
579         * exechelp.c (w32_open_null): Use CreateFileW.
580
581         * init.c (init_common_subsystems): Add args ARGCP and ARGVP.
582         Change all callers to pass them.
583
584         * logging.c (S_IRGRP, S_IROTH, S_IWGRP, S_IWOTH) [W32]: New.
585         (fun_writer, set_file_fd) [W32]: Disable socket code.
586
587         * localename.c: Include gpg-error.h.
588
589         * util.h (GPG_ERR_NOT_ENABLED): Remove this temporary definition.
590
591 2010-03-12  Werner Koch  <wk@g10code.com>
592
593         * status.h (STATUS_ENTER): New.
594
595         * ttyio.c (tty_fprintf): Change to use estream.
596
597         * miscellaneous.c (print_utf8_string): Rename to print_utf8_buffer
598         and change FP arg to an estream.  Change all callers.
599         (print_utf8_string2): Ditto; new name is to print_utf8_buffer2.
600
601 2010-03-11  Werner Koch  <wk@g10code.com>
602
603         * miscellaneous.c (print_string): Remove.
604
605         * estream.c (es_setvbuf): Fix parameter check.
606         (es_set_buffering): Allow a SIZE of 0.
607         * asshelp.c (setup_libassuan_logging, my_libassuan_log_handler): New.
608         * logging.c (do_logv): Add arg IGNORE_ARG_PTR.  Change all callers.
609         (log_string): New.
610         (log_flush): New.
611         (set_file_fd): Simplify by using estreams es_stderr.
612
613         * estream.h (es_stdout, es_stderr, es_stdin): New.
614
615 2010-03-10  Werner Koch  <wk@g10code.com>
616
617         * estream.c (es_func_fp_read, es_func_fp_write, es_func_fp_seek)
618         (es_func_fp_destroy): Allow a NULL FP to implement a dummy stream.
619         (do_fpopen): Ditto.
620         (es_vfprintf_unlocked): New.
621         (es_fprintf_unlocked): Make public.
622         (es_fputs_unlocked): New.
623
624         * logging.h: Replace FILE* by estream_t.
625         * logging.c: Remove USE_FUNWRITER cpp conditional because we now
626         use estream.
627         (my_funopen_hook_ret_t, my_funopen_hook_size_t): Replace by
628         ssize_t.
629         (log_get_stream): Change to return an estream_t.
630         (set_file_fd): Always close the log stream because it can't be
631         assigned to stderr or stdout directly.  Use a dummy estream as
632         last resort log stream.
633         (log_test_fd, log_get_fd): Use es_fileno.
634         (log_get_stream): Assert that we have a log stream.
635         (do_logv): Use estream functions and lock the output.
636
637 2010-03-10  Werner Koch  <wk@g10code.com>
638
639         * util.h: Replace jnlib path part by common.
640         (snprintf): Use the replacement macro on all platforms.
641
642         * Makefile.am (jnlib_sources): New.
643         (libcommon_a_SOURCES, libcommonpth_a_SOURCES): Add jnlib_sources.
644         (jnlib_tests): New.
645         (noinst_PROGRAMS, TESTS): Add jnlib_tests.
646         (t_common_ldadd): Remove libjnlib.a.
647
648         * README.jnlib, ChangeLog.jnlib, libjnlib-config.h, argparse.c
649         * argparse.h, dotlock.c, dotlock.h, dynload.h, logging.c
650         * logging.h, mischelp.c, mischelp.h, stringhelp.c, stringhelp.h
651         * strlist.c, strlist.h, types.h, utf8conv.c, utf8conv.h
652         * w32-afunix.c, w32-afunix.h, w32-reg.c, w32help.h, xmalloc.c
653         * xmalloc.h, t-stringhelp.c, t-support.c, t-support.h
654         * t-timestuff.c, t-w32-reg.c: Move from jnlib to here.
655
656         * init.c: Remove "estream.h".
657         * util.h: Include "estream.h".
658
659         * xasprintf.c, ttyio.c: Remove "estream-printf.h".
660
661 2010-03-08  Werner Koch  <wk@g10code.com>
662
663         * exechelp.c [!HAVE_SIGNAL_H]: Do not include signal.h.
664         (DETACHED_PROCESS, CREATE_NEW_PROCESS_GROUP) [W32CE]: Provide stubs.
665
666         * iobuf.h (iobuf_ioctl_t): New.  Use the new macros instead of the
667         hard wired values.
668         * iobuf.c (iobuf_append): Remove.
669         (iobuf_fdopen): Factor code out to ...
670         (do_iobuf_fdopen): ... new.
671         (iobuf_fdopen_nc): New.
672         (iobuf_open_fd_or_name): Implement using iobuf_fdopen_nc.
673
674         * iobuf.c (INVALID_FD): Replace by GNUPG_INVALID_FD.
675         (fp_or_fd_t): Replace by gnupg_fd_t.
676         (my_fileno): Replace by the FD2INT macro.
677         (FILEP_OR_FD_FOR_STDIN, FILEP_OR_FD_FOR_STDOUT): Rename to
678         FD_FOR_STDIN, FD_FOR_STDOUT.
679         (file_filter): Make full use of FD_FOR_STDIN.
680         (USE_SETMODE): Remove.  Not needed without stdio.
681         (my_fopen_ro, my_fopen): Replace unneeded macros.
682
683         * iobuf.c [FILE_FILTER_USES_STDIO]: Remove all code.  It has not
684         been used for a long time.
685
686         * exechelp.h: Include "estream.h".
687
688         * exechelp.c (gnupg_spawn_process): Change OUTFILE to an estream_t.
689
690 2010-03-02  Werner Koch  <wk@g10code.com>
691
692         * estream.c, estream.h, estream-printf.c, estream-printf.h: Update
693         from libestream.
694
695 2010-03-01  Werner Koch  <wk@g10code.com>
696
697         * signal.c [!HAVE_SIGNAL_H]: Don't include signal.h.
698
699         * iobuf.c (direct_open) [W32CE]: Make filename to wchar_t.
700         (iobuf_cancel) [W32CE]: Use DeleteFile.
701
702         * gettime.c (dump_isotime): Use "%s" to print "none".
703
704         * homedir.c (standard_homedir) [W32CE]: Use wchar_t to create the
705         directory.
706         (w32_rootdir) [W32CE]: Likewise.
707
708         * sysutils.c (translate_sys2libc_fd) [W32CE]: Add support.
709         (gnupg_tmpfile) [W32CE]: Ditto.
710         (_gnupg_getenv) [W32CE]: New.
711
712         * util.h (getpid, getenv) [W32CE]: New.
713
714         * i18n.c (i18n_switchto_utf8)
715         (i18n_switchback) [USE_SIMPLE_GETTEXT]: Use new function from
716         libgpg-error which supports proper restoring.
717
718         * sysutils.c (get_session_marker): Simplified by using gcrypt.
719
720 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
721
722         * Makefile.am (audit-events.h, status.h) [!MAINTAINER_MODE]: No
723         longer include these rules if not in maintainer mode.
724
725 2009-12-08  Werner Koch  <wk@g10code.com>
726
727         * userids.h, userids.c: New.
728         (classify_user_id): Merged from similar fucntions in sm/ and g10/.
729
730         * dns-cert.c (get_dns_cert): Add support for ADNS.
731
732 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
733
734         * asshelp.c (start_new_gpg_agent): Convert posix FD to assuan FD.
735
736         * asshelp.c (start_new_gpg_agent) [HAVE_W32_SYSTEM]: Add missing
737         argument in assuan_socket_connect invocation.
738         * iobuf.c (iobuf_open_fd_or_name): Fix type of FD in function
739         declaration.
740
741 2009-12-07  Werner Koch  <wk@g10code.com>
742
743         * pka.c (get_pka_info): Add support for ADNS.
744         * src.v (getsrv): Add support for ADNS.
745
746         * srv.c (getsrv): s/xrealloc/xtryrealloc/.
747
748 2009-12-04  Werner Koch  <wk@g10code.com>
749
750         * Makefile.am (audit-events.h, status-codes.h): Create files in
751         the source dir.  Fixes bug#1164.
752
753 2009-12-02  Werner Koch  <wk@g10code.com>
754
755         * audit.c (proc_type_decrypt, proc_type_sign): Implemented.
756         (proc_type_verify): Print hash algo infos.
757         * audit.h (AUDIT_DATA_CIPHER_ALGO, AUDIT_BAD_DATA_CIPHER_ALSO)
758         (AUDIT_NEW_RECP, AUDIT_DECRYPTION_RESULT, AUDIT_RECP_RESULT)
759         (AUDIT_ATTR_HASH_ALGO, AUDIT_SIGNED_BY, AUDIT_SIGNING_DONE):
760
761 2009-11-05  Marcus Brinkmann  <marcus@g10code.de>
762
763         * asshelp.c (start_new_gpg_agent): Update use of
764         assuan_socket_connect and assuan_pipe_connect.
765
766 2009-11-02  Marcus Brinkmann  <marcus@g10code.de>
767
768         * get-passphrase.c (default_inq_cb, membuf_data_cb): Change return
769         type to gpg_error_t.
770
771 2009-10-28  Werner Koch  <wk@g10code.com>
772
773         * status.h (STATUS_MOUNTPOINT): New.
774
775 2009-10-16  Marcus Brinkmann  <marcus@g10code.com>
776
777         * Makefile.am (libcommon_a_CFLAGS): Use LIBASSUAN_CFLAGS instead
778         of LIBASSUAN_PTH_CFLAGS.
779
780 2009-10-13  Werner Koch  <wk@g10code.com>
781
782         * exechelp.c (gnupg_kill_process): New.
783
784 2009-09-29  Werner Koch  <wk@g10code.com>
785
786         * exechelp.c (create_inheritable_pipe): Rename to
787         create_inheritable_pipe_w.
788         (create_inheritable_pipe_r): New.
789         (gnupg_create_outbound_pipe): New.
790
791         * iobuf.h: Include "sysutils.h"
792
793         * iobuf.c (iobuf_open_fd_or_name): New.
794         (iobuf_get_fname_nonnull): New.
795
796 2009-09-23  Marcus Brinkmann  <marcus@g10code.de>
797
798         * asshelp.c (start_new_gpg_agent): Allocate assuan context before
799         starting server.
800
801 2009-09-03  Werner Koch  <wk@g10code.com>
802
803         Update from libestream:
804         * estream-printf.c: Include stdint.h only if HAVE_STDINT_H is
805         defined.
806         * estream-printf.c: Remove all test code.  Use macro DEBUG instead
807         of TEST for debugging.
808         * estream-printf.c (pr_float): Make buffer larger for silly high
809         numbers.
810
811 2009-08-11  David Shaw  <dshaw@jabberwocky.com>
812
813         * ttyio.h, ttyio.c (tty_enable_completion): Some ifdefs around
814         HAVE_LIBREADLINE to allow building when readline isn't available.
815
816 2009-08-06  Werner Koch  <wk@g10code.com>
817
818         * status.h (STATUS_INV_SGNR, STATUS_NO_SGNR): New.
819         * status.c (get_inv_recpsgnr_code): New.
820
821 2009-07-23  David Shaw  <dshaw@jabberwocky.com>
822
823         * srv.c (getsrv): Fix type-punning warning.
824
825 2009-07-23  Werner Koch  <wk@g10code.com>
826
827         * util.h (GPG_ERR_NOT_ENABLED): New.
828         * audit.h (enum): Add AUDIT_CRL_CHECK.
829         * audit.c (proc_type_verify): Show CRL check result.
830
831 2009-07-06  Werner Koch  <wk@g10code.com>
832
833         * get-passphrase.c (struct agentargs): Add SESSION_ENV and remove
834         obsolete args.
835         (gnupg_prepare_get_passphrase): Ditto.
836
837         * session-env.c, session-env.h: New.
838         * t-session-env.c: New.
839         * Makefile.am (common_sources, module_tests): Add them.
840         * asshelp.h: Include "session-env.h"
841         * asshelp.c (send_one_option): Add arg PUTENV.
842         (send_pinentry_environment): Replace most args by SESSION_ENV and
843         rewrite fucntion.
844         (start_new_gpg_agent): Likewise.
845
846         * t-exechelp.c (test_close_all_fds): Remove debug code.
847
848 2009-07-01  Werner Koch  <wk@g10code.com>
849
850         * sexputil.c (get_pk_algo_from_canon_sexp): New.
851
852 2009-06-29  Werner Koch  <wk@g10code.com>
853
854         * estream.c (BUFFER_ROUND_TO_BLOCK): Remove unused macro.
855         (es_func_mem_write): Rewrite reallocation part.
856
857         * estream.c (es_write_sanitized_utf8_buffer): Typo typo fix.
858
859 2009-06-25  Werner Koch  <wk@g10code.com>
860
861         * estream.c (es_write_sanitized_utf8_buffer): Typo fix.
862
863 2009-06-24  Werner Koch  <wk@g10code.com>
864
865         * estream.c (es_read_line): In the malloc error case, set
866         MAX_LENGTH to 0 only if requested.
867         * xreadline.c (read_line): Ditto.
868         * estream.c (es_write_sanitized_utf8_buffer): Pass on error from
869         es_fputs.
870         * sexputil.c (get_rsa_pk_from_canon_sexp): Check for error after
871         the loop.  Reported by Fabian Keil.
872
873 2009-06-22  Werner Koch  <wk@g10code.com>
874
875         * estream.c (es_pth_read, es_pth_write) [W32]: New.
876         (ESTREAM_SYS_READ, ESTREAM_SYS_WRITE) [HAVE_PTH]: Use them.
877
878 2009-06-03  Werner Koch  <wk@g10code.com>
879
880         * estream.c (es_convert_mode): Rewrite and support the "x" flag.
881
882 2009-05-28  David Shaw  <dshaw@jabberwocky.com>
883
884         From 1.4:
885
886         * http.h, http.c (send_request) Pass in a STRLIST for additional
887         headers.  Change all callers.
888
889 2009-05-27  David Shaw  <dshaw@jabberwocky.com>
890
891         From 1.4:
892
893         * http.h, http.c (send_request): Pass in srvtag and make its
894         presence sufficient to turn the feature on.
895         (http_open): From here.
896         (http_document): And here.
897
898         * srv.c (getsrv): Raise maximum packet size to 2048, as PACKETSZ
899         is too small these days.
900
901 2009-05-22  Werner Koch  <wk@g10code.com>
902
903         * ttyio.c (tty_cleanup_after_signal): New.
904
905 2009-05-19  Werner Koch  <wk@g10code.com>
906
907         * simple-pwquery.c (agent_open): Use SUN_LEN
908         (JNLIB_NEED_AFLOCAL): Define and include mischelp.h.
909
910 2009-05-07  Werner Koch  <wk@g10code.com>
911
912         * sexputil.c (get_rsa_pk_from_canon_sexp): New.
913         * t-sexputil.c (test_make_canon_sexp_from_rsa_pk): Extend the test.
914
915 2009-04-28  Werner Koch  <wk@g10code.com>
916
917         * sexputil.c (make_canon_sexp_from_rsa_pk): New.
918         * t-sexputil.c (test_make_canon_sexp_from_rsa_pk): New.
919
920 2009-04-01  Werner Koch  <wk@g10code.com>
921
922         * iobuf.c: Port David's changes from 1.4:
923         (fd_cache_invalidate): Pass return code from close back.
924         (direct_open, iobuf_ioctl): Check that return value.
925         (fd_cache_synchronize): New.
926         (iobuf_ioctl): Add new sub command 4 (fsync).
927
928         * iobuf.c (fd_cache_strcmp): New. Taken from 1.4.
929         (fd_cache_invalidate, fd_cache_close, fd_cache_open):  Use it.
930
931         * exechelp.c (gnupg_spawn_process): Implement new flag bit 6.
932         * sysutils.c (gnupg_allow_set_foregound_window): Allow the use of
933         ASFW_ANY.
934
935         * membuf.c (put_membuf, get_membuf): Wipe memory on out of core.
936
937 2009-03-31  Werner Koch  <wk@g10code.com>
938
939         * percent.c (percent_unescape, percent_plus_unescape): New.
940         (percent_plus_unescape_inplace, percent_unescape_inplace): New.
941         (do_plus_or_plain_unescape, count_unescape, do_unescape): New.
942         (do_unescape_inplace): New.
943         * t-percent.c (test_percent_plus_escape): Test percent_plus_unescape.
944
945         * get-passphrase.c, get-passphrase.h: New.
946         * Makefile.am (without_pth_sources): New.
947
948 2009-03-18  Werner Koch  <wk@g10code.com>
949
950         * exechelp.c: Include sys/resource.h and sys/stat.h.
951         (get_max_open_fds): New.
952         (do_exec): Use it.
953         (get_all_open_fds): New.
954         (close_all_fds): New.
955         (do_exec): Use close_all_fds.
956         * t-exechelp.c: New.
957
958 2009-03-13  David Shaw  <dshaw@jabberwocky.com>
959
960         * http.c (do_parse_uri): Properly handle IPv6 literal addresses as
961         per RFC-2732.  Adapted from patch by Phil Pennock.
962
963 2009-03-12  Werner Koch  <wk@g10code.com>
964
965         * gettime.c: Include i18n.h.
966         (dump_isotime): New.
967
968 2009-03-06  Werner Koch  <wk@g10code.com>
969
970         * sexputil.c (make_canon_sexp): New.
971
972 2009-03-03  Werner Koch  <wk@g10code.com>
973
974         * exechelp.c (do_exec): Make sure that /dev/null connected FDs are
975         not closed.
976
977 2009-01-19  Werner Koch  <wk@g10code.com>
978
979         * audit.c (writeout_li): Translate a few more result strings.
980         Fixes bug#970.
981
982         * convert.c (hex2str): Fix optimization to append a nul character.
983
984 2008-12-05  Werner Koch  <wk@g10code.com>
985
986         * percent.c, t-percent.c: New.
987
988         * exechelp.c (gnupg_spawn_process, gnupg_spawn_process_fd)
989         (gnupg_spawn_process_detached) [W32]: Remove debug output.
990
991 2008-11-20  Werner Koch  <wk@g10code.com>
992
993         * audit.c (writeout_li): Translate OKTEXT.
994
995 2008-11-04  Werner Koch  <wk@g10code.com>
996
997         * i18n.c (i18n_init) [USE_SIMPLE_GETTEXT]: Adjust for changed
998         w32-gettext.c.
999         * homedir.c (gnupg_localedir): New.
1000
1001 2008-10-20  Werner Koch  <wk@g10code.com>
1002
1003         * http.c (http_register_tls_callback) [!HTTP_USE_GNUTLS]: Mark
1004         unused arg.
1005         * localename.c (do_nl_locale_name): Ditto.
1006         * audit.c (event2str): Silent gcc warning.
1007         * sysutils.c (translate_sys2libc_fd): Mark unused arg.
1008         (translate_sys2libc_fd_int): Ditto.
1009         * iobuf.c (translate_file_handle): Ditto.
1010         * asshelp.c (send_one_option): Ditto.
1011         * exechelp.c (gnupg_spawn_process): Ditto.
1012         * signal.c (got_usr_signal): Ditto
1013         * estream.c (es_func_fd_create) [!W32]: Ditto.
1014         (es_func_fp_create) [!W32]: Ditto.
1015         (es_write_hexstring): Ditto.
1016         (dummy_mutex_call_void, dummy_mutex_call_int) [HAVE_PTH]: New.
1017         (ESTREAM_MUTEX_LOCK, ESTREAM_MUTEX_UNLOCK, ESTREAM_MUTEX_TRYLOCK)
1018         (ESTREAM_MUTEX_INITIALIZE) [HAVE_PTH]: Use dummy calls so to mark
1019         unused arg.
1020
1021 2008-10-19  Werner Koch  <wk@g10code.com>
1022
1023         * estream-printf.c (estream_vsnprintf): Fix return value.
1024         (check_snprintf): Add a new test.
1025         (one_test) [W32]: Disable test.
1026
1027 2008-10-17  Werner Koch  <wk@g10code.com>
1028
1029         * util.h (snprintf) [W32]: Redefine to estream_snprintf.
1030
1031 2008-09-03  Werner Koch  <wk@g10code.com>
1032
1033         * convert.c (hex2str): New.
1034         (hex2str_alloc): New.
1035         * t-convert.c (test_hex2str): New.
1036
1037 2008-08-19  Werner Koch  <wk@g10code.com>
1038
1039         * iobuf.c: Avoid passing a NULL (iobuf_t)->desc to the log
1040         function.  Should in general never be NULL, but well.  Reported by
1041         M. Heneka.
1042
1043 2008-06-26  Werner Koch  <wk@g10code.com>
1044
1045         * estream.c (es_write_sanitized): Loose check for control
1046         characters to better cope with utf-8.  The range 0x80..0x9f is
1047         nowadays not anymore accidently used for control charaters.
1048
1049 2008-06-25  Marcus Brinkmann  <marcus@g10code.de>
1050
1051         Revert last three changes related to handle translation.
1052         * sysutils.c:
1053         (FD_TRANSLATE_MAX, fd_translate, fd_translate_len)
1054         (translate_table_init, translate_table_lookup): Removed.
1055         * iobuf.c (check_special_filename): Do not use
1056         translate_table_lookup.
1057         * sysutils.h (translate_table_init, translate_table_lookup):
1058         Remove prototypes.
1059
1060 2008-06-19  Werner Koch  <wk@g10code.com>
1061
1062         * sysutils.c: Remove <ctype.h>.
1063         (fd_translate_max): Use macro for the size.
1064         (translate_table_init): Protect read against EINTR and replace
1065         isspace by spacep.
1066
1067 2008-06-18  Marcus Brinkmann  <marcus@g10code.de>
1068
1069         * sysutils.c (TRANS_MAX): Bump up to 350 to be on the safe side.
1070
1071         * sysutils.h (translate_table_init, translate_table_lookup): New
1072         prototypes.
1073         * sysutils.c: Include <ctype.h>.
1074         (FD_TRANSLATE_MAX): New macro.
1075         (fd_translate, fd_translate_len): New static variables.
1076         (translate_table_init, translate_table_lookup): New functions.
1077         (translate_sys2libc_fd_int): Translate file descriptor.
1078         * iobuf.c (check_special_filename): Translate handle values from
1079         special filenames.
1080
1081 2008-06-16  Werner Koch  <wk@g10code.com>
1082
1083         * homedir.c (w32_commondir): New.
1084         (gnupg_sysconfdir): Use it.
1085
1086 2008-06-09  Werner Koch  <wk@g10code.com>
1087
1088         * b64dec.c: New.
1089
1090 2008-06-05  Werner Koch  <wk@g10code.com>
1091
1092         * util.h (gnupg_copy_time): Replace strcpy by memcpy.
1093
1094 2008-05-26  Werner Koch  <wk@g10code.com>
1095
1096         * asshelp.c (send_one_option, send_pinentry_environment): use
1097         xfree and xtrystrdup.
1098
1099         * i18n.c (i18n_switchto_utf8) [USE_SIMPLE_GETTEXT]: Return NULL.
1100
1101         * homedir.c (gnupg_module_name): Add
1102         GNUPG_MODULE_NAME_CONNECT_AGENT and GNUPG_MODULE_NAME_GPGCONF.
1103
1104 2008-04-21  Werner Koch  <wk@g10code.com>
1105
1106         * http.c (http_wait_response) [W32]: Use DuplicateHandle because
1107         it is a socket.
1108         (cookie_read) [W32]: Use recv in place of read.
1109
1110 2008-04-08  Werner Koch  <wk@g10code.com>
1111
1112         * i18n.c (i18n_switchto_utf8, i18n_switchback)
1113         [USE_SIMPLE_GETTEXT]: Implement.
1114
1115 2008-04-07  Werner Koch  <wk@g10code.com>
1116
1117         * b64enc.c (b64enc_start): Detect PGP mode.
1118         (b64enc_finish): Write PGP CRC.
1119         * util.h (struct b64state): Add field CRC.
1120         * t-b64.c: New.
1121
1122         * pka.c (get_pka_info): Use xtrymalloc and check result.
1123
1124 2008-03-25  Werner Koch  <wk@g10code.com>
1125
1126         * localename.c: Strip all W32 code.  Include w32help.h.
1127         (gnupg_messages_locale_name) [W32]: Use the gettext_localename.
1128
1129 2008-03-17  Werner Koch  <wk@g10code.com>
1130
1131         * iobuf.c (IOBUF_BUFFER_SIZE): Actually use this macro.
1132
1133         * simple-pwquery.c (agent_send_all_options): Fix last change.
1134
1135 2008-03-06  Werner Koch  <wk@g10code.com>
1136
1137         * simple-pwquery.c (agent_send_all_options): Add support for
1138         XAUTHORITY and PINENTRY_USER_DATA.
1139
1140 2008-02-15  Marcus Brinkmann  <marcus@g10code.de>
1141
1142         * exechelp.c (gnupg_spawn_process_fd): Add flag DETACHED_PROCESS
1143         unconditionally (required for all callers at the moment).
1144
1145 2008-02-14  Werner Koch  <wk@g10code.com>
1146
1147         * sysutils.c (gnupg_allow_set_foregound_window): New.
1148         (WINVER) [W32]: Define.
1149
1150 2008-01-31  Werner Koch  <wk@g10code.com>
1151
1152         * audit.c (audit_print_result): Make sure that the output is
1153         always UTF8.
1154
1155 2008-01-27  Werner Koch  <wk@g10code.com>
1156
1157         * exechelp.c (gnupg_spawn_process): Add arg FLAGS and changed all
1158         callers to pass 0 for it.
1159
1160 2007-12-13  Werner Koch  <wk@g10code.com>
1161
1162         * sexputil.c (hash_algo_from_sigval): New.
1163         * t-sexputil.c: New.
1164         * Makefile.am (module_tests): Add it.
1165
1166 2007-12-11  Werner Koch  <wk@g10code.com>
1167
1168         * asshelp.c (send_pinentry_environment): Allow using of old
1169         gpg-agents not capabale of the xauthority and pinentry_user_data
1170         options.
1171
1172 2007-12-04  Werner Koch  <wk@g10code.com>
1173
1174         * Makefile.am (t_helpfile_LDADD, module_maint_tests): New.
1175         * t-helpfile.c: New.
1176         * helpfile.c: New.
1177         * membuf.h (is_membuf_ready, MEMBUF_ZERO): New.
1178         * localename.c: New.  Taken from gettext with modifications as done
1179         for GpgOL.  Export one new function.
1180         * util.h (gnupg_messages_locale_name, gnupg_get_help_string): Added.
1181
1182         * sysutils.c (gnupg_reopen_std): New.  Taken from ../g10/gpg.c.
1183
1184 2007-11-27  Werner Koch  <wk@g10code.com>
1185
1186         * Makefile.am (CLEANFILES): New.
1187
1188         * homedir.c (dirmngr_socket_name): Use CSIDL_WINDOWS.
1189
1190 2007-11-15  Werner Koch  <wk@g10code.com>
1191
1192         * asshelp.c (send_pinentry_environment): Add args XAUTHORITY and
1193         PINENTRY_USER_DATA.
1194         (start_new_gpg_agent): Ditto.
1195
1196 2007-11-07  Werner Koch  <wk@g10code.com>
1197
1198         * status.h: New.
1199         * errors.h: Remove.
1200
1201 2007-11-05  Werner Koch  <wk@g10code.com>
1202
1203         * audit.c, audit.h: New.
1204         * Makefile.am: Add rules to build audit-events.h.
1205         * exaudit.awk: New.
1206         * mkstrtable.awk: New.  Taken from libgpg-error.
1207
1208 2007-10-19  Werner Koch  <wk@g10code.com>
1209
1210         * i18n.c (i18n_switchto_utf8, i18n_switchback): New.
1211
1212 2007-10-01  Werner Koch  <wk@g10code.com>
1213
1214         * sysutils.h (FD2INT, INT2FD): New.
1215
1216 2007-09-21  Werner Koch  <wk@g10code.com>
1217
1218         * homedir.c (default_homedir): Make registry work.  Reported by
1219         Marc Mutz.
1220
1221 2007-08-29  Werner Koch  <wk@g10code.com>
1222
1223         * exechelp.c (gnupg_wait_process): Add arg EXITCODE.  Changed all
1224         callers.
1225         (gnupg_create_inbound_pipe): New.
1226         * util.h (GNUPG_MODULE_NAME_GPGSM, GNUPG_MODULE_NAME_GPG): New.
1227         * homedir.c (gnupg_module_name): Add them
1228
1229 2007-08-28  Werner Koch  <wk@g10code.com>
1230
1231         * gettime.c (check_isotime, add_isotime): New.  Originally written
1232         for DirMngr by me.
1233         (add_days_to_isotime): New.
1234         (date2jd, jd2date, days_per_month, days_per_year): New. Taken from
1235         my ancient (1988) code used in Wedit (time2.c).
1236
1237 2007-08-27  Werner Koch  <wk@g10code.com>
1238
1239         * util.h (GNUPG_MODULE_NAME_CHECK_PATTERN): New.
1240         * homedir.c (gnupg_module_name): Add it.
1241         * exechelp.c (w32_fd_or_null) [W32]: New.
1242         (gnupg_spawn_process_fd): New.
1243         (gnupg_wait_process) [W32]: Close the handle after if the process has
1244         returned.
1245
1246 2007-08-22  Werner Koch  <wk@g10code.com>
1247
1248         Updated estream from libestream.
1249
1250         * estream.c (mem_malloc, mem_realloc, mem_free): New.  Use them
1251         instead of the ES_MEM_foo.
1252         * estream.c (estream_cookie_mem): Remove members DONT_FREE,
1253         APPEND_ZERO, PTR and SIZE.  Add MEMORY_LIMIT.  Put GROW into a new
1254         FLAGS struct.
1255         (es_func_mem_create): Remove APPEND_ZERO, DONT_FREE, PTR and
1256         SIZE.  Add MEMORY_LIMIT.
1257         (es_func_mem_write, es_func_mem_seek, es_func_mem_destroy): Revamp.
1258         (es_open_memstream): Change API to just take a memory limit and a
1259         mode argument.  Rename to ..
1260         (es_fopenmem): .. this.
1261         (HAVE_W32_SYSTEM) [_WIN32]: Define if not defined.
1262         (tmpfd) [W32]: Implement directly using the W32 API.
1263         (es_fgets): Rewrite without using doreadline.
1264
1265 2007-08-21  Werner Koch  <wk@g10code.com>
1266
1267         * sysutils.c (gnupg_tmpfile): New.
1268         * t-sysutils.c: New.
1269         * Makefile.am (module_tests): Add t-sysutils.
1270
1271 2007-08-20  Werner Koch  <wk@g10code.com>
1272
1273         * exechelp.c [W32]: Redefine X_OK to F_OK.
1274
1275 2007-08-16  Werner Koch  <wk@g10code.com>
1276
1277         * Makefile.am (t_convert_DEPENDENCIES): Remove
1278         ($(PROGRAMS)): Remove.
1279         (t_common_ldadd): Use libcommon.a and not the macro.
1280
1281 2007-08-14  Werner Koch  <wk@g10code.com>
1282
1283         * homedir.c (dirmngr_socket_name): New.
1284
1285 2007-08-07  Werner Koch  <wk@g10code.com>
1286
1287         * tlv.c, tlv.h: Move from ../scd/.
1288         * tlv.c (parse_sexp, parse_ber_header): Add ERRSOURCE arg and prefix
1289         name with a _.
1290         * tlv.h: Use macro to convey ERRSOURCE.
1291
1292 2007-08-02  Werner Koch  <wk@g10code.com>
1293
1294         * gc-opt-flags.h: New.
1295
1296 2007-08-01  Werner Koch  <wk@g10code.com>
1297
1298         * estream-printf.c (read_dummy_value): Removed as it is useless now.
1299         (read_values): Remove check on !vaargs which is not anymore needed
1300         and anyway not portable.  Reported by Peter O'Gorman.
1301
1302 2007-07-16  Werner Koch  <wk@g10code.com>
1303
1304         * estream.c (es_func_file_create): Clear NO_CLOSE flag.
1305
1306 2007-07-12  Werner Koch  <wk@g10code.com>
1307
1308         * sysutils.h (gnupg_fd_t): New.
1309         * sysutils.c (translate_sys2libc_fd): Use that type instead of int.
1310         (translate_sys2libc_fd_int): New.
1311
1312 2007-07-09  Werner Koch  <wk@g10code.com>
1313
1314         * t-gettime.c (test_isotime2epoch): Use time_t and not u32.
1315
1316 2007-07-05  Werner Koch  <wk@g10code.com>
1317
1318         * t-gettime.c: New.
1319         * gettime.c (isotime2epoch, epoch2isotime): New.
1320
1321 2007-07-04  Werner Koch  <wk@g10code.com>
1322
1323         * estream.c (es_init_do): Do not throw an error if pth has already
1324         been initialized.
1325
1326 2007-06-26  Werner Koch  <wk@g10code.com>
1327
1328         * Makefile.am ($(PROGRAMS)): New.
1329
1330         * util.h (init_common_subsystems): Moved to ..
1331         * init.h: .. New.
1332         * util.h: Include init.h.
1333
1334         * homedir.c (standard_homedir): New.
1335         (default_homedir) [W32]: Reimplemented in terms of
1336         standard_homedir.  Fixed memory leak.
1337
1338 2007-06-25  Werner Koch  <wk@g10code.com>
1339
1340         * iobuf.c: Add more documentation and slighly restructured macro
1341         defintion for better readability.
1342         (FILEP_OR_FD): Rename to fp_or_fd_t.
1343         (CLOSE_CACHE): Rename to close_cache_t.
1344
1345         * sysutils.c (translate_sys2libc_fd): New using the code from iobuf.c.
1346         * iobuf.c: Include sysutils.h.
1347         (iobuf_translate_file_handle): Remove.
1348         (translate_file_handle): Use new function.
1349
1350         * estream-printf.c [TEST]: Header including fixes.
1351         (do_format): Do not append a trailing Nul.  This avoids spurious
1352         Nuls in the es_printf output.
1353         (estream_vsnprintf, estream_vasprintf): Take this in account.
1354
1355         * estream.h (struct es__stream): Change FLAGS to a bit structure.
1356         (ES__FLAG_WRITING): Replace by a bit from FLAGS.  * estream.c
1357         (struct estream_internal): Rename FLAGS to MODEFLAGS so that they
1358         are not confused with the estream flags.
1359         (es_initialize, es_create): Add arg MODEFLAGS so that we can setup
1360         the intial writemode.  Changed all callers to pass them.
1361         (es_convert_mode): Set O_BINARY.
1362         (es_func_fd_create, es_func_fp_create, es_func_file_create) [W32]:
1363         Call setmode if requested.
1364
1365 2007-06-24  Werner Koch  <wk@g10code.com>
1366
1367         * estream.c (do_fpopen, es_fpopen, es_fpopen_nc): New.
1368         (es_func_fp_create, es_func_fp_read, es_func_fp_write)
1369         (es_func_fp_seek, es_func_fp_destroy): New.
1370
1371 2007-06-22  Werner Koch  <wk@g10code.com>
1372
1373         * estream.c (es_fdopen): Factored code out to..
1374         (do_fdopen): .. new.
1375         (es_fdopen_nc): New.
1376         (estream_cookie_fd): Add field NO_CLOSE.
1377         (es_func_fd_create): Add arg NO_CLOSE and changed all callers.
1378         (es_func_fd_destroy): Handle the new flag.
1379
1380         * homedir.c (gnupg_libexecdir) [W32]: Factor code out to ..
1381         (w32_rootdir): .. new.
1382         (gnupg_sysconfdir, gnupg_libdir, gnupg_datadir) [W32]: Return
1383         name based on w32_rootdir().
1384
1385 2007-06-21  Werner Koch  <wk@g10code.com>
1386
1387         * membuf.h (get_membuf_len): New.
1388
1389         * membuf.c (init_membuf_secure): Really allocate in secure memory.
1390         (put_membuf_str): New.
1391
1392         * ttyio.c (tty_getf): New.
1393
1394         * util.h (ctrl_t): Declare it here.
1395
1396         * asshelp.c (start_new_gpg_agent): New.  Based on code from
1397         ../sm/call-agent.c
1398
1399 2007-06-20  Werner Koch  <wk@g10code.com>
1400
1401         * sysutils.c (gnupg_sleep): New.
1402         * sysutils.h [W32]: Remove _sleep wrapper.  Changed all callers to
1403         use gnupg_sleep.
1404
1405         * exechelp.c (build_w32_commandline_copy): New.
1406         (build_w32_commandline): Factored some code out to new function
1407         and correctly process a PGMNAME with spaces.
1408         (gnupg_spawn_process_detached) [W32]: Implement.
1409
1410 2007-06-14  Werner Koch  <wk@g10code.com>
1411
1412         * simple-pwquery.h (MAP_SPWQ_ERROR_IMPL): New.
1413         (SPWQ_NO_PIN_ENTRY): New.
1414         * simple-pwquery.c (simple_pw_set_socket): New.
1415         (agent_open): Use it if GPG_AGENT_INFO is not set.
1416         (simple_pwquery): Extended to allow returning of otehyr error codes.
1417
1418         * util.h (GNUPG_MODULE_NAME_AGENT, GNUPG_MODULE_NAME_PINENTRY)
1419         (GNUPG_MODULE_NAME_SCDAEMON, GNUPG_MODULE_NAME_DIRMNGR)
1420         (GNUPG_MODULE_NAME_PROTECT_TOOL): New.
1421         * homedir.c (gnupg_module_name): New.
1422         (gnupg_bindir): New.
1423
1424 2007-06-12  Werner Koch  <wk@g10code.com>
1425
1426         * homedir.c (gnupg_sysconfdir): New.
1427         (gnupg_libexecdir): New.  Taken from g10/misc.c:get_libexecdir.
1428         (gnupg_datadir): New.
1429         (gnupg_libdir): New.
1430
1431         * http.c (connect_server) [W32]: Do not call init_sockets if
1432         HTTP_NO_WSASTARTUP is defined.
1433
1434         * init.c: New.
1435
1436         * estream.c (es_init_do): Init stream lock here because we can't
1437         use a static initialization with W32pth.
1438
1439 2007-06-11  Werner Koch  <wk@g10code.com>
1440
1441         * Makefile.am (t_common_ldadd): Use libcommonstd macro.
1442
1443 2007-06-06  Werner Koch  <wk@g10code.com>
1444
1445         * Makefile.am: Include am/cmacros.am.
1446
1447         * sysutils.h [W32]: Remove prototypes for the registry access.
1448         * w32reg.c:  Move to ../jnlib/w32-reg.c.
1449
1450         * i18n.c (i18n_init): New.
1451
1452         * simple-gettext.c: Remove.
1453
1454         * iobuf.c (iobuf_get_filelength): Rename SIZE to EXSIZE to silent
1455         shadowing warning.
1456
1457 2007-06-04  Werner Koch  <wk@g10code.com>
1458
1459         * http.c [W32]: Include unistd.h also in this case.
1460         (write_server) [W32]: Fixed error code.
1461         (init_sockets): Fixed syntax error.
1462         (cookie_close): Replace close by sock_close macro.
1463
1464         * estream.c [w32]: Do not init Mutex.
1465
1466         * Makefile.am (common_sources) [USE_SNS_SRV]: Build srv.c only
1467         when needed.
1468
1469         * ttyio.c (init_ttyfp) [W32]: Do not use TTYFP.
1470
1471         * util.h: Include ../jnlib/dynload.h.
1472
1473         * dynload.h:  Move to ../jnlib.
1474
1475 2007-05-30  Werner Koch  <wk@g10code.com>
1476
1477         * estream.c (MEM_FREE, MEM_ALLOC, MEM_REALLOC): Prefix with ES_ as
1478         windows.h also has such definitions,
1479
1480 2007-05-15  Werner Koch  <wk@g10code.com>
1481
1482         * util.h: Do not include gnulib's vasprintf.  Redefine asprintf
1483         and vasprintf.
1484
1485         * xasprintf.c (xasprintf, xtryasprintf): Use estream_vasprintf.
1486
1487         * estream-printf.h, estream-printf.c: New.  Taken from current
1488         libestream SVN.
1489         * Makefile.am (common_sources): Add them.
1490
1491 2007-05-14  Werner Koch  <wk@g10code.com>
1492
1493         * sexp-parse.h (smklen): New.
1494         * sexputil.c: Include sexp-parse.h.
1495         (make_simple_sexp_from_hexstr): Replace sprintf by smklen.
1496
1497 2007-05-07  Werner Koch  <wk@g10code.com>
1498
1499         * signal.c (got_fatal_signal): Protect SIG from being clobbered by
1500         a faulty signal implementaion.  Suggested by James Juran.
1501
1502 2007-04-25  Werner Koch  <wk@g10code.com>
1503
1504         * i18n.h (ngettext): New.
1505         * simple-gettext.c (ngettext): New.
1506
1507 2007-04-20  Werner Koch  <wk@g10code.com>
1508
1509         * miscellaneous.c (my_gcry_logger, my_gcry_outofcore_handler):
1510         Moved from gpg-agent to here.
1511         (my_gcry_fatalerror_handler): new.
1512         (setup_libgcrypt_logging): New.
1513
1514 2007-03-19  Werner Koch  <wk@g10code.com>
1515
1516         * miscellaneous.c (print_hexstring): New.
1517         * estream.c (es_fprintf_unlocked): New.
1518         (es_write_sanitized): New.
1519         (es_write_hexstring): New.
1520         (es_write_sanitized_utf8_buffer) [GNUPG_MAJOR_VERSION]: New.
1521
1522 2007-03-09  David Shaw  <dshaw@jabberwocky.com>
1523
1524         From STABLE-BRANCH-1-4
1525
1526         * http.c (do_parse_uri): Remove the hkp port 11371 detection.  We
1527         implement hkp in the keyserver handler, and the support here makes
1528         it appear like a bad hkp request actually succeeded.
1529
1530 2007-01-31  Werner Koch  <wk@g10code.com>
1531
1532         * Makefile.am (t_common_ldadd): Add LIBINCONV and LIBINTL.
1533
1534 2007-01-25  Werner Koch  <wk@g10code.com>
1535
1536         * simple-pwquery.c (simple_pwquery): New arg OPT_CHECK.
1537
1538 2006-12-13  David Shaw  <dshaw@jabberwocky.com>
1539
1540         * Makefile.am (AM_CPPFLAGS): Include intl/ so we can reference the
1541         built-in headers.
1542
1543 2006-11-23  Werner Koch  <wk@g10code.com>
1544
1545         * http.c: Include i18n.h
1546
1547 2006-11-21  Werner Koch  <wk@g10code.com>
1548
1549         * estream.c: Remove explicit Pth soft mapping diabling becuase it
1550         is now done in config.h.
1551
1552 2006-11-15  Werner Koch  <wk@g10code.com>
1553
1554         * estream.c: Disabled Pth soft mapping.
1555         (my_funopen_hook_ret_t): New.
1556         (print_fun_writer): Use it here.
1557
1558         * iobuf.c (fd_cache_close): Use %d instead of %p for debug output.
1559
1560 2006-11-03  Werner Koch  <wk@g10code.com>
1561
1562         * Makefile.am (t_convert_DEPENDENCIES): Add libcommon.  From
1563         Gentoo.
1564
1565 2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
1566
1567         * Makefile.am (libcommon_a_CFLAGS): Add $(LIBASSUAN_CFLAGS).
1568         (libsimple_pwquery_a_CFLAGS): New variable.
1569
1570 2006-10-20  Werner Koch  <wk@g10code.com>
1571
1572         * convert.c (hex2bin): New.
1573
1574 2006-10-17  Werner Koch  <wk@g10code.com>
1575
1576         * estream.c (struct estream_internal, es_initialize)
1577         (es_deinitialize, print_fun_writer, es_print): New and modified
1578         functions to avoid tempfiles for printf style printing.
1579
1580         * Makefile.am (libcommonpth_a_SOURCES): New. We now build a secon
1581         version of the library with explicit Pth support.
1582         * exechelp.c, estream.c: Make use of WITHOUT_GNU_PTH.
1583
1584 2006-10-08  Werner Koch  <wk@g10code.com>
1585
1586         * gpgrlhelp.c: Trun all functions into dummies if readline is not
1587         available.
1588
1589 2006-10-06  Werner Koch  <wk@g10code.com>
1590
1591         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
1592
1593         * util.h (GNUPG_GCC_A_SENTINEL): Defined for gcc >= 4.
1594
1595 2006-10-04  David Shaw  <dshaw@jabberwocky.com>
1596
1597         * gpgrlhelp.c: readline requires stdio.h.
1598
1599 2006-10-04  Werner Koch  <wk@g10code.com>
1600
1601         * membuf.c (init_membuf_secure): New.
1602         (put_membuf): Make sure that ERRNO is set even if the underlying
1603         malloc code does not work properly.
1604         (get_membuf): Set ERRNO on error.
1605         (get_membuf): Allow to pass LEN as NULL.
1606
1607 2006-10-02  Werner Koch  <wk@g10code.com>
1608
1609         * iobuf.c (iobuf_unread): Removed.  This code is not required.
1610         Also removed the entire unget buffer stuff.
1611
1612 2006-09-27  Werner Koch  <wk@g10code.com>
1613
1614         * util.h: Do not include strsep.h and strpbrk.h.
1615         (isascii): Removed as it is now in jnlib.
1616
1617         * iobuf.c (pop_filter, underflow, iobuf_close): Free the unget
1618         buffer.
1619
1620 2006-09-27  Florian Weimer <fweimer@bfk.de>  (wk)
1621
1622         * iobuf.c (iobuf_unread): New.
1623
1624 2006-09-22  Werner Koch  <wk@g10code.com>
1625
1626         * i18n.h: Changed license to an all permissive one.
1627
1628         * ttyio.c (tty_get): We need to use readline too.  Added two more
1629         hooks.
1630
1631 2006-09-21  Werner Koch  <wk@g10code.com>
1632
1633         * ttyio.c (tty_private_set_rl_hooks): New.
1634         (tty_enable_completion, tty_disable_completion): Use a hook to
1635         enable readline support.  Now always available.
1636         (tty_cleanup_rl_after_signal): New.
1637
1638         * ttyio.h: Removed readline specific stuff.  Included util.h.
1639         * common-defs.h: New.
1640
1641 2006-09-15  Werner Koch  <wk@g10code.com>
1642
1643         * convert.c: New.
1644         (hexcolon2bin): New.
1645         (bin2hex, bin2hexcolon, do_binhex): New.
1646         * t-convert.c: New
1647
1648 2006-09-14  Werner Koch  <wk@g10code.com>
1649
1650         * util.h (out_of_core): Use new gpg_error_from_syserror function.
1651
1652         * http.c (init_sockets): Changed it to require 2.2 unless it is
1653         build within gnupg 1 where we require 1.1 (and not anymore allow
1654         for 1.0).
1655
1656 2006-09-07  Werner Koch  <wk@g10code.com>
1657
1658         * exechelp.c (gnupg_spawn_process): Factor out post fork code to ..
1659         (do_exec): .. new function.  Allow passing of -1 for the fds.
1660         (gnupg_spawn_process): Terminate gcrypt's secure memory in the child.
1661         (gnupg_spawn_process_detached): New.
1662
1663 2006-09-06  Werner Koch  <wk@g10code.com>
1664
1665         * maperror.c: Removed.
1666
1667         * util.h (out_of_core): New.
1668
1669 2006-09-04  Werner Koch  <wk@g10code.com>
1670
1671         * http.c (http_get_header): New.
1672         (capitalize_header_name, store_header): New.
1673         (parse_response): Store headers away.
1674         (send_request): Return GPG_ERR_NOT_FOUND if connect_server failed.
1675         * http.h: New flag HTTP_FLAG_NEED_HEADER.
1676
1677 2006-08-21  Werner Koch  <wk@g10code.com>
1678
1679         * Makefile.am (libcommon_a_SOURCES): Added keyserver.h
1680
1681         * openpgpdefs.h: New.  Stripped from ..g10/packet.h.
1682
1683 2006-08-16  Werner Koch  <wk@g10code.com>
1684
1685         * keyserver.h: Moved from ../include to here.
1686
1687         * http.c: Include srv.h.
1688
1689         * srv.c, srv.h: New. Taken from GnuPG 1.4
1690
1691 2006-08-14  Werner Koch  <wk@g10code.com>
1692
1693         * http.h (struct http_context_s): Moved to implementation.
1694         * http.c (http_open): Changed call to return a context.
1695         (http_open_document): Ditto.
1696         (http_get_read_ptr, http_get_read_ptr, http_get_status_code): New.
1697         (do_parse_uri): Replaced strlwr by straight code to ease
1698         standalone use of this file.
1699         (http_wait_response): Removed arg STATUS_CODE as it is available
1700         through an accessor function. Adjusted caller.
1701         (http_escape_string): New.
1702
1703         * estream.c (es_read_line): Renamed to ..
1704         (doreadline): .. this.  Changed all callers.
1705         (es_read_line): New.  This is theusual limited getline variabnt as
1706         used at several places.  Here taken and adjusted from xreadline.c
1707         (es_free): New.
1708
1709 2006-08-11  Werner Koch  <wk@g10code.com>
1710
1711         * http.c: Major internal changes to optionallly support GNUTLS and
1712         ESTREAM.
1713         (http_open): Move initialization of the stream ...
1714         (send_request): .. here.
1715         (http_register_tls_callback): New.
1716
1717         * estream.c (es_writen): Try to seek only is a seek function has
1718         been registered.
1719
1720 2006-08-09  Werner Koch  <wk@g10code.com>
1721
1722         * http.c, http.h: New.  Taken from gnupg 1.4.5, merged with
1723         changes done for the Dirmngr project (by g10 Code) and cleaned up
1724         some stuff.
1725         (make_header_line): New. Change all caller to make user of the new
1726         * Makefile.am (libcommon_a_SOURCES): Added http.c and http.h.
1727
1728 2006-05-23  Werner Koch  <wk@g10code.com>
1729
1730         * gettime.c (isotimestamp): New.
1731
1732         * ttyio.c (tty_get_ttyname): Posixly correct usage of ctermid.
1733
1734         * dns-cert.c: New.  Taken from 1.4.3's util/cert.c.
1735         * dns-cert.h: New.
1736
1737 2006-05-22  Werner Koch  <wk@g10code.com>
1738
1739         * pka.c: New. Taked from 1.4.3.
1740         * pka.h: New.
1741         * Makefile.am: Added pka.
1742
1743 2006-05-19  Werner Koch  <wk@g10code.com>
1744
1745         * yesno.c (answer_is_yes_no_default, answer_is_yes_no_quit):
1746         Updated from 1.4.3.
1747         (answer_is_okay_cancel): new.  From 1.4.3.
1748
1749         * miscellaneous.c (match_multistr): New.  Taken from 1.4.3.
1750
1751         * ttyio.c (tty_enable_completion, tty_disable_completion): New
1752         dummy functions.
1753         * ttyio.h: Add prototypes and stubs.
1754
1755 2006-04-19  Werner Koch  <wk@g10code.com>
1756
1757         * iobuf.c (iobuf_get_fd): New.  Taken from 1.4.3.
1758         (iobuf_is_pipe_filename): New.
1759         (pop_filter): Made static.
1760         (iobuf_skip_rest): New.  Orginal patch by Florian
1761         Weimer.  Added new argument PARTIAL.
1762         (block_filter): Remove the old gpg indeterminate length mode.
1763         (block_filter): Properly handle a partial body stream
1764         that ends with a 5-byte length that happens to be zero.
1765         (iobuf_set_block_mode, iobuf_in_block_mode): Removed as
1766         superfluous.
1767         (iobuf_get_filelength): New arg OVERFLOW.
1768         (iobuf_get_filelength) [W32]: Use GetFileSizeEx if available
1769         * miscellaneous.c (is_file_compressed): Take care of OVERFLOW.
1770
1771 2006-04-18  Werner Koch  <wk@g10code.com>
1772
1773         * homedir.c (w32_shgetfolderpath): New.  Taken from gpg 1.4.3.
1774         (default_homedir): Use it.
1775
1776 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
1777
1778         * signal.c (get_signal_name): Check value of HAVE_DECL_SYS_SIGLIST
1779         instead of just if it is defined.
1780
1781 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
1782
1783         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
1784
1785 2005-07-04  Marcus Brinkmann  <marcus@g10code.de>
1786
1787         * simple-pwquery.h (simple_pwclear): New prototype.
1788         * simple-pwquery.c (simple_pwclear): New function.
1789
1790 2005-06-15  Werner Koch  <wk@g10code.com>
1791
1792         * miscellaneous.c (make_printable_string): Made P a void*.
1793
1794         * sexputil.c (keygrip_from_canon_sexp, cmp_simple_canon_sexp):
1795         Fixed signed/unsigned pointer mismatch.
1796         (make_simple_sexp_from_hexstr): Ditto.  This is all too ugly; I
1797         wonder why gcc-4's default is to warn about them and forcing us to
1798         use cast the warning away.
1799         * iobuf.c (block_filter): Ditto.
1800         (iobuf_flush): Ditto.
1801         (iobuf_read_line): Ditto.
1802         (iobuf_read): Make BUFFER a void *.
1803         (iobuf_write): Make BUFFER a const void *.
1804         * ttyio.c (tty_print_utf8_string2): Ditto.
1805         * estream.c (estream_cookie_mem): Make MEMORY unsigned char*.
1806         (es_write): Make BUFFER a void *.
1807         (es_writen): Ditto.
1808         (es_func_fd_read, es_func_fd_write, es_func_mem_read)
1809         (es_func_mem_write): Ditto.
1810         (es_read, es_readn): Ditto.
1811         (es_func_mem_write): Made MEMORY_NEW an unsigned char *.
1812         * estream.h (es_cookie_read_function_t)
1813         (es_cookie_write_function_t): Changed buffer arg to void*.
1814
1815 2005-06-03  Werner Koch  <wk@g10code.com>
1816
1817         * estream.c: Use HAVE_CONFIG_H and not USE_CONFIG_H!
1818         (es_func_fd_read, es_func_fd_write): Protect against EINTR.
1819
1820 2005-06-01  Werner Koch  <wk@g10code.com>
1821
1822         * Makefile.am (AM_CPPFLAGS): Added.
1823
1824         * util.h: Add some includes for gnulib.
1825         (ttyname, isascii): Define them inline.
1826         * fseeko.c, ftello.c: Removed.
1827         * strsep.c, mkdtemp.c: Removed.
1828         * ttyname.c, isascii.c: Removed.
1829
1830 2005-05-31  Werner Koch  <wk@g10code.com>
1831
1832         * dynload.h: s/__inline__/inline/.
1833
1834 2005-05-13  Werner Koch  <wk@g10code.com>
1835
1836         * signal.c (got_fatal_signal): Print the signal number if we can't
1837         get a name for it.
1838         (get_signal_name): Return NULL if no name is available. Fixed
1839         conditional for sys_siglist to the correct one.
1840
1841 2005-04-17  Werner Koch  <wk@g10code.com>
1842
1843         * sexputil.c (cmp_simple_canon_sexp): New.
1844         (make_simple_sexp_from_hexstr): New.
1845
1846 2005-04-07  Werner Koch  <wk@g10code.com>
1847
1848         * sexputil.c: New.
1849
1850 2005-04-11  Marcus Brinkmann  <marcus@g10code.de>
1851
1852         * simple-pwquery.c (simple_pwquery): Use spwq_secure_free.
1853
1854 2005-03-03  Werner Koch  <wk@g10code.com>
1855
1856         * Makefile.am (AM_CFLAGS): Added PTH_CFLAGS.  Noted by Kazu Yamamoto.
1857
1858 2005-02-25  Werner Koch  <wk@g10code.com>
1859
1860         * xasprintf.c (xtryasprintf): New.
1861
1862 2005-01-26  Moritz Schulte  <moritz@g10code.com>
1863
1864         * Makefile.am (libcommon_a_SOURCES): New source files: estream.c,
1865         estream.h.
1866         * estream.c, estream.h: New files.
1867
1868 2005-01-03  Werner Koch  <wk@g10code.com>
1869
1870         * asshelp.c (send_pinentry_environment): Fixed changed from
1871         2004-12-18; cut+paste error for lc-messages.
1872
1873 2004-12-21  Werner Koch  <wk@g10code.com>
1874
1875         * simple-pwquery.c (agent_open) [W32]: Implement for W32.
1876         (readline) [W32]: Use recv instead of read.
1877         (writen) [W32]: Use send instead of write.
1878         (my_stpcpy): Define a stpcpy replacement so that this file
1879         continues to be self-contained.
1880         (agent_send_all_options) [W32]: Don't call ttyname.
1881
1882 2004-12-21  Marcus Brinkmann  <marcus@g10code.de>
1883
1884         * simple-pwquery.h (simple_query): Add prototype.
1885         * simple-pwquery.c (simple_query): New function.
1886
1887 2004-12-21  Werner Koch  <wk@g10code.com>
1888
1889         * signal.c (got_fatal_signal, got_usr_signal)
1890         (got_fatal_signal) [DOSISH]: Don't build.
1891         * simple-gettext.c: Include sysutils.h
1892
1893         * homedir.c: New. Use CSIDL_APPDATA for W32 as the default home
1894         directory.
1895         * Makefile.am (libcommon_a_SOURCES): Add it.
1896         (EXTRA_DIST): Removed mkerror and mkerrtok.
1897
1898 2004-12-20  Werner Koch  <wk@g10code.com>
1899
1900         * sysutils.h [W32]: Define sleep.
1901         * util.h: Add prototype for mkdtemp.
1902
1903         * membuf.c (put_membuf): Wipe out buffer after a failed realloc.
1904
1905 2004-12-19  Werner Koch  <wk@g10code.com>
1906
1907         * maperror.c (map_assuan_err_with_source): Oops, args were swapped.
1908
1909 2004-12-18  Werner Koch  <wk@g10code.com>
1910
1911         * maperror.c (map_assuan_err): Renamed to ..
1912         (map_assuan_err_with_source): .. this and add arg SOURCE.c
1913         * asshelp.c (send_pinentry_environment, send_one_option): Add arg
1914         ERRSOURCE.
1915
1916 2004-12-15  Werner Koch  <wk@g10code.com>
1917
1918         * sysutils.h [W32]: Prototypes for registry functions.
1919         * w32reg.c: Include sysutils.h
1920
1921         * simple-pwquery.c [W32]: Dummy code to allow a build.
1922
1923         * exechelp.c [W32]: Implemented for W32 .
1924
1925         * ttyname.c: New.
1926
1927         * asshelp.c (send_one_option): New.
1928         (send_pinentry_environment): Cleaned up and made sure that empty
1929         values are not send.
1930
1931 2004-12-07  Werner Koch  <wk@g10code.com>
1932
1933         * asshelp.c (send_pinentry_environment) [W32]: Do not use ttyname.
1934
1935 2004-12-06  Werner Koch  <wk@g10code.com>
1936
1937         * exechelp.h, exechelp.c: New.  Based on code from ../sm/import.c.
1938
1939 2004-12-03  Werner Koch  <wk@g10code.com>
1940
1941         * strsep.c: Fixed copyright comments.
1942
1943 2004-11-26  Werner Koch  <wk@g10code.com>
1944
1945         * simple-gettext.c: New taken from gnupg 1.3.x
1946
1947         * simple-pwquery.c [_WIN32]: Include winsock2.h.
1948         (agent_open): Disable it until we have our AF_UNIX implementation
1949         ready.
1950         * fseeko.c, ftello.c: Include sys/types for the sake of W32.
1951
1952 2004-11-23  Werner Koch  <wk@g10code.com>
1953
1954         * b64enc.c: Include stdio.h and string.h
1955
1956 2004-08-18  Werner Koch  <wk@g10code.de>
1957
1958         * simple-pwquery.c (simple_pwquery): Handle gpg-error style return
1959         code for canceled.
1960
1961 2004-07-20  Werner Koch  <wk@g10code.de>
1962
1963         * maperror.c: Removed header ksba.h.  Not required anymore.
1964
1965 2004-06-14  Werner Koch  <wk@gnupg.org>
1966
1967         * xreadline.c: New.  Based on the iobuf_read_line function.
1968
1969 2004-05-12  Werner Koch  <wk@gnupg.org>
1970
1971         * util.h (xtrycalloc_secure,xtrymalloc_secure): New.
1972
1973 2004-05-11  Werner Koch  <wk@gnupg.org>
1974
1975         * sysutils.c (disable_core_dumps): Only set the current limit.
1976         (enable_core_dumps): New.
1977
1978 2004-04-13  Werner Koch  <wk@gnupg.org>
1979
1980         * simple-pwquery.c (copy_and_escape): Relaxed quoting.
1981
1982 2004-04-05  Werner Koch  <wk@gnupg.org>
1983
1984         * errors.h (STATUS_NEWSIG): New.
1985
1986 2004-03-11  Werner Koch  <wk@gnupg.org>
1987
1988         * dynload.h [__MINGW32__]: Define RTLD_LAZY.
1989
1990 2004-03-09  Werner Koch  <wk@gnupg.org>
1991
1992         * maperror.c (map_assuan_err): Map the Locale_Problem item.
1993
1994 2004-03-03  Werner Koch  <wk@gnupg.org>
1995
1996         * asshelp.c, asshelp.h: New.
1997         (send_pinentry_environment): New. Code taken from ../sm/call-agent.c.
1998
1999 2004-02-19  Werner Koch  <wk@gnupg.org>
2000
2001         * simple-pwquery.c (agent_open): Don't mangle INFOSTR.
2002
2003 2004-02-17  Werner Koch  <wk@gnupg.org>
2004
2005         * simple-pwquery.c (agent_open): Ignore an empty GPG_AGENT_INFO.
2006
2007         * errors.h: Added STATUS_IMPORT_OK.
2008
2009 2004-02-10  Werner Koch  <wk@gnupg.org>
2010
2011         * b64enc.c: New.  Based on code from ../sm/base64.c.
2012
2013 2004-01-30  Marcus Brinkmann  <marcus@g10code.de>
2014
2015         * Makefile.am (libcommon_a_SOURCES): Add xasprintf.c.
2016         * miscellaneous.c (xasprintf): Moved to ...
2017         * xasprintf (xasprintf): ... here.  New file.
2018         This allows to use xasprintf without sucking in gpg-error.
2019
2020 2004-01-27  Werner Koch  <wk@gnupg.org>
2021
2022         * sexp-parse.h: New; moved from../agent.
2023
2024         * util.h (xtoi_4): New.
2025
2026 2003-12-23  Werner Koch  <wk@gnupg.org>
2027
2028         * maperror.c (map_assuan_err): Prepared for a new error code.
2029
2030 2003-12-17  Werner Koch  <wk@gnupg.org>
2031
2032         * gettime.c (asctimestamp): Add a note on a non-avoidable gcc warning.
2033
2034         * util.h [!HAVE_VASPRINTF]: Add printf format attribute to the
2035         replacement function.
2036
2037         * miscellaneous.c (xasprintf): New.
2038
2039 2003-11-14  Werner Koch  <wk@gnupg.org>
2040
2041         * mkdtemp.c (mkdtemp): Use gcry_create_nonce.
2042
2043         * cryptmiss.c: Removed.
2044
2045 2003-11-13  Werner Koch  <wk@gnupg.org>
2046
2047         * util.h (vasprintf): Also fixed the prototype.
2048
2049         * vasprintf.c (vasprintf): ARGS should not be a pointer.  Fixed
2050         segv on Solaris.  Reported by Andrew J. Schorr.
2051
2052 2003-11-12  Werner Koch  <wk@gnupg.org>
2053
2054         * maperror.c (map_ksba_err, map_gcry_err, map_kbx_err): Removed.
2055
2056 2003-10-31  Werner Koch  <wk@gnupg.org>
2057
2058         * util.h (gnupg_isotime_t): New.
2059         (gnupg_copy_time): New.
2060
2061         * gettime.c (gnupg_get_isotime): New.
2062
2063 2003-09-23  Werner Koch  <wk@gnupg.org>
2064
2065         * iobuf.c (check_special_filename): Replaced is isdigit by digitp
2066         to avoid passing negative values and potential locale problems.
2067         Problem noted by Christian Biere.
2068
2069         * util.h (ascii_isspace): New.
2070
2071 2003-09-18  Werner Koch  <wk@gnupg.org>
2072
2073         * ttyio.c (tty_fprintf): New.
2074         (tty_print_string, tty_print_utf8_string2)
2075         (tty_print_utf8_string): Made P argument const byte*.
2076
2077 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
2078
2079         * maperror.c (map_ksba_err): Map -1.  Use gpg_err_make to set
2080         the error source.
2081
2082 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
2083
2084         * dynload.h. New. W32 wrapper around the dynload mechanism.
2085
2086 2003-07-15  Werner Koch  <wk@gnupg.org>
2087
2088         * simple-pwquery.c, simple-pwquery.h:  New; moved from ../agent.
2089         * Makefile.am (libsimple_pwquery_a_LIBADD): New.
2090
2091 2003-06-25  Werner Koch  <wk@gnupg.org>
2092
2093         * maperror.c (map_to_assuan_status): Directly map 0 to 0.
2094
2095 2003-06-17  Werner Koch  <wk@gnupg.org>
2096
2097         * gettime.c (scan_isodatestr,add_days_to_timestamp,strtimevalue)
2098         (strtimestamp,asctimestamp): New.  Code taken from gnupg 1.3.2
2099         mischelp.c.
2100
2101         * yesno.c: New.  Code taken from gnupg 1.3.2 mischelp.c
2102
2103         * miscellaneous.c: New.
2104
2105         * util.h: Include utf8conf.h
2106
2107 2003-06-16  Werner Koch  <wk@gnupg.org>
2108
2109         * gettime.c (make_timestamp): New.
2110
2111         * ttyio.c: New. Taken from gnupg 1.2.
2112         * ttyio.h: Move from ../include.
2113
2114 2003-06-13  Werner Koch  <wk@gnupg.org>
2115
2116         * util.h (seterr): Removed macro.
2117         (xmalloc_secure,xcalloc_secure): New.
2118
2119 2003-06-11  Werner Koch  <wk@gnupg.org>
2120
2121         * iobuf.c (iobuf_writebyte,iobuf_write): Return error code from
2122         iobuf_flush.
2123         (iobuf_writestr): Ditto.
2124
2125 2003-06-10  Werner Koch  <wk@gnupg.org>
2126
2127         * iobuf.c, iobuf.h: New. Taken from current gnupg 1.3 CVS.  Run
2128         indent on it and adjusted error handling to libgpg-error style.
2129         Replaced IOBUF by iobuf_t. Renamed malloc functions.
2130
2131 2003-06-04  Werner Koch  <wk@gnupg.org>
2132
2133         * errors.h: Removed all error codes.  We keep the status codes for
2134         now.
2135         * Makefile.am: Do not create errors.c anymore; remove it from the
2136         sources.
2137
2138         * maperror.c: Don't include error.h.  Change all error codes to
2139         libgpg-error style.
2140         (map_assuan_err): Changed to new Assuan error code convention.
2141         (map_to_assuan_status): Likewise.
2142         (map_gcry_err,map_kbx_err): Not needed.  For now dummy functions.
2143
2144         * membuf.c, membuf.h: New.  Code taken from ../sm/call-agent.h.
2145         * Makefile.am: Added above.
2146
2147 2003-04-29  Werner Koch  <wk@gnupg.org>
2148
2149         * util.h (fopencokokie): Removed prototype and struct.
2150
2151         * fopencookie.c: Removed.
2152
2153         * maperror.c: Use system assuan.h
2154
2155 2002-10-31  Neal H. Walfield  <neal@g10code.de>
2156
2157         * isascii.c: New file.
2158         * putc_unlocked.c: Likewise.
2159
2160 2002-10-28  Neal H. Walfield  <neal@g10code.de>
2161
2162         * signal.c (caught_fatal_sig): Remove superfluous zero
2163         initializer.
2164         (caught_sigusr1): Likewise.
2165
2166 2002-09-04  Neal H. Walfield  <neal@g10code.de>
2167
2168         * vasprintf.c (vasprintf) [va_copy]: Use va_copy.
2169         [!va_copy && __va_copy]: Use __va_copy.
2170         [!va_copy && !__va_copy]: Only now fall back to using memcpy.
2171
2172 2002-08-21  Werner Koch  <wk@gnupg.org>
2173
2174         * errors.h: Added STATUS_IMPORT_PROBLEM.
2175
2176 2002-08-20  Werner Koch  <wk@gnupg.org>
2177
2178         * vasprintf.c: Hack to handle NULL for %s.
2179
2180 2002-08-09  Werner Koch  <wk@gnupg.org>
2181
2182         * signal.c: New. Taken from GnuPG 1.1.91.
2183
2184 2002-07-23  Werner Koch  <wk@gnupg.org>
2185
2186         * util.h (_IO_cookie_io_functions_t): Fixed typo.  Noted by
2187         Richard Lefebvre.
2188
2189 2002-07-22  Werner Koch  <wk@gnupg.org>
2190
2191         * fseeko.c, ftello.c: New.
2192
2193 2002-06-28  Werner Koch  <wk@gnupg.org>
2194
2195         * maperror.c (map_to_assuan_status): Map more errorcodes to Bad
2196         Certificate.
2197
2198 2002-06-26  Werner Koch  <wk@gnupg.org>
2199
2200         * maperror.c (map_to_assuan_status): Map EOF to No_Data_Available.
2201
2202 2002-06-10  Werner Koch  <wk@gnupg.org>
2203
2204         * errors.h (gnupg_error_token): Add new prototype.
2205         (STATUS_ERROR): New.
2206
2207         * mkerrtok: New.
2208         * Makefile.am: Use it to create the new error token function.
2209
2210 2002-06-04  Werner Koch  <wk@gnupg.org>
2211
2212         * maperror.c (map_to_assuan_status): Map Bad_CA_Certificate.
2213
2214 2002-05-23  Werner Koch  <wk@gnupg.org>
2215
2216         * no-pth.c, Makefile.am: Removed.
2217
2218 2002-05-22  Werner Koch  <wk@gnupg.org>
2219
2220         * mkdtemp.c: Replaced byte by unsigned char because it is no longer
2221         defined in gcrypt.h.
2222
2223 2002-05-21  Werner Koch  <wk@gnupg.org>
2224
2225         * maperror.c (map_gcry_err): Add libgcrypt's new S-expression errors.
2226         (map_ksba_err): Add a few mappings.
2227
2228 2002-05-14  Werner Koch  <wk@gnupg.org>
2229
2230         * gettime.c: New.
2231
2232 2002-05-03  Werner Koch  <wk@gnupg.org>
2233
2234         * errors.h: Added STARUS_EXPSIG and STATUS_EXPKEYSIG.
2235
2236 2002-04-15  Werner Koch  <wk@gnupg.org>
2237
2238         * cryptmiss.c: New.
2239
2240 2002-02-14  Werner Koch  <wk@gnupg.org>
2241
2242         * maperror.c: Add more assuan<->gnupg mappings.
2243
2244 2002-02-12  Werner Koch  <wk@gnupg.org>
2245
2246         * fopencookie.c: Dummy function.
2247
2248         * vasprintf.c: New.  Taken from binutils-2.9.1 and dropped all non
2249         ANSI-C stuff.  Merged with asprintf version.
2250
2251         * no-pth.c: New.
2252
2253 2002-01-23  Werner Koch  <wk@gnupg.org>
2254
2255         * mkdtemp.c: Copied from gnupg-1.0.6c and changed to use libgcrypt.
2256
2257 2002-01-19  Werner Koch  <wk@gnupg.org>
2258
2259         * sysutils.c: New.  This is the misc.c file from gnupg 1.0.6 with
2260         the OpenPGP stuff removed.
2261         * sysutils.h: New.
2262
2263 2002-01-15  Werner Koch  <wk@gnupg.org>
2264
2265         * maperror.c: Add mapping for Not_Trusted.
2266
2267 2002-01-11  Werner Koch  <wk@gnupg.org>
2268
2269         * maperror.c (map_assuan_err): Codes for CRL
2270
2271 2002-01-08  Werner Koch  <wk@gnupg.org>
2272
2273         * util.h (spacep): New.
2274
2275 2002-01-02  Werner Koch  <wk@gnupg.org>
2276
2277         * maperror.c (map_to_assuan_status): New.  Merged from ../agent
2278         and ../sm.
2279
2280 2001-12-20  Werner Koch  <wk@gnupg.org>
2281
2282         * maperror.c (map_gcry_err): Add some mappings.
2283
2284 2001-12-18  Werner Koch  <wk@gnupg.org>
2285
2286         * Makefile.am (AM_CPPFLAGS): Include flags for gcrypt and ksba
2287
2288 2001-12-14  Werner Koch  <wk@gnupg.org>
2289
2290         * util.h (digitp, hexdigitp): New ctype like macros.
2291         (atoi_1,atoi_2,atoi_4,xtoi_1,xtoi_2): New.
2292
2293
2294  Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2295            2009, 2010 Free Software Foundation, Inc.
2296
2297  This file is free software; as a special exception the author gives
2298  unlimited permission to copy and/or distribute it, with or without
2299  modifications, as long as this notice is preserved.
2300
2301  This file is distributed in the hope that it will be useful, but
2302  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2303  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.