Minor cleanups.
[gnupg.git] / common / ChangeLog
1 2008-04-07  Werner Koch  <wk@g10code.com>
2
3         * b64enc.c (b64enc_start): Detect PGP mode.
4         (b64enc_finish): Write PGP CRC.
5         * util.h (struct b64state): Add field CRC.
6         * t-b64.c: New.
7
8         * pka.c (get_pka_info): Use xtrymalloc and check result.
9
10 2008-03-25  Werner Koch  <wk@g10code.com>
11
12         * localename.c: Strip all W32 code.  Include w32help.h.
13         (gnupg_messages_locale_name) [W32]: Use the gettext_localename.
14
15 2008-03-17  Werner Koch  <wk@g10code.com>
16
17         * iobuf.c (IOBUF_BUFFER_SIZE): Actually use this macro.
18
19         * simple-pwquery.c (agent_send_all_options): Fix last change.
20
21 2008-03-06  Werner Koch  <wk@g10code.com>
22
23         * simple-pwquery.c (agent_send_all_options): Add support for
24         XAUTHORITY and PINENTRY_USER_DATA.
25
26 2008-02-15  Marcus Brinkmann  <marcus@g10code.de>
27
28         * exechelp.c (gnupg_spawn_process_fd): Add flag DETACHED_PROCESS
29         unconditionally (required for all callers at the moment).
30
31 2008-02-14  Werner Koch  <wk@g10code.com>
32
33         * sysutils.c (gnupg_allow_set_foregound_window): New.
34         (WINVER) [W32]: Define.
35
36 2008-01-31  Werner Koch  <wk@g10code.com>
37
38         * audit.c (audit_print_result): Make sure that the output is
39         always UTF8.
40
41 2008-01-27  Werner Koch  <wk@g10code.com>
42
43         * exechelp.c (gnupg_spawn_process): Add arg FLAGS and changed all
44         callers to pass 0 for it.
45
46 2007-12-13  Werner Koch  <wk@g10code.com>
47
48         * sexputil.c (hash_algo_from_sigval): New.
49         * t-sexputil.c: New.
50         * Makefile.am (module_tests): Add it.
51
52 2007-12-11  Werner Koch  <wk@g10code.com>
53
54         * asshelp.c (send_pinentry_environment): Allow using of old
55         gpg-agents not capabale of the xauthority and pinentry_user_data
56         options.
57
58 2007-12-04  Werner Koch  <wk@g10code.com>
59
60         * Makefile.am (t_helpfile_LDADD, module_maint_tests): New.
61         * t-helpfile.c: New.
62         * helpfile.c: New.
63         * membuf.h (is_membuf_ready, MEMBUF_ZERO): New.
64         * localename.c: New.  Taken from gettext with modifications as done
65         for GpgOL.  Export one new function.
66         * util.h (gnupg_messages_locale_name, gnupg_get_help_string): Added.
67
68         * sysutils.c (gnupg_reopen_std): New.  Taken from ../g10/gpg.c.
69
70 2007-11-27  Werner Koch  <wk@g10code.com>
71
72         * Makefile.am (CLEANFILES): New.
73
74         * homedir.c (dirmngr_socket_name): Use CSIDL_WINDOWS.
75
76 2007-11-15  Werner Koch  <wk@g10code.com>
77
78         * asshelp.c (send_pinentry_environment): Add args XAUTHORITY and
79         PINENTRY_USER_DATA.
80         (start_new_gpg_agent): Ditto.
81
82 2007-11-07  Werner Koch  <wk@g10code.com>
83
84         * status.h: New.
85         * errors.h: Remove.
86
87 2007-11-05  Werner Koch  <wk@g10code.com>
88
89         * audit.c, audit.h: New. 
90         * Makefile.am: Add rules to build audit-events.h.
91         * exaudit.awk: New.
92         * mkstrtable.awk: New.  Taken from libgpg-error.
93
94 2007-10-19  Werner Koch  <wk@g10code.com>
95
96         * i18n.c (i18n_switchto_utf8, i18n_switchback): New.
97
98 2007-10-01  Werner Koch  <wk@g10code.com>
99
100         * sysutils.h (FD2INT, INT2FD): New.
101
102 2007-09-21  Werner Koch  <wk@g10code.com>
103
104         * homedir.c (default_homedir): Make registry work.  Reported by
105         Marc Mutz.
106
107 2007-08-29  Werner Koch  <wk@g10code.com>
108
109         * exechelp.c (gnupg_wait_process): Add arg EXITCODE.  Changed all
110         callers.
111         (gnupg_create_inbound_pipe): New.
112         * util.h (GNUPG_MODULE_NAME_GPGSM, GNUPG_MODULE_NAME_GPG): New.
113         * homedir.c (gnupg_module_name): Add them
114         
115 2007-08-28  Werner Koch  <wk@g10code.com>
116
117         * gettime.c (check_isotime, add_isotime): New.  Originally written
118         for DirMngr by me.
119         (add_days_to_isotime): New.
120         (date2jd, jd2date, days_per_month, days_per_year): New. Taken from
121         my ancient (1988) code used in Wedit (time2.c).
122
123 2007-08-27  Werner Koch  <wk@g10code.com>
124
125         * util.h (GNUPG_MODULE_NAME_CHECK_PATTERN): New.
126         * homedir.c (gnupg_module_name): Add it.
127         * exechelp.c (w32_fd_or_null) [W32]: New.
128         (gnupg_spawn_process_fd): New.
129         (gnupg_wait_process) [W32]: Close the handle after if the process has
130         returned.
131
132 2007-08-22  Werner Koch  <wk@g10code.com>
133
134         Updated estream from libestream.
135         
136         * estream.c (mem_malloc, mem_realloc, mem_free): New.  Use them
137         instead of the ES_MEM_foo.
138         * estream.c (estream_cookie_mem): Remove members DONT_FREE,
139         APPEND_ZERO, PTR and SIZE.  Add MEMORY_LIMIT.  Put GROW into a new
140         FLAGS struct.
141         (es_func_mem_create): Remove APPEND_ZERO, DONT_FREE, PTR and
142         SIZE.  Add MEMORY_LIMIT.
143         (es_func_mem_write, es_func_mem_seek, es_func_mem_destroy): Revamp.
144         (es_open_memstream): Change API to just take a memory limit and a
145         mode argument.  Rename to ..
146         (es_fopenmem): .. this.
147         (HAVE_W32_SYSTEM) [_WIN32]: Define if not defined.
148         (tmpfd) [W32]: Implement directly using the W32 API.
149         (es_fgets): Rewrite without using doreadline.
150
151 2007-08-21  Werner Koch  <wk@g10code.com>
152
153         * sysutils.c (gnupg_tmpfile): New.
154         * t-sysutils.c: New.
155         * Makefile.am (module_tests): Add t-sysutils.
156
157 2007-08-20  Werner Koch  <wk@g10code.com>
158
159         * exechelp.c [W32]: Redefine X_OK to F_OK.
160
161 2007-08-16  Werner Koch  <wk@g10code.com>
162
163         * Makefile.am (t_convert_DEPENDENCIES): Remove
164         ($(PROGRAMS)): Remove.
165         (t_common_ldadd): Use libcommon.a and not the macro.
166
167 2007-08-14  Werner Koch  <wk@g10code.com>
168
169         * homedir.c (dirmngr_socket_name): New.
170
171 2007-08-07  Werner Koch  <wk@g10code.com>
172
173         * tlv.c, tlv.h: Move from ../scd/.
174         * tlv.c (parse_sexp, parse_ber_header): Add ERRSOURCE arg and prefix
175         name with a _.
176         * tlv.h: Use macro to convey ERRSOURCE.
177
178 2007-08-02  Werner Koch  <wk@g10code.com>
179
180         * gc-opt-flags.h: New.
181
182 2007-08-01  Werner Koch  <wk@g10code.com>
183
184         * estream-printf.c (read_dummy_value): Removed as it is useless now.
185         (read_values): Remove check on !vaargs which is not anymore needed
186         and anyway not portable.  Reported by Peter O'Gorman.
187
188 2007-07-16  Werner Koch  <wk@g10code.com>
189
190         * estream.c (es_func_file_create): Clear NO_CLOSE flag.
191
192 2007-07-12  Werner Koch  <wk@g10code.com>
193
194         * sysutils.h (gnupg_fd_t): New.
195         * sysutils.c (translate_sys2libc_fd): Use that type instead of int.
196         (translate_sys2libc_fd_int): New.
197
198 2007-07-09  Werner Koch  <wk@g10code.com>
199
200         * t-gettime.c (test_isotime2epoch): Use time_t and not u32.
201
202 2007-07-05  Werner Koch  <wk@g10code.com>
203
204         * t-gettime.c: New. 
205         * gettime.c (isotime2epoch, epoch2isotime): New.
206
207 2007-07-04  Werner Koch  <wk@g10code.com>
208
209         * estream.c (es_init_do): Do not throw an error if pth has already
210         been initialized.
211
212 2007-06-26  Werner Koch  <wk@g10code.com>
213
214         * Makefile.am ($(PROGRAMS)): New.
215
216         * util.h (init_common_subsystems): Moved to ..
217         * init.h: .. New.
218         * util.h: Include init.h.
219
220         * homedir.c (standard_homedir): New.
221         (default_homedir) [W32]: Reimplemented in terms of
222         standard_homedir.  Fixed memory leak.
223
224 2007-06-25  Werner Koch  <wk@g10code.com>
225
226         * iobuf.c: Add more documentation and slighly restructured macro
227         defintion for better readability.
228         (FILEP_OR_FD): Rename to fp_or_fd_t.
229         (CLOSE_CACHE): Rename to close_cache_t.
230
231         * sysutils.c (translate_sys2libc_fd): New using the code from iobuf.c.
232         * iobuf.c: Include sysutils.h.
233         (iobuf_translate_file_handle): Remove.
234         (translate_file_handle): Use new function.
235
236         * estream-printf.c [TEST]: Header including fixes. 
237         (do_format): Do not append a trailing Nul.  This avoids spurious
238         Nuls in the es_printf output.
239         (estream_vsnprintf, estream_vasprintf): Take this in account.
240
241         * estream.h (struct es__stream): Change FLAGS to a bit structure.
242         (ES__FLAG_WRITING): Replace by a bit from FLAGS.  * estream.c
243         (struct estream_internal): Rename FLAGS to MODEFLAGS so that they
244         are not confused with the estream flags.
245         (es_initialize, es_create): Add arg MODEFLAGS so that we can setup
246         the intial writemode.  Changed all callers to pass them.
247         (es_convert_mode): Set O_BINARY.
248         (es_func_fd_create, es_func_fp_create, es_func_file_create) [W32]:
249         Call setmode if requested.
250         
251 2007-06-24  Werner Koch  <wk@g10code.com>
252
253         * estream.c (do_fpopen, es_fpopen, es_fpopen_nc): New.
254         (es_func_fp_create, es_func_fp_read, es_func_fp_write) 
255         (es_func_fp_seek, es_func_fp_destroy): New.
256
257 2007-06-22  Werner Koch  <wk@g10code.com>
258
259         * estream.c (es_fdopen): Factored code out to..
260         (do_fdopen): .. new.
261         (es_fdopen_nc): New.
262         (estream_cookie_fd): Add field NO_CLOSE. 
263         (es_func_fd_create): Add arg NO_CLOSE and changed all callers.
264         (es_func_fd_destroy): Handle the new flag.
265
266         * homedir.c (gnupg_libexecdir) [W32]: Factor code out to ..
267         (w32_rootdir): .. new.
268         (gnupg_sysconfdir, gnupg_libdir, gnupg_datadir) [W32]: Return
269         name based on w32_rootdir().
270
271 2007-06-21  Werner Koch  <wk@g10code.com>
272
273         * membuf.h (get_membuf_len): New.
274
275         * membuf.c (init_membuf_secure): Really allocate in secure memory.
276         (put_membuf_str): New.
277
278         * ttyio.c (tty_getf): New.
279
280         * util.h (ctrl_t): Declare it here.
281
282         * asshelp.c (start_new_gpg_agent): New.  Based on code from
283         ../sm/call-agent.c
284
285 2007-06-20  Werner Koch  <wk@g10code.com>
286
287         * sysutils.c (gnupg_sleep): New.
288         * sysutils.h [W32]: Remove _sleep wrapper.  Changed all callers to
289         use gnupg_sleep.
290
291         * exechelp.c (build_w32_commandline_copy): New.
292         (build_w32_commandline): Factored some code out to new function
293         and correctly process a PGMNAME with spaces.
294         (gnupg_spawn_process_detached) [W32]: Implement.
295
296 2007-06-14  Werner Koch  <wk@g10code.com>
297
298         * simple-pwquery.h (MAP_SPWQ_ERROR_IMPL): New.
299         (SPWQ_NO_PIN_ENTRY): New.
300         * simple-pwquery.c (simple_pw_set_socket): New.
301         (agent_open): Use it if GPG_AGENT_INFO is not set.
302         (simple_pwquery): Extended to allow returning of otehyr error codes.
303
304         * util.h (GNUPG_MODULE_NAME_AGENT, GNUPG_MODULE_NAME_PINENTRY) 
305         (GNUPG_MODULE_NAME_SCDAEMON, GNUPG_MODULE_NAME_DIRMNGR) 
306         (GNUPG_MODULE_NAME_PROTECT_TOOL): New.
307         * homedir.c (gnupg_module_name): New.
308         (gnupg_bindir): New.
309
310 2007-06-12  Werner Koch  <wk@g10code.com>
311
312         * homedir.c (gnupg_sysconfdir): New.
313         (gnupg_libexecdir): New.  Taken from g10/misc.c:get_libexecdir.
314         (gnupg_datadir): New.
315         (gnupg_libdir): New.
316
317         * http.c (connect_server) [W32]: Do not call init_sockets if
318         HTTP_NO_WSASTARTUP is defined.
319
320         * init.c: New.
321
322         * estream.c (es_init_do): Init stream lock here because we can't
323         use a static initialization with W32pth.
324
325 2007-06-11  Werner Koch  <wk@g10code.com>
326
327         * Makefile.am (t_common_ldadd): Use libcommonstd macro.
328
329 2007-06-06  Werner Koch  <wk@g10code.com>
330
331         * Makefile.am: Include am/cmacros.am.
332
333         * sysutils.h [W32]: Remove prototypes for the registry access.
334         * w32reg.c:  Move to ../jnlib/w32-reg.c.
335
336         * i18n.c (i18n_init): New.
337
338         * simple-gettext.c: Remove.
339
340         * iobuf.c (iobuf_get_filelength): Rename SIZE to EXSIZE to silent
341         shadowing warning.
342
343 2007-06-04  Werner Koch  <wk@g10code.com>
344
345         * http.c [W32]: Include unistd.h also in this case.
346         (write_server) [W32]: Fixed error code.
347         (init_sockets): Fixed syntax error.
348         (cookie_close): Replace close by sock_close macro.
349
350         * estream.c [w32]: Do not init Mutex.
351
352         * Makefile.am (common_sources) [USE_SNS_SRV]: Build srv.c only
353         when needed.
354
355         * ttyio.c (init_ttyfp) [W32]: Do not use TTYFP.
356
357         * util.h: Include ../jnlib/dynload.h.
358
359         * dynload.h:  Move to ../jnlib.
360
361 2007-05-30  Werner Koch  <wk@g10code.com>
362
363         * estream.c (MEM_FREE, MEM_ALLOC, MEM_REALLOC): Prefix with ES_ as
364         windows.h also has such definitions,
365
366 2007-05-15  Werner Koch  <wk@g10code.com>
367
368         * util.h: Do not include gnulib's vasprintf.  Redefine asprintf
369         and vasprintf.
370
371         * xasprintf.c (xasprintf, xtryasprintf): Use estream_vasprintf.
372
373         * estream-printf.h, estream-printf.c: New.  Taken from current
374         libestream SVN.
375         * Makefile.am (common_sources): Add them.
376
377 2007-05-14  Werner Koch  <wk@g10code.com>
378
379         * sexp-parse.h (smklen): New.
380         * sexputil.c: Include sexp-parse.h.
381         (make_simple_sexp_from_hexstr): Replace sprintf by smklen.
382
383 2007-05-07  Werner Koch  <wk@g10code.com>
384
385         * signal.c (got_fatal_signal): Protect SIG from being clobbered by
386         a faulty signal implementaion.  Suggested by James Juran. 
387
388 2007-04-25  Werner Koch  <wk@g10code.com>
389
390         * i18n.h (ngettext): New.
391         * simple-gettext.c (ngettext): New.
392
393 2007-04-20  Werner Koch  <wk@g10code.com>
394
395         * miscellaneous.c (my_gcry_logger, my_gcry_outofcore_handler):
396         Moved from gpg-agent to here.
397         (my_gcry_fatalerror_handler): new.
398         (setup_libgcrypt_logging): New.
399
400 2007-03-19  Werner Koch  <wk@g10code.com>
401
402         * miscellaneous.c (print_hexstring): New.
403         * estream.c (es_fprintf_unlocked): New.
404         (es_write_sanitized): New.
405         (es_write_hexstring): New.
406         (es_write_sanitized_utf8_buffer) [GNUPG_MAJOR_VERSION]: New.
407
408 2007-03-09  David Shaw  <dshaw@jabberwocky.com>
409
410         From STABLE-BRANCH-1-4
411
412         * http.c (do_parse_uri): Remove the hkp port 11371 detection.  We
413         implement hkp in the keyserver handler, and the support here makes
414         it appear like a bad hkp request actually succeeded.
415
416 2007-01-31  Werner Koch  <wk@g10code.com>
417
418         * Makefile.am (t_common_ldadd): Add LIBINCONV and LIBINTL.
419
420 2007-01-25  Werner Koch  <wk@g10code.com>
421
422         * simple-pwquery.c (simple_pwquery): New arg OPT_CHECK.
423
424 2006-12-13  David Shaw  <dshaw@jabberwocky.com>
425
426         * Makefile.am (AM_CPPFLAGS): Include intl/ so we can reference the
427         built-in headers.
428
429 2006-11-23  Werner Koch  <wk@g10code.com>
430
431         * http.c: Include i18n.h
432
433 2006-11-21  Werner Koch  <wk@g10code.com>
434
435         * estream.c: Remove explicit Pth soft mapping diabling becuase it
436         is now done in config.h.
437
438 2006-11-15  Werner Koch  <wk@g10code.com>
439
440         * estream.c: Disabled Pth soft mapping.
441         (my_funopen_hook_ret_t): New.
442         (print_fun_writer): Use it here.
443
444         * iobuf.c (fd_cache_close): Use %d instead of %p for debug output.
445
446 2006-11-03  Werner Koch  <wk@g10code.com>
447
448         * Makefile.am (t_convert_DEPENDENCIES): Add libcommon.  From
449         Gentoo.
450
451 2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
452
453         * Makefile.am (libcommon_a_CFLAGS): Add $(LIBASSUAN_CFLAGS).
454         (libsimple_pwquery_a_CFLAGS): New variable.
455
456 2006-10-20  Werner Koch  <wk@g10code.com>
457
458         * convert.c (hex2bin): New.
459
460 2006-10-17  Werner Koch  <wk@g10code.com>
461
462         * estream.c (struct estream_internal, es_initialize) 
463         (es_deinitialize, print_fun_writer, es_print): New and modified
464         functions to avoid tempfiles for printf style printing. 
465
466         * Makefile.am (libcommonpth_a_SOURCES): New. We now build a secon
467         version of the library with explicit Pth support.
468         * exechelp.c, estream.c: Make use of WITHOUT_GNU_PTH.
469
470 2006-10-08  Werner Koch  <wk@g10code.com>
471
472         * gpgrlhelp.c: Trun all functions into dummies if readline is not
473         available.
474
475 2006-10-06  Werner Koch  <wk@g10code.com>
476
477         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
478
479         * util.h (GNUPG_GCC_A_SENTINEL): Defined for gcc >= 4.
480
481 2006-10-04  David Shaw  <dshaw@jabberwocky.com>
482
483         * gpgrlhelp.c: readline requires stdio.h.
484
485 2006-10-04  Werner Koch  <wk@g10code.com>
486
487         * membuf.c (init_membuf_secure): New.
488         (put_membuf): Make sure that ERRNO is set even if the underlying
489         malloc code does not work properly.
490         (get_membuf): Set ERRNO on error.
491         (get_membuf): Allow to pass LEN as NULL.
492
493 2006-10-02  Werner Koch  <wk@g10code.com>
494
495         * iobuf.c (iobuf_unread): Removed.  This code is not required.
496         Also removed the entire unget buffer stuff.
497
498 2006-09-27  Werner Koch  <wk@g10code.com>
499
500         * util.h: Do not include strsep.h and strpbrk.h.
501         (isascii): Removed as it is now in jnlib.
502
503         * iobuf.c (pop_filter, underflow, iobuf_close): Free the unget
504         buffer.
505
506 2006-09-27  Florian Weimer <fweimer@bfk.de>  (wk)
507         
508         * iobuf.c (iobuf_unread): New.
509
510 2006-09-22  Werner Koch  <wk@g10code.com>
511
512         * i18n.h: Changed license to an all permissive one.
513
514         * ttyio.c (tty_get): We need to use readline too.  Added two more
515         hooks.
516
517 2006-09-21  Werner Koch  <wk@g10code.com>
518
519         * ttyio.c (tty_private_set_rl_hooks): New.
520         (tty_enable_completion, tty_disable_completion): Use a hook to
521         enable readline support.  Now always available.
522         (tty_cleanup_rl_after_signal): New.
523
524         * ttyio.h: Removed readline specific stuff.  Included util.h.
525         * common-defs.h: New.
526
527 2006-09-15  Werner Koch  <wk@g10code.com>
528
529         * convert.c: New.
530         (hexcolon2bin): New.
531         (bin2hex, bin2hexcolon, do_binhex): New.
532         * t-convert.c: New
533
534 2006-09-14  Werner Koch  <wk@g10code.com>
535
536         * util.h (out_of_core): Use new gpg_error_from_syserror function.
537
538         * http.c (init_sockets): Changed it to require 2.2 unless it is
539         build within gnupg 1 where we require 1.1 (and not anymore allow
540         for 1.0).
541
542 2006-09-07  Werner Koch  <wk@g10code.com>
543
544         * exechelp.c (gnupg_spawn_process): Factor out post fork code to ..
545         (do_exec): .. new function.  Allow passing of -1 for the fds.
546         (gnupg_spawn_process): Terminate gcrypt's secure memory in the child.
547         (gnupg_spawn_process_detached): New.
548
549 2006-09-06  Werner Koch  <wk@g10code.com>
550
551         * maperror.c: Removed.
552
553         * util.h (out_of_core): New.
554
555 2006-09-04  Werner Koch  <wk@g10code.com>
556
557         * http.c (http_get_header): New.
558         (capitalize_header_name, store_header): New.
559         (parse_response): Store headers away.
560         (send_request): Return GPG_ERR_NOT_FOUND if connect_server failed.
561         * http.h: New flag HTTP_FLAG_NEED_HEADER.
562
563 2006-08-21  Werner Koch  <wk@g10code.com>
564
565         * Makefile.am (libcommon_a_SOURCES): Added keyserver.h
566
567         * openpgpdefs.h: New.  Stripped from ..g10/packet.h.
568
569 2006-08-16  Werner Koch  <wk@g10code.com>
570
571         * keyserver.h: Moved from ../include to here.
572
573         * http.c: Include srv.h.
574
575         * srv.c, srv.h: New. Taken from GnuPG 1.4
576
577 2006-08-14  Werner Koch  <wk@g10code.com>
578
579         * http.h (struct http_context_s): Moved to implementation.
580         * http.c (http_open): Changed call to return a context.
581         (http_open_document): Ditto.
582         (http_get_read_ptr, http_get_read_ptr, http_get_status_code): New.
583         (do_parse_uri): Replaced strlwr by straight code to ease
584         standalone use of this file.
585         (http_wait_response): Removed arg STATUS_CODE as it is available
586         through an accessor function. Adjusted caller.
587         (http_escape_string): New.
588
589         * estream.c (es_read_line): Renamed to ..
590         (doreadline): .. this.  Changed all callers.
591         (es_read_line): New.  This is theusual limited getline variabnt as
592         used at several places.  Here taken and adjusted from xreadline.c
593         (es_free): New.
594
595 2006-08-11  Werner Koch  <wk@g10code.com>
596
597         * http.c: Major internal changes to optionallly support GNUTLS and
598         ESTREAM.
599         (http_open): Move initialization of the stream ...
600         (send_request): .. here.
601         (http_register_tls_callback): New.
602
603         * estream.c (es_writen): Try to seek only is a seek function has
604         been registered.
605
606 2006-08-09  Werner Koch  <wk@g10code.com>
607
608         * http.c, http.h: New.  Taken from gnupg 1.4.5, merged with
609         changes done for the Dirmngr project (by g10 Code) and cleaned up
610         some stuff.
611         (make_header_line): New. Change all caller to make user of the new
612         * Makefile.am (libcommon_a_SOURCES): Added http.c and http.h.
613
614 2006-05-23  Werner Koch  <wk@g10code.com>
615
616         * gettime.c (isotimestamp): New.
617
618         * ttyio.c (tty_get_ttyname): Posixly correct usage of ctermid.
619
620         * dns-cert.c: New.  Taken from 1.4.3's util/cert.c.
621         * dns-cert.h: New.
622
623 2006-05-22  Werner Koch  <wk@g10code.com>
624
625         * pka.c: New. Taked from 1.4.3.
626         * pka.h: New.
627         * Makefile.am: Added pka.
628
629 2006-05-19  Werner Koch  <wk@g10code.com>
630
631         * yesno.c (answer_is_yes_no_default, answer_is_yes_no_quit):
632         Updated from 1.4.3.
633         (answer_is_okay_cancel): new.  From 1.4.3.
634
635         * miscellaneous.c (match_multistr): New.  Taken from 1.4.3.
636
637         * ttyio.c (tty_enable_completion, tty_disable_completion): New
638         dummy functions.
639         * ttyio.h: Add prototypes and stubs.
640
641 2006-04-19  Werner Koch  <wk@g10code.com>
642
643         * iobuf.c (iobuf_get_fd): New.  Taken from 1.4.3.
644         (iobuf_is_pipe_filename): New.
645         (pop_filter): Made static.
646         (iobuf_skip_rest): New.  Orginal patch by Florian
647         Weimer.  Added new argument PARTIAL.
648         (block_filter): Remove the old gpg indeterminate length mode.
649         (block_filter): Properly handle a partial body stream
650         that ends with a 5-byte length that happens to be zero.
651         (iobuf_set_block_mode, iobuf_in_block_mode): Removed as
652         superfluous.
653         (iobuf_get_filelength): New arg OVERFLOW.
654         (iobuf_get_filelength) [W32]: Use GetFileSizeEx if available
655         * miscellaneous.c (is_file_compressed): Take care of OVERFLOW.
656
657 2006-04-18  Werner Koch  <wk@g10code.com>
658
659         * homedir.c (w32_shgetfolderpath): New.  Taken from gpg 1.4.3.
660         (default_homedir): Use it.
661
662 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
663
664         * signal.c (get_signal_name): Check value of HAVE_DECL_SYS_SIGLIST
665         instead of just if it is defined.
666
667 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
668
669         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
670
671 2005-07-04  Marcus Brinkmann  <marcus@g10code.de>
672
673         * simple-pwquery.h (simple_pwclear): New prototype.
674         * simple-pwquery.c (simple_pwclear): New function.
675
676 2005-06-15  Werner Koch  <wk@g10code.com>
677
678         * miscellaneous.c (make_printable_string): Made P a void*.
679
680         * sexputil.c (keygrip_from_canon_sexp, cmp_simple_canon_sexp):
681         Fixed signed/unsigned pointer mismatch.
682         (make_simple_sexp_from_hexstr): Ditto.  This is all too ugly; I
683         wonder why gcc-4's default is to warn about them and forcing us to
684         use cast the warning away.
685         * iobuf.c (block_filter): Ditto.
686         (iobuf_flush): Ditto.
687         (iobuf_read_line): Ditto.
688         (iobuf_read): Make BUFFER a void *.
689         (iobuf_write): Make BUFFER a const void *.
690         * ttyio.c (tty_print_utf8_string2): Ditto.
691         * estream.c (estream_cookie_mem): Make MEMORY unsigned char*.
692         (es_write): Make BUFFER a void *.
693         (es_writen): Ditto.
694         (es_func_fd_read, es_func_fd_write, es_func_mem_read) 
695         (es_func_mem_write): Ditto.
696         (es_read, es_readn): Ditto.
697         (es_func_mem_write): Made MEMORY_NEW an unsigned char *.
698         * estream.h (es_cookie_read_function_t)
699         (es_cookie_write_function_t): Changed buffer arg to void*.
700
701 2005-06-03  Werner Koch  <wk@g10code.com>
702
703         * estream.c: Use HAVE_CONFIG_H and not USE_CONFIG_H!
704         (es_func_fd_read, es_func_fd_write): Protect against EINTR.
705         
706 2005-06-01  Werner Koch  <wk@g10code.com>
707
708         * Makefile.am (AM_CPPFLAGS): Added.
709
710         * util.h: Add some includes for gnulib.
711         (ttyname, isascii): Define them inline.
712         * fseeko.c, ftello.c: Removed.
713         * strsep.c, mkdtemp.c: Removed.
714         * ttyname.c, isascii.c: Removed.
715
716 2005-05-31  Werner Koch  <wk@g10code.com>
717
718         * dynload.h: s/__inline__/inline/.
719
720 2005-05-13  Werner Koch  <wk@g10code.com>
721
722         * signal.c (got_fatal_signal): Print the signal number if we can't
723         get a name for it.
724         (get_signal_name): Return NULL if no name is available. Fixed
725         conditional for sys_siglist to the correct one.
726
727 2005-04-17  Werner Koch  <wk@g10code.com>
728
729         * sexputil.c (cmp_simple_canon_sexp): New.
730         (make_simple_sexp_from_hexstr): New.
731
732 2005-04-07  Werner Koch  <wk@g10code.com>
733
734         * sexputil.c: New.
735
736 2005-04-11  Marcus Brinkmann  <marcus@g10code.de>
737
738         * simple-pwquery.c (simple_pwquery): Use spwq_secure_free.
739
740 2005-03-03  Werner Koch  <wk@g10code.com>
741
742         * Makefile.am (AM_CFLAGS): Added PTH_CFLAGS.  Noted by Kazu Yamamoto.
743
744 2005-02-25  Werner Koch  <wk@g10code.com>
745
746         * xasprintf.c (xtryasprintf): New.
747
748 2005-01-26  Moritz Schulte  <moritz@g10code.com>
749
750         * Makefile.am (libcommon_a_SOURCES): New source files: estream.c,
751         estream.h.
752         * estream.c, estream.h: New files.
753
754 2005-01-03  Werner Koch  <wk@g10code.com>
755
756         * asshelp.c (send_pinentry_environment): Fixed changed from
757         2004-12-18; cut+paste error for lc-messages.
758
759 2004-12-21  Werner Koch  <wk@g10code.com>
760
761         * simple-pwquery.c (agent_open) [W32]: Implement for W32.
762         (readline) [W32]: Use recv instead of read.
763         (writen) [W32]: Use send instead of write.
764         (my_stpcpy): Define a stpcpy replacement so that this file
765         continues to be self-contained.
766         (agent_send_all_options) [W32]: Don't call ttyname.
767
768 2004-12-21  Marcus Brinkmann  <marcus@g10code.de>
769
770         * simple-pwquery.h (simple_query): Add prototype.
771         * simple-pwquery.c (simple_query): New function.
772
773 2004-12-21  Werner Koch  <wk@g10code.com>
774
775         * signal.c (got_fatal_signal, got_usr_signal)
776         (got_fatal_signal) [DOSISH]: Don't build.
777         * simple-gettext.c: Include sysutils.h 
778
779         * homedir.c: New. Use CSIDL_APPDATA for W32 as the default home
780         directory.
781         * Makefile.am (libcommon_a_SOURCES): Add it.
782         (EXTRA_DIST): Removed mkerror and mkerrtok.
783
784 2004-12-20  Werner Koch  <wk@g10code.com>
785
786         * sysutils.h [W32]: Define sleep.
787         * util.h: Add prototype for mkdtemp.
788
789         * membuf.c (put_membuf): Wipe out buffer after a failed realloc.
790
791 2004-12-19  Werner Koch  <wk@g10code.com>
792
793         * maperror.c (map_assuan_err_with_source): Oops, args were swapped.
794
795 2004-12-18  Werner Koch  <wk@g10code.com>
796
797         * maperror.c (map_assuan_err): Renamed to ..
798         (map_assuan_err_with_source): .. this and add arg SOURCE.c
799         * asshelp.c (send_pinentry_environment, send_one_option): Add arg
800         ERRSOURCE.
801
802 2004-12-15  Werner Koch  <wk@g10code.com>
803
804         * sysutils.h [W32]: Prototypes for registry functions.
805         * w32reg.c: Include sysutils.h
806
807         * simple-pwquery.c [W32]: Dummy code to allow a build.
808
809         * exechelp.c [W32]: Implemented for W32 .
810
811         * ttyname.c: New.
812
813         * asshelp.c (send_one_option): New.
814         (send_pinentry_environment): Cleaned up and made sure that empty
815         values are not send.
816
817 2004-12-07  Werner Koch  <wk@g10code.com>
818
819         * asshelp.c (send_pinentry_environment) [W32]: Do not use ttyname.
820
821 2004-12-06  Werner Koch  <wk@g10code.com>
822
823         * exechelp.h, exechelp.c: New.  Based on code from ../sm/import.c.
824
825 2004-12-03  Werner Koch  <wk@g10code.com>
826
827         * strsep.c: Fixed copyright comments.
828
829 2004-11-26  Werner Koch  <wk@g10code.com>
830
831         * simple-gettext.c: New taken from gnupg 1.3.x
832
833         * simple-pwquery.c [_WIN32]: Include winsock2.h.
834         (agent_open): Disable it until we have our AF_UNIX implementation
835         ready.
836         * fseeko.c, ftello.c: Include sys/types for the sake of W32.
837
838 2004-11-23  Werner Koch  <wk@g10code.com>
839
840         * b64enc.c: Include stdio.h and string.h
841
842 2004-08-18  Werner Koch  <wk@g10code.de>
843
844         * simple-pwquery.c (simple_pwquery): Handle gpg-error style return
845         code for canceled.
846
847 2004-07-20  Werner Koch  <wk@g10code.de>
848
849         * maperror.c: Removed header ksba.h.  Not required anymore.
850
851 2004-06-14  Werner Koch  <wk@gnupg.org>
852
853         * xreadline.c: New.  Based on the iobuf_read_line function.
854
855 2004-05-12  Werner Koch  <wk@gnupg.org>
856
857         * util.h (xtrycalloc_secure,xtrymalloc_secure): New.
858
859 2004-05-11  Werner Koch  <wk@gnupg.org>
860
861         * sysutils.c (disable_core_dumps): Only set the current limit.
862         (enable_core_dumps): New.
863
864 2004-04-13  Werner Koch  <wk@gnupg.org>
865
866         * simple-pwquery.c (copy_and_escape): Relaxed quoting.
867
868 2004-04-05  Werner Koch  <wk@gnupg.org>
869
870         * errors.h (STATUS_NEWSIG): New.
871
872 2004-03-11  Werner Koch  <wk@gnupg.org>
873
874         * dynload.h [__MINGW32__]: Define RTLD_LAZY.
875
876 2004-03-09  Werner Koch  <wk@gnupg.org>
877
878         * maperror.c (map_assuan_err): Map the Locale_Problem item.
879
880 2004-03-03  Werner Koch  <wk@gnupg.org>
881
882         * asshelp.c, asshelp.h: New.
883         (send_pinentry_environment): New. Code taken from ../sm/call-agent.c.
884
885 2004-02-19  Werner Koch  <wk@gnupg.org>
886
887         * simple-pwquery.c (agent_open): Don't mangle INFOSTR.
888
889 2004-02-17  Werner Koch  <wk@gnupg.org>
890
891         * simple-pwquery.c (agent_open): Ignore an empty GPG_AGENT_INFO.
892
893         * errors.h: Added STATUS_IMPORT_OK.
894
895 2004-02-10  Werner Koch  <wk@gnupg.org>
896
897         * b64enc.c: New.  Based on code from ../sm/base64.c.
898
899 2004-01-30  Marcus Brinkmann  <marcus@g10code.de>
900
901         * Makefile.am (libcommon_a_SOURCES): Add xasprintf.c.
902         * miscellaneous.c (xasprintf): Moved to ...
903         * xasprintf (xasprintf): ... here.  New file.
904         This allows to use xasprintf without sucking in gpg-error.
905
906 2004-01-27  Werner Koch  <wk@gnupg.org>
907
908         * sexp-parse.h: New; moved from../agent.
909
910         * util.h (xtoi_4): New.
911
912 2003-12-23  Werner Koch  <wk@gnupg.org>
913
914         * maperror.c (map_assuan_err): Prepared for a new error code.
915
916 2003-12-17  Werner Koch  <wk@gnupg.org>
917
918         * gettime.c (asctimestamp): Add a note on a non-avoidable gcc warning.
919
920         * util.h [!HAVE_VASPRINTF]: Add printf format attribute to the
921         replacement function.
922
923         * miscellaneous.c (xasprintf): New.
924
925 2003-11-14  Werner Koch  <wk@gnupg.org>
926
927         * mkdtemp.c (mkdtemp): Use gcry_create_nonce.
928
929         * cryptmiss.c: Removed.
930
931 2003-11-13  Werner Koch  <wk@gnupg.org>
932
933         * util.h (vasprintf): Also fixed the prototype.
934
935         * vasprintf.c (vasprintf): ARGS should not be a pointer.  Fixed
936         segv on Solaris.  Reported by Andrew J. Schorr.
937
938 2003-11-12  Werner Koch  <wk@gnupg.org>
939
940         * maperror.c (map_ksba_err, map_gcry_err, map_kbx_err): Removed.
941
942 2003-10-31  Werner Koch  <wk@gnupg.org>
943
944         * util.h (gnupg_isotime_t): New.
945         (gnupg_copy_time): New.
946
947         * gettime.c (gnupg_get_isotime): New.
948
949 2003-09-23  Werner Koch  <wk@gnupg.org>
950
951         * iobuf.c (check_special_filename): Replaced is isdigit by digitp
952         to avoid passing negative values and potential locale problems.
953         Problem noted by Christian Biere.
954
955         * util.h (ascii_isspace): New.
956
957 2003-09-18  Werner Koch  <wk@gnupg.org>
958
959         * ttyio.c (tty_fprintf): New.
960         (tty_print_string, tty_print_utf8_string2)
961         (tty_print_utf8_string): Made P argument const byte*.
962
963 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
964
965         * maperror.c (map_ksba_err): Map -1.  Use gpg_err_make to set
966         the error source.
967
968 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
969
970         * dynload.h. New. W32 wrapper around the dynload mechanism.
971         
972 2003-07-15  Werner Koch  <wk@gnupg.org>
973
974         * simple-pwquery.c, simple-pwquery.h:  New; moved from ../agent.  
975         * Makefile.am (libsimple_pwquery_a_LIBADD): New.
976
977 2003-06-25  Werner Koch  <wk@gnupg.org>
978
979         * maperror.c (map_to_assuan_status): Directly map 0 to 0.
980
981 2003-06-17  Werner Koch  <wk@gnupg.org>
982
983         * gettime.c (scan_isodatestr,add_days_to_timestamp,strtimevalue)
984         (strtimestamp,asctimestamp): New.  Code taken from gnupg 1.3.2
985         mischelp.c.
986
987         * yesno.c: New.  Code taken from gnupg 1.3.2 mischelp.c
988
989         * miscellaneous.c: New.
990
991         * util.h: Include utf8conf.h
992
993 2003-06-16  Werner Koch  <wk@gnupg.org>
994
995         * gettime.c (make_timestamp): New.
996
997         * ttyio.c: New. Taken from gnupg 1.2.
998         * ttyio.h: Move from ../include.
999
1000 2003-06-13  Werner Koch  <wk@gnupg.org>
1001
1002         * util.h (seterr): Removed macro.
1003         (xmalloc_secure,xcalloc_secure): New.
1004
1005 2003-06-11  Werner Koch  <wk@gnupg.org>
1006
1007         * iobuf.c (iobuf_writebyte,iobuf_write): Return error code from
1008         iobuf_flush.
1009         (iobuf_writestr): Ditto.
1010
1011 2003-06-10  Werner Koch  <wk@gnupg.org>
1012
1013         * iobuf.c, iobuf.h: New. Taken from current gnupg 1.3 CVS.  Run
1014         indent on it and adjusted error handling to libgpg-error style.
1015         Replaced IOBUF by iobuf_t. Renamed malloc functions.
1016
1017 2003-06-04  Werner Koch  <wk@gnupg.org>
1018
1019         * errors.h: Removed all error codes.  We keep the status codes for
1020         now.
1021         * Makefile.am: Do not create errors.c anymore; remove it from the
1022         sources.
1023
1024         * maperror.c: Don't include error.h.  Change all error codes to
1025         libgpg-error style.
1026         (map_assuan_err): Changed to new Assuan error code convention.
1027         (map_to_assuan_status): Likewise.
1028         (map_gcry_err,map_kbx_err): Not needed.  For now dummy functions.
1029
1030         * membuf.c, membuf.h: New.  Code taken from ../sm/call-agent.h.
1031         * Makefile.am: Added above.
1032
1033 2003-04-29  Werner Koch  <wk@gnupg.org>
1034
1035         * util.h (fopencokokie): Removed prototype and struct.
1036
1037         * fopencookie.c: Removed.
1038
1039         * maperror.c: Use system assuan.h
1040
1041 2002-10-31  Neal H. Walfield  <neal@g10code.de>
1042
1043         * isascii.c: New file.
1044         * putc_unlocked.c: Likewise.
1045
1046 2002-10-28  Neal H. Walfield  <neal@g10code.de>
1047
1048         * signal.c (caught_fatal_sig): Remove superfluous zero
1049         initializer.
1050         (caught_sigusr1): Likewise.
1051
1052 2002-09-04  Neal H. Walfield  <neal@g10code.de>
1053
1054         * vasprintf.c (vasprintf) [va_copy]: Use va_copy.
1055         [!va_copy && __va_copy]: Use __va_copy.
1056         [!va_copy && !__va_copy]: Only now fall back to using memcpy.
1057
1058 2002-08-21  Werner Koch  <wk@gnupg.org>
1059
1060         * errors.h: Added STATUS_IMPORT_PROBLEM.
1061
1062 2002-08-20  Werner Koch  <wk@gnupg.org>
1063
1064         * vasprintf.c: Hack to handle NULL for %s.
1065
1066 2002-08-09  Werner Koch  <wk@gnupg.org>
1067
1068         * signal.c: New. Taken from GnuPG 1.1.91.
1069
1070 2002-07-23  Werner Koch  <wk@gnupg.org>
1071
1072         * util.h (_IO_cookie_io_functions_t): Fixed typo.  Noted by
1073         Richard Lefebvre.
1074
1075 2002-07-22  Werner Koch  <wk@gnupg.org>
1076
1077         * fseeko.c, ftello.c: New.
1078
1079 2002-06-28  Werner Koch  <wk@gnupg.org>
1080
1081         * maperror.c (map_to_assuan_status): Map more errorcodes to Bad
1082         Certificate.
1083
1084 2002-06-26  Werner Koch  <wk@gnupg.org>
1085
1086         * maperror.c (map_to_assuan_status): Map EOF to No_Data_Available.
1087
1088 2002-06-10  Werner Koch  <wk@gnupg.org>
1089
1090         * errors.h (gnupg_error_token): Add new prototype.
1091         (STATUS_ERROR): New.
1092
1093         * mkerrtok: New.
1094         * Makefile.am: Use it to create the new error token function.
1095
1096 2002-06-04  Werner Koch  <wk@gnupg.org>
1097
1098         * maperror.c (map_to_assuan_status): Map Bad_CA_Certificate.
1099
1100 2002-05-23  Werner Koch  <wk@gnupg.org>
1101
1102         * no-pth.c, Makefile.am: Removed.
1103
1104 2002-05-22  Werner Koch  <wk@gnupg.org>
1105
1106         * mkdtemp.c: Replaced byte by unsigned char because it is no longer
1107         defined in gcrypt.h.
1108
1109 2002-05-21  Werner Koch  <wk@gnupg.org>
1110
1111         * maperror.c (map_gcry_err): Add libgcrypt's new S-expression errors.
1112         (map_ksba_err): Add a few mappings.
1113
1114 2002-05-14  Werner Koch  <wk@gnupg.org>
1115
1116         * gettime.c: New.
1117
1118 2002-05-03  Werner Koch  <wk@gnupg.org>
1119
1120         * errors.h: Added STARUS_EXPSIG and STATUS_EXPKEYSIG.
1121
1122 2002-04-15  Werner Koch  <wk@gnupg.org>
1123
1124         * cryptmiss.c: New.
1125
1126 2002-02-14  Werner Koch  <wk@gnupg.org>
1127
1128         * maperror.c: Add more assuan<->gnupg mappings.
1129
1130 2002-02-12  Werner Koch  <wk@gnupg.org>
1131
1132         * fopencookie.c: Dummy function.
1133
1134         * vasprintf.c: New.  Taken from binutils-2.9.1 and dropped all non
1135         ANSI-C stuff.  Merged with asprintf version.
1136
1137         * no-pth.c: New.
1138
1139 2002-01-23  Werner Koch  <wk@gnupg.org>
1140
1141         * mkdtemp.c: Copied from gnupg-1.0.6c and changed to use libgcrypt.
1142
1143 2002-01-19  Werner Koch  <wk@gnupg.org>
1144
1145         * sysutils.c: New.  This is the misc.c file from gnupg 1.0.6 with
1146         the OpenPGP stuff removed.
1147         * sysutils.h: New.
1148         
1149 2002-01-15  Werner Koch  <wk@gnupg.org>
1150
1151         * maperror.c: Add mapping for Not_Trusted. 
1152
1153 2002-01-11  Werner Koch  <wk@gnupg.org>
1154
1155         * maperror.c (map_assuan_err): Codes for CRL
1156
1157 2002-01-08  Werner Koch  <wk@gnupg.org>
1158
1159         * util.h (spacep): New.
1160
1161 2002-01-02  Werner Koch  <wk@gnupg.org>
1162
1163         * maperror.c (map_to_assuan_status): New.  Merged from ../agent
1164         and ../sm.
1165
1166 2001-12-20  Werner Koch  <wk@gnupg.org>
1167
1168         * maperror.c (map_gcry_err): Add some mappings.
1169
1170 2001-12-18  Werner Koch  <wk@gnupg.org>
1171
1172         * Makefile.am (AM_CPPFLAGS): Include flags for gcrypt and ksba
1173
1174 2001-12-14  Werner Koch  <wk@gnupg.org>
1175
1176         * util.h (digitp, hexdigitp): New ctype like macros.
1177         (atoi_1,atoi_2,atoi_4,xtoi_1,xtoi_2): New.
1178         
1179         
1180  Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007,
1181            2008 Free Software Foundation, Inc.
1182
1183  This file is free software; as a special exception the author gives
1184  unlimited permission to copy and/or distribute it, with or without
1185  modifications, as long as this notice is preserved.
1186
1187  This file is distributed in the hope that it will be useful, but
1188  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1189  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1190                 
1191