New command SETTITLE.
[pinentry.git] / ChangeLog
1 2008-11-12  Ludovic Rousseau <ludovic.rousseau@gmail.com>  (wk)
2
3         * pinentry/pinentry.h (struct pinentry): Add field TITLE.
4         * pinentry/pinentry.c (cmd_settitle): New.
5         (register_commands): Add command SETTITLE.
6         * gtk+-2/pinentry-gtk-2.c (create_window): Set the title.
7
8 2008-10-17  Werner Koch  <wk@g10code.com>
9
10         * secmem/memory.h: Add C++ extern declaration.
11
12         * secmem/secmem.c (secmem_get_max_size): New.
13
14 2008-07-25  Marcus Brinkmann  <marcus@ulysses.g10code.com>
15
16         * qt4/Makefile.am (DISTCLEANFILES): Rename to CLEANFILES.
17         (BUILD_SOURCES): New.
18
19 2008-07-25  Marcus Brinkmann  <marcus@g10code.de>
20
21         * configure.ac: Prefer pinentry gtk2 over gtk.  Now also choose
22         qt4 (after qt and before w32 native).
23         * README: Document Qt.
24
25 2008-07-24  Marcus Brinkmann  <marcus@g10code.de>
26
27         * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp, qt4/main.cpp,
28         qt4/Makefile.am: New files.
29         * configure.ac: Add check for Qt4.
30         (AC_CONFIG_FILES): Add qt4/Makefile.am.
31         * Makefile.am (pinentry_qt4): New variable.
32         (SUBDIRS): Add ${pinentry_qt4}.
33
34 2008-07-23  Werner Koch  <wk@g10code.com>
35
36         * secmem/secmem.c (secmem_init): Fix apostrophe in error
37         message. Reported by Petr Uzel.
38
39 2008-05-05  Marcus Brinkmann  <marcus@ulysses.g10code.com>
40
41         * gtk+-2/gtksecentry.c (GMALLOC_SIZE): New symbol.
42         (g_malloc, g_malloc0, g_realloc): Use GMALLOC_SIZE instead of
43         gulong for size attribute.
44
45 2008-03-03  Marcus Brinkmann  <marcus@g10code.de>
46
47         * gtk+-2/pinentry-gtk-2.c (create_window): Install realize callback.
48         (ungrab_keyboard): Unmake dialog transient.
49         (make_transient): New function.
50         Submitted by Joachim Breitner.
51
52 2008-02-15  Werner Koch  <wk@g10code.com>
53
54         Release 0.7.4.
55
56 2008-02-14  Werner Koch  <wk@g10code.com>
57
58         * configure.ac: Check for -Wno-pointer-sign.
59
60         * pinentry/pinentry.c (cmd_getinfo): New.
61         (register_commands): Register it.
62
63 2008-01-02  Marcus Brinkmann  <marcus@g10code.de>
64
65         * configure.ac: Use PKG_CONFIG instead of PKGCONFIG and
66         pkg-config.  Use AC_PATH_PROG instead of AC_CHECK_PROG.
67
68         * Makefile.am (install-exec-local): Add exe extension to link.
69
70 2007-11-29  Marcus Brinkmann  <marcus@g10code.de>
71
72         Released 0.7.4.
73
74 2007-11-19  Werner Koch  <wk@g10code.com>
75
76         * doc/pinentry.texi (Protocol): Typo fixes by Bernhard Herzog.
77         Describe SETQUALITYBAR_TT.
78
79 2007-11-19  Bernhard Herzog  <bernhard.herzog@intevation.de>  (wk)
80
81         * qt/pinentrydialog.cpp (PinEntryDialog): Fixed crash
82         
83 2007-11-19  Werner Koch  <wk@g10code.com>
84
85         * gtk+-2/pinentry-gtk-2.c (create_window): Use again map-event and
86         unmap-event as this works on my setup far more reliable than
87         expose-event/no-expose-event.
88
89         * gtk+-2/gtksecentry.c (get_cursor_time): s/time/blinktime/ t
90         avoid shadowing warning.
91
92         * pinentry/pinentry.h (struct pinentry): Change QUALITY_BAR to a
93         char ptr.
94         (struct pinentry): Add QUALITY_BAR_TT.
95         * pinentry/pinentry.c (cmd_setqualitybar): Allow to set a label text.
96         (cmd_setqualitybar_tt): New.
97         * gtk+-2/pinentry-gtk-2.c (create_window): Take label and tooltip
98         from global.
99         * qt/pinentrydialog.h (setQualityBar, setQualityBarTT)
100         (_quality_bar_label): New.
101         * qt/pinentrydialog.cpp (setQualityBar, setQualityBarTT): New.
102         (PinEntryDialog): Remove setting of tooltip.
103
104         * qt/main.cpp (qt_cmd_handler): Propagate quality bar label and tootip.
105
106 2007-11-19  Bernhard Herzog  <bernhard.herzog@intevation.de>  (wk)
107
108         * qt/pinentrydialog.cpp (PinEntryDialog): Move the quality bar
109         below the text entry and align them properly.  Show a tooltip.
110         * gtk+-2/pinentry-gtk-2.c (create_window): Ditto.  Don't let it
111         change its height.
112         (QUALITYBAR_EMPTY_TEXT): New.
113
114 2007-09-18  Werner Koch  <wk@g10code.com>
115
116         * qt/secqlineedit.h (SecQLineEdit): New signal textModified.
117         * qt/secqlineedit.cpp (finishChange): Emit it.
118         * qt/pinentrydialog.cpp (setPinentryInfo): New.
119         (PinEntryDialog): Add arg ENABLE_QUALITY_BAR.
120         * qt/pinentrydialog.h (setPinentryInfo): New.
121         (PinEntryDialog): Add arg ENABLE_QUALITY_BAR.
122
123         * pinentry/pinentry.h (struct pinentry): Add member QUALITY_BAR
124         and CTX_ASSUAN.
125         * pinentry/pinentry.c (cmd_setqualitybar): New.
126         (copy_and_escape): New.
127         (pinentry_inq_quality): New.
128
129 2007-07-09  Werner Koch  <wk@g10code.com>
130
131         * doc/pinentry.texi: Fixed direntry syntax.
132
133         * configure.ac: Add --without-libcap.  From the Gentoo patch archive.
134
135         * gtk+-2/pinentry-gtk-2.c (create_window): Use expose-event
136         instead of map-event.  From Alon Bar-Lev.
137
138 2007-07-06  Werner Koch  <wk@g10code.com>
139
140         Released 0.7.3.
141
142         * config.sub, config.guess: Updated from current Savannah CVS.
143
144 2007-06-27  Werner Koch  <wk@g10code.com>
145
146         * w32/main.c: Revamped the SetFocus stuff.  It is all not that easy.
147
148 2007-06-26  Werner Koch  <wk@g10code.com>
149
150         * w32/Makefile.am (pinentry_w32_LDFLAGS): Add -mconsole again.
151
152         * w32/main.c (dlg_proc): Set focus.
153         (resize_button): New.  No code yet.
154         (dlg_proc): Call it for the buttons.
155         (w32_cmd_handler): Restore old foreground window.
156
157 2007-06-20  Werner Koch  <wk@g10code.com>
158
159         * w32/Makefile.am (pinentry_w32_LDFLAGS): Remove -mconsole.
160
161         * w32/main.c (wchar_to_utf8): New.
162         (ok_button_clicked): Use it.
163         (utf8_to_wchar): New.
164         (set_dlg_item_text): New.
165         (dlg_proc): Use new function so that we are able to correctly
166         display all prompts.
167         (main): Load LockSetForegroundWindow.
168         (dlg_proc): Call LockSetForegroundWindow via its fnc ptr.
169         (center_window): New.  Taken from GPGol.
170         (dlg_proc): Call it.
171         (w32_cmd_handler): Revamped the confirm mode.
172
173 2007-06-18  Werner Koch  <wk@g10code.com>
174
175         * w32/main.c (dlg_proc): Call LockSetForegroundWindow.
176
177         * Makefile.am (signed-dist, %.sig): Remove.
178
179         * autogen.sh: Modernized.
180
181 2007-05-10  Marcus Brinkmann  <marcus@g10code.de>
182
183         * pinentry/pinentry.h (pinentry_color_t): New type.
184         (struct pinentry): New members COLOR_FG, COLOR_FG_BRIGHT,
185         COLOR_BG, COLOR_SO.
186         * pinentry/pinentry.c (pinentry_parse_opts): Support new option --colors.
187         (parse_color): New function.
188         * pinentry/pinentry-curses.c (USE_COLORS): New macro.
189         (pinentry_color): New static variable.
190         (dialog_create): Redo color management.
191
192         * pinentry/pinentry-curses.c (dialog_create): Re-add calculation
193         of cancel button position.  Adjust calculation of OK button
194         position if it is the only one used.
195
196 2007-04-13  Marcus Brinkmann  <marcus@g10code.de>
197
198         * qt/secqlineedit.h (SecQLineEdit::contextMenuEvent,
199         SecQLineEdit::createPopupMenu): Remove prototype.
200         * qt/secqlineedit.cpp (SecQLineEdit::contextMenuEvent,
201         SecQLineEdit::createPopupMenu): Remove implementation.
202         Submitted by Tobias Koenig <tokoe@kde.org>.
203
204 2007-02-14  Werner Koch  <wk@g10code.com>
205
206         * pinentry/pinentry.h (struct pinentry): Add TOUCH_FILE.
207         * pinentry/pinentry.c (option_handler): New option "touch-file".
208         (pinentry_have_display): Ignore an empty DISPLAY.
209         * pinentry/pinentry-curses.c (do_touch_file): New.
210         (curses_cmd_handler): Call it.
211         * configure.ac: Check for utime.h.
212
213 2007-01-24  Werner Koch  <wk@g10code.com>
214
215         * pinentry/pinentry.c (cmd_message): New.
216         (cmd_confirm): New command option --one-button.
217         (cmd_getpin): Zeroise ONE_BUTTON.
218         * pinentry/pinentry.h (struct pinentry): Add field ONE_BUTTON.
219         * gtk/pinentry-gtk.c (create_window): Take care of new option.
220         * gtk+-2/pinentry-gtk-2.c (create_window): Ditto.
221         * pinentry/pinentry-curses.c (dialog_create): Ditto.
222         (dialog_create, dialog_switch_pos): Allow CANCEL to be optional.
223
224 2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
225
226         * secmem/secmem.c (init_pool): Close FD after establishing the
227         mapping.
228
229 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
230
231         * configure.ac (PINENTRY_GTK): Error out if iconv is not found but
232         needed.
233
234         * config.rpath: New file from gettext.  Needed by iconv.m4.
235
236 2005-07-11  Marcus Brinkmann  <marcus@g10code.de>
237
238         * pinentry/pinentry-curses.c (dialog_switch_pos): Set the cursor
239         state to invisible before moving around.  Move the cursor to the
240         beginning of the dialog buttons for accessibility.
241
242 2005-06-16  Marcus Brinkmann  <marcus@g10code.de>
243
244         * pinentry/pinentry-curses.c (dialog_run): Only convert pin if a
245         pin actually exists.
246
247 2005-01-27  Werner Koch  <wk@g10code.com>
248
249         Released 0.7.2.
250         
251         * gtk+-2/Makefile.am: Removed padlock-keyhole.xpm.
252
253         * configure.ac: Use AC_GNU_SOURCE instead of the custom define.
254         Prefer gtk2 pinentry over qt.
255
256 2005-01-21  Marcus Brinkmann  <marcus@g10code.de>
257
258         * doc/pinentry.texi: Fix spelling errors.
259         Submitted by Ville Skytt√§.
260
261 2004-12-23  Werner Koch  <wk@g10code.com>
262
263         * w32/pinentry-w32.rc: Remove the default texts for description,
264         prompt and error.  Make it system modal.  Enlarge the description
265         field.
266
267 2004-12-22  Timo Schulz  <twoaday@g10code.com>
268
269         * w32/main.c: Remove all helper functions and use a callback
270         to set the dialog items directly.
271         (dlg_proc): Set 'result' to -1 to indicate cancel.
272         (ok_button_clicked): Adjusted. Set 'result' to the len of
273         the PIN to indicate success.
274         
275 2004-12-22  Werner Koch  <wk@g10code.com>
276
277         * w32/main.c: Simplified.
278         * w32/dialog.h, w32/dialog.c, w32/controller.h, w32/controller.c:
279         Removed
280         
281         * w32/resource.h, w32/pinentry-w32.rc, w32/main.c, w32/dialog.h
282         * w32/dialog.c, w32/controller.h, w32/controller.c
283         * w32/Makefile.am: New.  Based on Timo's work.
284
285         Update to automake 1.9.
286         
287         * autogen.sh (configure_ac): Add --build-w32 option.
288         * Makefile.am: Support for the W32 pinentry. 
289         * configure.ac: Ditto.  Reformatted some error messages.
290         Define the usual conditionals for W32.
291         Check for a couple of more usually required headers.
292
293         * pinentry/pinentry.h (sleep) [W32]: New.
294
295         * pinentry/pinentry.c: Include langinfo.h only if available.
296         (pinentry_loop) [DOSISH]: Don't do uid check.
297
298         * secmem/util.c [DOSISH]: Disable UID stuff.
299         
300 2004-09-27  Marcus Brinkmann  <marcus@g10code.de>
301
302         * acinclude.m4 (IU_LIB_NCURSES, IU_LIB_CURSES, IU_LIB_TERMCAP):
303         Moved to m4/curses.m4.
304         (AM_ICONV): Moved to m4/iconv.m4.
305         (AM_PATH_GLIB): Moved to m4/glib.m4.
306         (QT_FIND_FILE, QT_PATH_MOC, QT_PATH_X, QT_PRINT_PROGRAM,
307         QT_CHECK_VERSION, QT_PATH_1_3, QT_PATH, QT_CHECK_COMPILER_FLAG,
308         QT_REMOVE_FORBIDDEN, QT_VALIDIFY_CXXFLAGS, QT_CHECK_COMPILERS,
309         QT_CHECK_RPATH, QT_CHECK_LIBPTHREAD, QT_CHECK_PTHREAD_OPTION,
310         QT_CHECK_THREADING): Move to m4/qt.m4.
311
312 2004-09-21  Marcus Brinkmann  <marcus@g10code.de>
313
314         * qt/Makefile.am (pinentry_qt_LDFLAGS): Add $(QT_RPATH).
315         Requested by Leo Savernik <l.savernik@aon.at>.
316
317 2004-09-02  Marcus Brinkmann  <marcus@g10code.de>
318
319         * gtk+-2/padlock-keyhole.xpm: File removed.
320         * gtk+-2/pinentry-gtk-2.c (create_window): Use stock icon.
321         * gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c: Fix copyright notice.
322
323         Submitted by Albrecht Dress albrecht.dress@arcor.de.
324
325 2004-08-17  Marcus Brinkmann  <marcus@g10code.de>
326
327         * configure.ac: Invoke AC_PROG_LN_S.
328         (PINENTRY_DEFAULT): New variable.  Substitute it.  Fail if no
329         default can be determined.
330         * Makefile.am (install-exec-local): Install pinentry default link.
331
332         * configure.ac: Check for Gtk+-2.
333         * gtk+-2: New directory with gtk+-2 pinentry.
334         * gtk+-2/Makefile.am, gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c,
335         gtk+-2/pinentry-gtk-2.c, gtk+-2/padlock-keyhole.xpm: New files.
336         * Makefile.am (pinentry_gtk_2): New variable.
337         (SUBDIRS): Add pinentry_gtk_2.
338
339         Submitted by Albrecht Dress albrecht.dress@arcor.de.
340         
341 2004-08-04  Werner Koch  <wk@g10code.de>
342
343         * pinentry/pinentry.c (usage): Print help to stdout.
344
345 2004-07-30  Moritz Schulte  <moritz@g10code.com>
346
347         * qt/Makefile.am (ncurses_include): Removed
348         -I$(top_srcdir)/pinentry ...
349         (AM_CPPFLAGS): ... added: -I$(top_srcdir)/pinentry.  Thanks to
350         Peter Eisentraut.
351
352         * pinentry/pinentry.c (pinentry_utf8_to_local): Declare INPUT
353         const.
354         (pinentry_local_to_utf8): Likewise.
355         (pinentry_utf8_to_local, pinentry_local_to_utf8): Compile only, if
356         either Curses or GTK+ support is enabled.
357         * configure.ac: Do also check for libiconv when the GTK+ version
358         of pinentry is to be build.  Define PINENTRY_CURSES, PINENTRY_GTK,
359         PINENTRY_QT depending on which versions of pinentry should be
360         build.
361
362 2004-05-21  Marcus Brinkmann  <marcus@g10code.de>
363
364         * acinclude.m4 (QT_CHECK_DIRECT): Removed.
365         (QT_PATH_1_3): Do never invoke QT_CHECK_DIRECT.
366
367 2004-04-21  Werner Koch  <wk@gnupg.org>
368
369         Released 0.7.1.
370
371 2004-04-20  Werner Koch  <wk@gnupg.org>
372
373         * secmem/secmem.c [!ORIGINAL_GPG_VERSION]: Include util.h for some
374         typedefs and protos.
375         (secmem_free, secmem_term): Use wipememory2 instead of memset.
376
377         * autogen.sh (configure_ac): Fixed version check (s/==/=/).
378
379 2004-04-02  Thomas Schwinge  <schwinge@nic-nac-project.de>
380
381         * autogen.sh: Added ACLOCAL_FLAGS.
382
383 2004-02-23  Marcus Brinkmann  <marcus@g10code.de>
384
385         * qt/main.cpp: Include "pinentry.h", not <pinentry.h>.
386
387 2004-01-30  Werner Koch  <wk@gnupg.org>
388
389         * configure.ac (fopencookie): Remove that test.
390
391 2004-01-28  Moritz Schulte  <mo@g10code.com>
392
393         * gtk/gtksecentry.c:
394         (gtk_secure_entry_key_press): Treat GDK_KP_Enter just like
395         GDK_Return.
396
397 2004-01-18  Marcus Brinkmann  <marcus@g10code.de>
398
399         * qt/secqstring.cpp: Do not include "private/qunicodetables_p.h".
400         (isRightToLeft): De-optimize direction query.
401
402         * qt/secqinternal_p.h, qt/secqinternal.cpp: New files.
403         * qt/Makefile.am (pinentry_qt_SOURCES): Add secqinternal_p.h
404         and secqinternal.cpp.
405         (EXTRA_DIST): Add README.SecQ.
406         * qt/secqlineedit.cpp: Include "secqinternal_p.h".
407         (drawContents): Use SecQSharedDoubleBuffer.
408
409 2004-01-02  Werner Koch  <wk@gnupg.org>
410
411         * configure.ac: Early check for a c++ compiler.
412
413 2003-12-23  Werner Koch  <wk@gnupg.org>
414
415         Released 0.7.0.
416
417         Added Manifest files to all directories.
418
419 2003-12-22  Werner Koch  <wk@gnupg.org>
420
421         * qt/main.cpp: Include errno.h.
422         (main): Translate the --display option to -display, so that the Qt
423         init code can grasp it.
424
425         * doc/ChangeLog: Removed and merged with this file.
426         * doc/pinentry.texi: Cleaned up.
427         * doc/fdl.texi: Removed.
428
429         * pinentry/pinentry.h (struct pinentry): Added LOCALE_ERR.
430         * gtk/pinentry-gtk.c (button_clicked): Set the LOCAE_ERR flag.
431         * pinentry/pinentry-curses.c (dialog_run): Ditto.
432         * pinentry/pinentry.c (cmd_getpin, cmd_confirm): Check this flag.
433         (pinentry_local_to_utf8): Release the correct buffer in the error
434         case. Print diagnostics.
435         (pinentry_utf8_to_local): Print diagnostics.
436         (pinentry_parse_opts): Make short options work.
437         (pinentry_utf8_to_local): Pass nl_langinfo to iconv_open.
438
439         * gtk/pinentry-gtk.c (button_clicked): Use the right value as
440         input for the conversion.
441
442         * pinentry/pinentry.c: New variable THIS_PGMNAME.
443         (pinentry_init): Add arg PGMNAME and store it.  Use it at all
444         marked placed instead of the constant "pinentry".
445         (usage): Use it here too.
446         * curses/pinentry-curses.c (main): Call pinentry_init with our name. 
447         * qt/main.cpp (main): Ditto.
448         * gtk/pinentry-gtk.c (main): Ditto. 
449
450         * configure.ac: Check for mmap.
451
452         * secmem/util.h (wipememory2,wipememory,wipe): New.
453         * secmem/util.c (wipe): Removed.
454         * secmem/util.c (lower_privs, raise_privs): Commented out.
455
456         * pinentry/pinentry.c (pinentry_loop): Add paranoia check for
457         dropped privs.
458
459         * secmem/secmem.c (lock_pool): Cleanup syntax of cpp directives.
460
461         * gtk/pinentry-gtk.c (main): Print package name in the version line.
462         * curses/pinentry-curses.c (main): Ditto.
463         * qt/main.cpp (main): Ditto. Fixed typo.
464
465         * gtk/pinentry-gtk.c: Include memory.h.
466         
467 2003-12-20  Marcus Brinkmann  <marcus@g10code.de>
468
469         * pinentry/pinentry.h (struct pinentry): New member PARENT_WID.
470         * pinentry/pinentry.c (pinentry): Add new member here.
471         (usage): Add --parent-wid.
472         (pinentry_parse_opts): Add case for "parent-wid".
473         (option_handler): Same here.
474
475 2003-12-19  Marcus Brinkmann  <marcus@g10code.de>
476
477         * pinentry/pinentry.c (cmd_setcancel): Use strcpy_escaped.
478         (cmd_setok): Likewise.
479         (cmd_setprompt): Likewise.
480         (pinentry_utf8_to_local): Don't use
481         nl_langinfo, but just lc_ctype directly.
482         * pinentry/pinentry.c (cmd_getpin): Do not convert passphrase to
483         UTF-8 here.
484         * gtk/pinentry-gtk.c (button_clicked): Convert passphrase to UTF8
485         here.
486         * pinentry/pinentry-curses.c (dialog_run): Likewise.
487
488 2003-12-14  Marcus Brinkmann  <marcus@g10code.de>
489
490         * pinentry/pinentry.c (pinentry_init): Register secmem_term as
491         atexit function.  Set assuan malloc hooks to secmem.
492         (pinentry_parse_opts): Add break statement to silence gcc warning.
493         * pinentry/pinentry.c (cmd_getpin): If canceled, release and clear
494         PINENTRY->pin nevertheless.
495
496         * acinclude.m4 (qt_incdirs): Add /usr/include/qt3.
497         * qt/Makefile.am (pinentry_qt_SOURCES): Remove cppmemory.h,
498         cppmemory.cpp, pinentrycontroller.h, pinentrycontroller.cpp.
499         (nodist_pinentry_qt_SOURCES): Remove pinentrycontroller.moc.cpp.
500         (libcurses): Move ../pinentry/libpinentry.a from here to ...
501         (pinentry_qt_LDADD): ... here.  Change order a bit to make it
502         work.
503         * qt/cppmemory.h, qt/cppmemory.cpp, qt/pinentrycontroller.h,
504         qt/pinentrycontroller.cpp: Files removed.
505         * qt/secqstring.h, qt/secqstring.cpp, secqlineedit.h,
506         secqlineedit.cpp: New files.
507         * qt/Makefile.am (pinentry_qt_SOURCES): Add secqstring.h,
508         secqstring.cpp, secqlineedit.h, and secqlineedit.cpp.
509         (nodist_pinentry_qt_SOURCES): Add secqlineedit.moc.cpp.
510         * qt/main.cpp: Do not include "memory.h" or "secmem-util.h", nor
511         <new> or "pinentrycontroller.h".  Include <qapplication.h>,
512         <qmessagebox.h>, <qwidget.h> and "secqstring.h".  Always include
513         <pinentry.h>.
514         [USE_KDE]: Remove all instances.
515         (curses_main): Function removed.
516         (my_new_handler): Likewise.
517         (qt_main): Likewise.
518         (qt_cmd_handler): New function.
519         (pinentry_cmd_handler): Define always (to qt_cmd_handler).
520         (main): Rewritten.
521         * qt/pinentrydialog.cpp: Do not include <qlineedit.h>, but
522         "secqlineedit.h".
523         (PinEntryDialog::PinEntryDialog): Make _edit a SecQLineEdit
524         object.  Connect accepted SIGNAL to accept SLOT, and rejected
525         SIGNAL to reject SLOT.
526         (PinEntryDialog::setText): Make argument SecQString rather than
527         QString.
528         (PinEntryDialog::text): Likewise for return value.
529         * qt/pinentrydialog.h: Declare SecQString and SecQLineEdit classes.
530         (class PinEntryDialog): Disable property text (for now).  Adjust
531         argument of setText and return value of text, as well as type of
532         _edit.  
533
534 2003-12-09  Werner Koch  <wk@gnupg.org>
535
536         * README.CVS: New.
537         * Makefile.am (EXTRA_DIST): Add README.CVS
538         (ACLOCAL_AMFLAGS): New.
539         * configure.ac: Added min_automake_versions.
540         * autogen.sh: Revamped.
541
542 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
543
544         * configure.ac: Version 0.6.10-cvs
545
546 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
547
548         * configure.ac: Version 0.6.9
549         * qt/Makefile.am: Added moc files to DISTCLEANFILES
550         * qt/pinentrycontroller.cpp: Dont spew assuan debug stuff out on stderr.
551
552 2003-03-26  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
553
554         * qt/cppmemory.cpp, qt/main.cpp: Only override array allocation
555           operators. This should take care of the reported memory-problems
556           and even make pinentry-qt use a bit less memory.
557
558 2003-02-15  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
559
560         * qt/pinentrydialog.h, qt/pinentrydialog.cpp: Added icons 
561           for error/non-error messages.
562
563 2003-02-07  Marcus Brinkmann  <marcus@g10code.de>
564
565         Released 0.6.8.
566
567 2003-02-04  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
568
569         * qt/main.cpp: Work around '--display' option. This fixes 
570           the pinentry-qt problem reported by several people lately.
571
572 2003-01-24  Werner Koch  <wk@gnupg.org>
573
574         * autogen.sh: Print a hint to use maintainer mode.
575
576 2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
577
578         * pinentry/pinentry-curses.c (collect_line): New function.
579         (COPY_OUT, MAKE_BUTTON): New macros.
580         (dialog_create): Rewrite the initializing code and the description
581         calculation routine with word wrapping.
582
583 2002-11-20  Werner Koch  <wk@gnupg.org>
584
585         Released 0.6.7.
586
587         * pinentry/pinentry-curses.c (dialog_create): Better truncate
588         lines than to go into an infinite loop.  We need to implement word
589         wrap.
590         (dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning.
591
592 2002-11-12  Werner Koch  <wk@gnupg.org>
593
594         * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config
595         to version 2002-11-08.
596
597 2002-11-09  Werner Koch  <wk@gnupg.org>
598
599         Released 0.6.6.
600
601 2002-11-08  Werner Koch  <wk@gnupg.org>
602
603         * pinentry/pinentry-curses.c (convert_utf8_string): Renamed to 
604         * pinentry/pinentry.c (pinentry_utf8_to_local): this. Changed
605         callers.
606         (pinentry_local_to_utf8): New.
607         (cmd_getpin): Convert result back to UTF-8.
608         * gtk/pinentry-gtk.c (create_utf8_label): New.
609         (create_window): Use it here to set the prompts.
610
611 2002-11-06  Werner Koch  <wk@gnupg.org>
612
613         * pinentry/pinentry-curses.c (dialog_run): Fixed retrun value tests
614         for fopen.
615
616 2002-11-05  Werner Koch  <wk@gnupg.org>
617
618         * secmem/util.c (init_uids): Make it a prototype.
619
620         * gtk/pinentry-gtk.c (enter_callback): Changed argument name to
621         avoid shadowing warning.
622         (create_window): Removed unused variable I.
623         (ok): Not used, commented.
624
625         * pinentry/pinentry.c: Include headers for getpid and sleep
626         prototypes.
627
628         * secmem/util.h: Correctly declare functions taking no args. 
629
630         * gtk/pinentry-gtk.c: Move gtk headers to the top to avoid
631         compiler warnings about shadowing index etc.
632
633         * curses/pinentry-curses.c: Include stdio.h for the printf prototype.
634
635         * pinentry/pinentry-curses.c (dialog_switch_pos): Return a value.
636
637         * pinentry/pinentry.c (pinentry_have_display): New.
638         (pinentry_setbufferlen): Must return a value. Fixed documentation.
639         (usage): Print a question mark as a substitue for the program name.
640
641         * gtk/pinentry-gtk.c (main): use it here instead of getenv().
642         * qt/main.cpp (main): Ditto.
643
644 2002-10-11  Werner Koch  <wk@gnupg.org>
645
646         * configure.ac, Makefile.am: Added doc/ and tests for makeinfo
647
648         * doc/pinentry.texi, doc/Makefile.am: New.
649         * doc/gpl.texi, doc/fdl.texi: Added these standard files.
650
651 2002-09-30  Werner Koch  <wk@gnupg.org>
652
653         Released 0.6.5.
654         
655         * qt/pinentrycontroller.cpp (optionHandler): Make sure that a
656         value is returned.
657         * configure.ac: Use -Wall also for C++.
658
659 2002-08-19  Steffen Hansen  <steffen@hrhansen.dk>
660
661         * Relased 0.6.4.
662
663 2002-08-11  Steffen Hansen  <steffen@hrhansen.dk>
664
665         * Adapted pinentry-qt to new CONFIRM spec.
666
667 2002-06-26  Werner Koch  <wk@gnupg.org>
668
669         Release 0.6.3.
670
671 2002-05-24  Werner Koch  <wk@gnupg.org>
672
673         * AUTHORS: Added Marcus
674         * README: Fixed spelling of Quintuple-Agent. 
675
676 2002-05-13  Marcus Brinkmann  <marcus@g10code.de>
677
678         Released 0.6.2.
679         
680         * configure.ac: Set version number to 0.6.2.
681         * NEWS: Add information for 0.6.2.
682         * README: Update for release.
683
684 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
685
686         * configure.ac: Add option --enable-fallback-curses and bind it to
687         the ncurses check.  Add automake conditional
688         BUILD_LIBPINENTRY_CURSES and FALLBACK_CURSES. Add preprocessor
689         symbol FALLBACK_CURSES.
690
691         * curses/Makefile.am (AM_CPPFLAGS): Add $(NCURSES_INCLUDE).
692         (LDADD): Add ../pinentry/libpinentry-curses.a.
693         * curses/pinentry-curses.c: Include "pinentry-curses.h".
694         Moved most of the meat to ...
695         * pinentry/pinentry-curses.c: ... here.  New file.  Make all
696         functions and global variables static.
697         (dialog_cmd_handler): Rename to ...
698         (curses_cmd_handler): ... this.
699         * pinentry/pinentry-curses.h: New file.
700         * pinentry/Makefile.am (noinst_LIBRARIES)
701         [BUILD_LIBPINENTRY_CURSES]: Add libpinentry-curses.a.
702         (libpinentry_curses_a_SOURCES): New target.
703
704         * gtk/Makefile.am (INCLUDES): Moved all to ...
705         (AM_CPPFLAGS): ... here.
706         [CURSES_FALLBACK]: Define ncurses_include and libcurses.
707         (AM_CPPFLAGS): Add $(ncurses_include).
708         (LDADD): Add $(libcurses).
709         * gtk/pinentry-gtk.c: Rename TIMEOUT to TIME_OUT to avoid conflict
710         with curses.h.
711         [CURSES_FALLBACK]: Include "pinentry-curses.h".
712         (button_clicked): Likewise.
713         (create_window): Likewise.
714         (cmd_handler): Renamed to ...
715         (gtk_cmd_handler): ... this.
716         (pinentry_cmd_handler): Set to gtk_cmd_handler.
717         (main) [CURSES_FALLBACK]: Initialize GTK+ only if environment
718         variable DISPLAY is set, otherwise fall back to curses dialog.
719
720         * pinentry/pinentry.h: Protect against multiple inclusion.
721
722 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
723
724         * curses/pinentry-curses.c (dialog_create): Allow multi-line error
725         texts.
726
727         * pinentry/pinentry.c (cmd_seterror): Call strcpy_escaped, rather
728         than strcpy, to allow percent-escaping the error text.
729
730 2002-04-25  Steffen Hansen  <steffen@hrhansen.dk>
731
732         * pinentry-qt: Use ok and cancel value if
733         provided.
734
735 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
736
737         * gtk/pinentry-gtk.c (create_window): Use ok and cancel value if
738         provided.
739
740 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
741
742         * qt/pinentrycontroller.h: New members _ok and _cancel.
743         * qt/pinentrycontroller.cpp (registerCommands): Add SETOK and SETCANCEL.
744         (assuanOk): New method.
745         (assuanCancel): Likewise.
746
747 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
748
749         * curses/pinentry-curses.c (dialog_create): Grok the new ok and
750         cancel members to set the pbutton texts, rather than parsing the
751         prompt in the confirm case.
752
753         * pinentry/pinentry.h (struct pinentry): Add new members ok and cancel.
754         * pinentry/pinentry.c (register_commands): Add new commands SETOK
755         and SETCANCEL to set button texts.
756         (struct pinentry pinentry): Add initializers for new members.
757         (cmd_setok): New function.
758         (cmd_setcancel): Likewise.
759
760 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
761
762         * curses/pinentry-curses.c (dialog_create): Add '<' and '>' around
763         the user provided button texts.  Replace sizeof by strlen to fix
764         size calculation of ok and cancel button.
765
766 2002-04-23  Marcus Brinkmann  <marcus@g10code.de>
767
768         * pinentry/pinentry.h (struct pinentry): New variables lc_ctype
769         and lc_messages.
770         * pinentry/pinentry.c (usage): New options --lc-ctype and
771         --lc-messages.
772         (pinentry_parse_opts): Likewise.
773         (option_handler): Likewise.
774         (struct pinentry pinentry): New initializers for new members.
775
776         * curses/pinentry-curses.c (convert_utf8_string): New function.
777         (struct dialog): New members ok and cancel.
778         (dialog_create): New variables ERR, DESCRIPTION, ERROR, PROMPT,
779         OK, and CANCEL.  Initialize them with the localised versions of
780         the pinentry strings.  If in confirm mode, split up the prompt at
781         '|' and use the values as button texts.  Use localised strings.
782         (dialog_switch_pos): Use localised strings.
783         (dialog_run): Free dialog strings.
784
785         * acinclude.m4 (AM_ICONV): New check from gettext.
786         * configure.ac: Run AM_ICONV if curses pinentry is build.
787         Don't check for inttypes.h, don't check size of unsigned int or
788         unsigned long.
789         (LIBCAP): Move check to interface independent part.
790
791 2002-04-21  Steffen Hansen  <steffen@hrhansen.dk>
792
793         * Removed X11 dependency and use Qt for grabbing the keyboard.
794         * Clear the lineedit before asking the user for the PIN.
795
796 2002-04-12  Steffen Hansen  <steffen@hrhansen.dk>
797
798         * Enable pinentry-qt if Qt is found
799
800 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
801
802         * qt: New directory.
803         * qt/Makefile.am, qt/cppmemory.cpp, qt/main.cpp,
804         pinentrycontroller.cpp, qt/pinentrycontroller.h,
805         qt/pinentrydialog.cpp, qt/pinentrydialog.h: New file, copied from
806         kde/.
807         * kde: Directory removed.
808         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
809         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
810         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
811         kde/pinentrydialog.h: Files removed.
812         * acinclude.m4: Removed the KE checks and completely overhauled
813         the Qt checks, putting all Qt checks in their own namespace QT_,
814         and make it declare QT_-prefixed variables for linking and
815         compilation.
816         * configure.ac: Use the new Qt checks instead the KDE checks.
817         Replace "kde" with "qt" everywhere.
818         * Makefile.am: Replace "kde" with "qt" everywhere.
819         
820 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
821
822         * acinclude.m4: Reworked the Qt and KDE checks, cutting out a lot
823         of dead and not-so-dead wood.  Gave all KDE checks proper names.
824         * configure.ac: Use the new names for the KDE checks.
825
826 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
827
828         * kde/Makefile.am (EXTRA_DIST): Remove variable.
829         (install-data-local): Remove target.
830         (uninstall-local): Likewise.
831
832 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
833
834         Released 0.6.0.
835         
836         * configure.ac: Set version number to 0.6.
837         * NEWS: Add information for 0.6.0.
838         * secmem/Makefile.am (libsecmem_a_SOURCES): Replace secmem.h with memory.
839         * kde/Makefile.am (pinentry_kde_SOURCES): Move
840         pinentrydialog.moc.cpp and pinentrycontroller.moc.cpp to ...
841         (nodist_pinentry_kde_SOURCES): ... this new target.
842
843 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
844
845         * acinclude.m4: A lot of new checks more or less straight from KDE's
846         admin/acinclude.m4.in.
847         * configure.ac (AC_CANONICAL_HOST): Call that macro.
848         (AC_CHECK_COMPILERS, AC_PATH_KDE): Call those macros if KDE
849         pinentry is enabled.
850         * kde/Makefile.am (CXXFLAGS, XXX_PREFIX, XXX_KDE_DEFINES, LIB_QT,
851         LIB_KDECORE, LIB_KDEUI, KDE_RPATH, MOC, kde_appsdir): Variables removed.
852         (AM_CPPFLAGS): Replace XXX_KDE_DEFINES by all_includes.
853         (pinentry_kde_LDFLAGS): Add all_libraries.
854         * README: Document that automatic check is not possible for KDE.
855
856 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
857
858         * curses/pinentry-curses.c (dialog_run): Add handling for TAB key.
859         (dialog_create): New variable description_x.  Calculate dimension
860         of multi-line description correctly.
861
862 2002-04-04  Marcus Brinkmann  <marcus@g10code.de>
863
864         * pinentry/pinentry.h (struct pinentry): New members DISPLAY,
865         TTYNAME and TTYTYPE.
866         * pinentry/pinentry.c (pinentry): Likewise.
867         * pinentry/pinentry.c: Include <string.h>.
868         (usage): Add new options --display,
869         --ttyname and --ttytype.
870         (option_handler): Likewise.
871         (pinentry_parse_opts): Likewise.
872
873         * curses/pinentry-curses.c (dialog_cmd_handler): Use
874         PINENTRY->ttyname and PINENTRY->ttytype.
875
876 2002-03-30  Marcus Brinkmann  <marcus@g10code.de>
877
878         * acinclude.m4: Add AM_PATH_GLIB and AM_PATH_GTK.
879
880 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
881
882         * configure.ac: Choose a more appropriate AC_CONFIG_SRCDIR.
883
884 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
885
886         * kde/Makefile.am (pinentry_kde_LDADD): Link with $(LIBCAP).
887         * gtk/Makefile.am (install-exec-local): Moved to ...
888         * Makefile.am (install-exec-local): ... here.
889
890 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
891
892         * kde/Makefile.am (kde_appsdir): New variable.
893         * kde/Makefile.am (install-data-local): Use DESTDIR.
894         (uninstall-local): Likewise.
895
896 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
897
898         Merge of the gpinentry and curses pinentry program into the
899         pinentry distribution.  For this, the structure of the repository
900         has been thoroughly overhauled.  Some of the changes:
901         * secmem: New directory with secure memory allocation code.
902         * pinentry: New directory with pinentry support library.
903         * curses: New directory with curses frontend.
904         * gtk: New directory with GTK+ frontend.
905         * kde: New directory with only the core of the old kpinentry program.
906         * admin: Directory removed.
907         * po: Directory removed.
908         * kpinentry: Directory removed.
909         * doc: Directory removed.
910         * jnlib: Directory removed.x
911
912         The changes in more detail:
913         * AUTHORS: Add authors of other pinentry frontends.
914         * ChangeLog: Add the one from gpinentry.
915         * Makefile.am: Completely rewritten.
916         * README: Add content.
917         * TODO: Add content.
918         * NEWS: New file from gpinentry.
919         * THANKS: New file from gpinentry.
920         * acinclude.m4: New file.
921         * configure.ac: New file which configures for all frontends.
922         * curses/Makefile.am, curses/pinentry-curses.c: New files for
923         curses frontend.
924         * gtk/Makefile.am, gtk/gtksecentry.c, gtk/gtksecentry.h,
925         gtk/pinentry-gtk.c: New files, modified from gpinentry, for GTK+
926         frontend.
927         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
928         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
929         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
930         kde/pinentrydialog.h: New files, modified from kpinentry, for KDE
931         frontend.
932         * pinentry/Makefile.am, pinentry/pinentry.c, pinentry/pinentry.h:
933         New files containing pinentry support library, partly factored out
934         from gpinentry.
935         * secmem/Makefile.am, secmem/memory.h, secmem/secmem-util.h,
936         secmem/secmem.c, secmem/util.c, secmem/util.h: New files
937         containing secure memory allocation code common to all pinentry
938         frontends.
939         * Makefile.dist, acconfig.h, configure.files, configure.in.in:
940         Files removed in favor of new configure.ac.
941         * pinentry.lsm: Removed file never used.
942         * stamp-h.in: Removed generated file.
943         * admin/ChangeLog, admin/Makefile.common, admin/acinclude.m4.in,
944         admin/am_edit, admin/am_edit.py, admin/conf.change.pl,
945         admin/config.guess, admin/config.pl, admin/config.sub,
946         admin/configure.in.min, admin/debianrules, admin/depcomp,
947         admin/install-sh, admin/libtool.m4.in, admin/ltcf-c.sh,
948         admin/ltcf-cxx.sh, admin/ltcf-gcj.sh, admin/ltconfig,
949         admin/ltmain.sh, admin/missing, admin/mkinstalldirs, admin/ylwrap:
950         Removed KDE build suite in favor of configure.ac.
951         * doc/Makefile.am, doc/en/Makefile.am, doc/en/index.docbook:
952         Removed files never used.
953         * jnlib/ChangeLog, jnlib/Makefile.am, jnlib/argparse.c,
954         jnlib/argparse.h jnlib/dotlock.c, jnlib/dotlock.h,
955         jnlib/libjnlib-config.h, jnlib/logging.c, jnlib/logging.h,
956         jnlib/mischelp.h, jnlib/stringhelp.c, jnlib/stringhelp.h,
957         jnlib/strlist.c, jnlib/strlist.h, jnlib/types.h, jnlib/xmalloc.c,
958         jnlib/xmalloc.h: Removed files no longer used.
959         * kpinentry/Makefile.am, kpinentry/cppmemory.cpp,
960         kpinentry/cppmemory.h, kpinentry/i18n.h, kpinentry/main.cpp,
961         kpinentry/memory.h, kpinentry/pinentry.desktop,
962         kpinentry/pinentrycontroller.cpp, kpinentry/pinentrycontroller.h,
963         kpinentry/pinentrydialog.cpp, kpinentry/pinentrydialog.h,
964         kpinentry/secmem.cpp, kpinentry/util.cpp, kpinentry/util.h:
965         Removed files in favor of new files in kde/.
966         * po/Makefile.am, po/pinentry.pot: Removed files never used.
967
968         * autogen.sh: New file.
969
970 2002-03-04  Werner Koch  <wk@gnupg.org>
971
972         * gpinentry.c (enter_callback): New
973         (create_window): Connect it to the entry field.
974
975 2002-02-18  Werner Koch  <wk@gnupg.org>
976
977         Released 0.5.1.
978
979         * gpinentry.c (create_window): Add CONFIRM_MODE.
980         (cmd_confirm): Implemented.
981
982         * assuan/:  Updated from NewPG.
983
984 2002-01-20  Werner Koch  <wk@gnupg.org>
985
986         * gpinentry.c (option_handler): New to allow changing of the grab
987         status.
988         (grab_keyboard): Shortcut this when global grab is not set.
989
990 2002-01-04  Werner Koch  <wk@gnupg.org>
991
992         Released 0.5.0.
993         
994         * configure.ac: Bumbed version
995
996         * util.h (xtoi_1, xtoi_2): New.
997         * gpinentry.c (strcpy_escaped): New
998         (cmd_setdesc, cmd_seterror): Use it here to allo multiline texts.
999
1000         * gpinentry: Removed debugging outbut
1001         (create_window): Tweaked layout.
1002
1003 2001-12-07  Werner Koch  <wk@gnupg.org>
1004
1005         New package gpinentry based on quintuple-agent.
1006         
1007         Removed all stuff except for the basic configuration stuff and
1008         what is needed to build gpinentry.  Also removed i18n support.
1009         * gpinentry.c: Renamed from secret-query.c
1010
1011 2001-02-12  Robert Bihlmeyer  <robbe@orcus.priv.at>
1012
1013         * 1.0.0 released. Woo-hoo!
1014
1015         * configure.in, NEWS: Bumped version.
1016
1017 2001-02-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1018
1019         * agent.c (make_tmpdir): Honor $TMPDIR.
1020
1021         (agent): Would exit on every minor problem. Now, we just close the
1022         offending connection.
1023         Ignore SIGPIPE, so that EPIPE will close connection.
1024
1025 2001-01-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1026
1027         * secmem.c: Move one include statement so that the thing compiles.
1028
1029         * secret-query.c (main): Minor source cosmetics.
1030
1031 2000-11-16  Robert Bihlmeyer  <robbe@orcus.priv.at>
1032
1033         * gtksecentry.c (gtk_secure_entry_insert_text): Secured a couple
1034         of memory (de)allocations that were missed. Thanks to John Steele
1035         <jhs28@eng.cam.ac.uk> for spotting these.
1036
1037 2000-11-10  Robert Bihlmeyer  <robbe@orcus.priv.at>
1038
1039         * Thoughts: Removed in favor of new TODO.
1040
1041         * README: Remove content and refer to doc/manual.info instead.
1042
1043         * agent.c (do_get): Would burn badly on a premature exit of the
1044         query program (which would occur routinely if you selected /cancel/).
1045
1046 2000-10-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
1047
1048         * memory.h: Include sys/types.h for size_t.
1049
1050 2000-10-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1051
1052         * README: Removed apology about missing documentation.
1053         Updated paragraph about Linux capability patch.
1054         Typo & Refill.
1055
1056 2000-10-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
1057
1058         * 0.9 released.
1059
1060         * Makefile.am (EXTRA_DIST): Distribute BUGS (the file, that is).
1061
1062         * configure.in, NEWS: Bumped version.
1063
1064         * Makefile.am, configure.in: Add debian subdir.
1065
1066         * README: Recommend GTK+.
1067         Update list of checked platforms.
1068
1069 2000-10-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
1070
1071         * secret-query.c (ok): Simplify.
1072         Put empty line between headers and secret.
1073         (usage): Document '--help' and '--version'.
1074
1075         * agent.c (do_get): Use enhanced secret-query output to fill in
1076         options.
1077
1078 2000-10-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1079
1080         * secret-query.c (main): Clarify error.
1081
1082         * client.c (query_options): New global variable.
1083         (main): New option '--query-options' to pass options to the query
1084         program.
1085         (xgetpass): Use it.
1086
1087         * agent.c (main): New option '--query-options' to pass options to
1088         the query program.
1089         (do_get): Use 'query_options'.
1090
1091         * acconfig.h, configure.in: Add QUERY_PROGRAM definition.
1092         * client.c: Remove here.
1093         * agent.c (do_get): Use it here, too.
1094
1095         * secret-query.c (main): New option '--no-global-grab' introduced,
1096         that prevents keyboard grabbing unless the window has focus.
1097
1098 2000-09-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1099
1100         * secret-query.c (usage): Add two missing pieces of "\n\".
1101
1102         * agent.c (main): --nofork is now the default, and the option is
1103         deprecated. New option --fork added to turn forking on again.
1104         Close stdout (and stderr unless debugging) even when not forking,
1105         so that normal usage inside eval is still possible.
1106         (agent): Exit gracefully on HUP, so that logging out now kills the
1107         agent. 
1108
1109         * README (Contact Information): Old URL - duh!
1110         (Using Secret Agent): We no longer fork per default.
1111
1112         * Makefile.am (lib/libutil.a): New target, allows targets that not
1113         automatically recurse (but still depend on libutil.a) to succeed.
1114
1115 2000-07-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
1116
1117         * secret-query.c (usage): New function.
1118         (main): Parse options: debug, enhanced, help, version.
1119         Turn on locale support.
1120         If enhanced, insert widgets to ask for timeout and insurance.
1121         (ok): If enhanced, print more information on exit.
1122         (grab_keyboard): Die if grab was unsuccessful.
1123
1124 2000-05-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1125
1126         * 0.8 released.
1127
1128         * configure.in, NEWS: Bumped version.
1129
1130         * Makefile.am (SUBDIRS): Include doc.
1131
1132         * configure.in, acconfig.h: Check for ssize_t.
1133         Check for vsnprintf(), strdup().
1134         Generate doc/Makefile.
1135
1136         * apgp.c, agpg.c, agentlib.c, util.c: Include more stuff.
1137
1138         * agent.c (do_get): Use asprintf() instead of snprintf() so we
1139         don't need to roll our own for yet another function.
1140         Fix some includes.
1141
1142         * acinclude.m4: gettext macros copied from automake and fixed.
1143
1144 2000-05-30  Robert Bihlmeyer  <robbe@orcus.priv.at>
1145
1146         * configure.in, Makefile.am: Properly include doc subdir.
1147
1148 2000-05-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
1149
1150         * configure.in, acconfig.h: Add test for XMESSAGE path.
1151
1152         * client.c (main): Decode command from string to integer code
1153         first, then evaluate that in ifs.
1154
1155         * secret-ask.c: New file, external ask-for-confirmation utility.
1156
1157         * configure.in, Makefile.am: Add secret-ask to programs being
1158         built when GTK is available. Rename QUERY to more descriptive
1159         GTK_PROGRAMS.
1160
1161         * agent.c (do_get): If GTK is available, try executing secret-ask
1162         first.
1163         Only put the comment into the insure-question if there is a
1164         comment.
1165         (main): --csh was missing from usage message.
1166
1167 2000-04-23  Robert Bihlmeyer  <robbe@orcus.priv.at>
1168
1169         * secret-query.c (constrain_size): Lower window max_width to
1170         accomodate bugs in GTK and Scwm.
1171
1172         * agent.c (main): Set x_enabled if X appears to be available.
1173         Use it to selectively make FLAGS_INSURE supported.
1174         (do_get): Use it instead of testing at every call.
1175         (do_put): Requests containing unsupported flags fail.
1176         (forget_old_stuff): Would not set next_deadline correctly.
1177         (do_get): Implement FLAGS_INSURE.
1178
1179         * client.c (main): "list" format changed so that comment is to the
1180         far right. Display the deadline as proper date/time, too.
1181
1182 1999-11-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1183
1184         * agent.c (next_deadline): New global variable, holds time when
1185         next secret has to be killed.
1186         (store): Keep it up-to-date.
1187         (forget_old_stuff): New function, reaps secrets ready to kill,
1188         keeps next_deadline updated.
1189         (agent): Use it on all secrets, whenever a deadline is active.
1190
1191 1999-11-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1192
1193         * agent.h (request_put): Add flags, deadline. Increase REQUEST_MAGIC. 
1194         (reply_get): Ditto, and increase REPLY_MAGIC.
1195         * agent.c (store): Store flags, deadline in reply.
1196         (do_put): Hand flags, deadline from request on to store().
1197         (do_get): Store on-demand queried secrets without deadline or
1198         special flags, for now.
1199         (agent): Do not ignore obsolete clients, return an error reply.
1200         * agentlib.c (agent_put): Add flags, deadline arguments, and copy
1201         them into the request.
1202         * agentlib.h (agent_put): Update prototype.
1203 *       * client.c (main): Added --time-to-live (-t) and --insure (-i)
1204         options, influencing PUT's deadline and flags, respectively.
1205         (main): Change list format to include new attributes.
1206
1207 1999-11-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
1208
1209         * configure.in: <getopt.h> check had redundant definition.
1210         * acconfig.h: Remove here, too.
1211
1212         * configure.in: Check for <inttypes.h>. If not found, check for
1213         unsigned {int, long} sizes.
1214         * agent.h: Either include <inttypes.h>, or try to define uint32_t
1215         yourself.
1216         Need to include "config.h".
1217
1218 1999-11-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1219
1220         * Makefile.am (signed-dist): New rule, generates sig for dist.
1221         (%.sig): New rule, for detached signatures in general.
1222
1223         * configure.in: Check for ulong.
1224         * acconfig.h: Document it.
1225         * secmem.c: Unconditionally defining it is no longer necessary
1226         here. But do include <sys/types.h> in all cases.
1227
1228         * 0.7 released.
1229
1230         * secmem.c: ulong is not defined on all systems.
1231
1232         * agent.h: <inttypes.h> should define `uint32_t' as per Unix98, so
1233         we use that.
1234
1235 1999-11-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
1236
1237         * agent.h: Augmented requests and replies with magic numbers.
1238         Data structures heavily commented.
1239         All structures and enums typedef'd.
1240         * agent.c: Adapted.
1241         (store): Set magic number in stored reply.
1242         (do_put): Set magic number in reply.
1243         (do_delete): Ditto.
1244         (do_list): Ditto. 
1245         (agent): Check magic number in request.
1246         * agentlib.c: Adapted.
1247         (send_request): Set magic number in request. Check it in reply.
1248         * agentlib.h: Adapted.
1249         * agpg.c: Adapted.
1250         * apgp.c: Adapted.
1251         * client.c: Adapted.
1252
1253 1999-10-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1254
1255         * secmem.c: Instead of defining ulong directly, include
1256         <sys/types.h>
1257
1258         * secret-query.c (constrain_size): New function, puts constrains
1259         on size of toplevel window.
1260         (grab_keyboard): Removed protection against multiple calls.
1261         (ungrab_keyboard): New function, cancelling a keyboard grab.
1262         (main): Hang `grab_keyboard' onto map-event which makes it
1263         actually work, hang `ungrab_keyboard' onto unmap-event.
1264         Hang `constrain_size' onto size-request.
1265
1266         * secmem.c: ulong was undefined on some systems.
1267
1268 1999-10-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1269
1270         * Makefile.am (install-exec-local): Ignore setcap errors.
1271
1272         * apgp.c: New program, based on agpg.c, but for pgp2.6.
1273         * Makefile.am (bin_PROGRAMS, apgp_SOURCES): Added it.
1274
1275         * agpg.c (GPG): New constant.
1276         (find_id, main): Use it throughout.
1277         (find_id): Forgot to pclose on success.
1278
1279         * secret-query.c (main): Don't expand anything.
1280         Use a button box for the buttons.
1281         Prompt label can be overridden from the commandline.
1282         * agent.c (do_get): Make spawned secret-query show the id.
1283         * client.c (xgetpass): Pass prompt to secret-query.
1284         (main): Include id in xgetpass prompt.
1285
1286 1999-10-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1287
1288         * configure.in: setcap must be searched outside the usual user
1289         PATH, too.
1290         * Makefile.am (install-exec-local): Set cap_ipc_lock permitted on
1291         installed binaries, if possible.
1292
1293         * agent.c (xdup2): New function, dup2 with error handling.
1294         (move_fd): New function, moves fds.
1295         (store): New function, abstracted out from do_put.
1296         (do_put): Use it.
1297         (do_get): If secret was not found, and DISPLAY is set, try to
1298         query the user about it. If successful, store it.
1299         (main): Route standard file descriptors to /dev/null rather than
1300         just closing them. The latter would confuse children.
1301
1302 1999-10-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1303
1304         * gtksecentry.c, gtksecentry.h: New files, being slightly modified
1305         versions of GTK+'s gtkentry.[ch], spiffed up to use secure memory.
1306         * secret-query.c (ok, unselect, main): Replace GtkEntry with
1307         GtkSecureEntry.
1308         (main): Initialize secure memory.
1309         * Makefile.am (secret_query_SOURCES): Added gtksecentry.[ch].
1310
1311         * README (Security): New chapter.
1312
1313         * configure.in, acconfig.h: Check for POSIX capabilities, and the
1314         setcap program.
1315         * Makefile.am: Link LIBCAP to those binaries using secmem.c.
1316
1317         * util.h: Include <sys/types.h> for size_t.
1318
1319 1999-09-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
1320
1321         * secmem.c: Synced with gnupg-1.0 (top new feature: capabilities).
1322         (log_fatal): New function, logs to stderr, and dies.
1323
1324 1999-09-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1325
1326         * secmem.c (log_info): New function, logs to stderr.
1327
1328         * agent.c (agent): select() expects the number of fds, not the
1329         highest fd. So remember that number.
1330
1331         * agent.c (agent): Don't use FD_SETSIZE, which is not defined on
1332         all systems. Remember the number of the highest descriptor
1333         instead.
1334
1335         * configure.in: Replace getline() instead of getdelim() because
1336         this is the function we really need. Still check for getdelim(),
1337         though - there are systems out there where this is provided, but
1338         getline() is not.
1339
1340 1999-09-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1341
1342         * 0.6 released.
1343
1344         * configure.in: Bump version.
1345
1346         * NEWS: Updated.
1347
1348 1999-08-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1349
1350         * util.c (init_uids, lower_privs, raise_privs, drop_privs): New
1351         functions, for setuid binaries, extracted from agent.c.
1352         * util.h: Add prototypes for them.
1353         * agpg.c (main): Use them.
1354         * client.c (main): Ditto.
1355         * agent.c (main): Ditto. Removed code that did the same.
1356         Unconditionally include "asprintf.h" (it protects itself now).
1357
1358 1999-08-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
1359
1360         * Makefile.am (SUBDIRS): Process . before test so that "make
1361         check" always builds all in . first.
1362
1363 1999-08-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
1364
1365         * secret-query.c: Include "config.h".
1366
1367         * agent.h (reply_list_entry, reply_list): New reply structures.
1368         * agent.c (send_list_entry): New function.
1369         (do_list): First send number of entries, then each entry via
1370         send_list_entry().
1371         * agentlib.c (agent_list): Read entries returned by LIST request.
1372         * client.c (main): Output all entries returned by agent_list().
1373
1374         * agentlib.c (agent_put): Don't construct PUT request in insecure
1375         stack space.
1376
1377 1999-08-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
1378
1379         * NEWS: Bump patchlevel.
1380
1381         * configure.in: Bump patchlevel.
1382         Check for missing setenv().
1383
1384 1999-08-09  Robert Bihlmeyer  <robbe@orcus.priv.at>
1385
1386         * configure.in: Check for strsignal().
1387
1388         * client-test: Obsoleted by test/client.
1389
1390         * Makefile.am (SUBDIRS): New subdirectory.
1391         * configure.in (AC_OUTPUT): Add here, too.
1392
1393         * 0.5 released.
1394
1395         * README: Explain why secret-client will not output secrets to a
1396         tty, and mention the cat-trick.
1397
1398         * agent.c (main): If seteuid is not available, don't use it and
1399         issue a warning if running setuid.
1400
1401         * configure.in: Run together two REPLACE_FUNCS.
1402         Check for seteuid.
1403
1404         * client-test: Mask out insecure memory warnings.
1405
1406         * agentlib.c (send_request): Let the calling functions reserve
1407         space for the reply, but offer a simple way for simple requests.
1408         (agent_get): Allocate secure memory.
1409
1410         * agent.c (main): Moved secmem_init() after the fork, since that
1411         seemingly munlock's all pages.
1412         Drop priviledges just in case somebody wants to install this
1413         suid-root.
1414         Flush stdout.
1415
1416         * agpg.c (find_id): Would reorder arguments.
1417         Initialize opt_version.
1418         (main): Initialize secure memory.
1419
1420         * Makefile.am (agpg_SOURCES): Link with secure memory module.
1421
1422         * client.c (usage): Fixed another program name reference.
1423
1424 1999-08-06  Robert Bihlmeyer  <robbe@orcus.priv.at>
1425
1426         * configure.in: Conditionally define HAVE_GTK.
1427         * acconfig.h: Add here too.
1428
1429         * client.c (xgetpass): Use "secret-query" only if it was built.
1430         (main): Don't output secret (GET command) to ttys.
1431
1432         * agpg.c (find_id): Also print own version if "--version" is given.
1433         (main): Check agent_init() errors.
1434         Print error if exec fails.
1435
1436         * agent.c (main): Added an option to produce csh-compatible
1437         output.
1438
1439         * agent.c, client.c: Forgot the terminating NULL in long options.
1440         Fixed the program names in usage and version output.
1441
1442         * agent.c (create_socket): AF_UNIX and PF_UNIX are Unix98, so
1443         that's what we use. AF_LOCAL, PF_LOCAL removed.
1444         * agentlib.c (agent_init): Ditto.
1445
1446 1999-08-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
1447
1448         * 0.4 released.
1449
1450         * configure.in: Bumped version.
1451         Check for missing getdelim.
1452
1453         * cgpg: Removed, obsoleted by agpg.
1454         * Makefile.am: Here, too.
1455
1456         * agpg.c (find_id): New function.
1457         (main): Use it.
1458
1459         * Makefile.am (INCLUDES): Put GTK_FLAGS and GLIB_FLAGS here. It
1460         is the easiest way for sources needing it, and it won't hurt those 
1461         that don't.
1462         (agent.o): Explicit command removed accordingly.
1463
1464 1999-08-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1465
1466         * configure.in: Need double quoting in nested AC_MSG_WARN.
1467
1468         * client.c (xgetpass): If no tty is available, but a DISPLAY is,
1469         fork off "secure-query" to read the secret.
1470         Put the fgets into a loop that keeps reading until all of the
1471         secret is read.
1472
1473         * client-test: Unset DISPLAY, so that "secret-query" is never used.
1474
1475 1999-08-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
1476
1477         * agpg.c: New file, first cut at a C version of the gpg wrapper,
1478         written in a hurry (20 keys waiting to be signed, and a growling
1479         stomach).
1480         * Makefile.am: Add it to built programs.
1481         (LDADD): New default.
1482         (secret_client_LDADD): Removed, since it was identical to default.
1483
1484 1999-08-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1485
1486         * secret-query.c: New program, queries the user for a password.
1487         * Makefile.am (bin_PROGRAMS): Added it.
1488         * configure.in: Check for GTK+, build "secret-query" only when
1489         that is available.
1490
1491         * cgpg: Extra argument for ID is no longer necessary. cgpg will
1492         scan the gpg args for switches that affect user-id, and determine
1493         the right key itself. Per convention, the key-id is used by "GET".
1494
1495         * configure.in: The project name is now "secret-agent".
1496
1497         * Makefile.am: "agent" & "client" renamed to "secret-agent" &
1498         "secret-client", respectively.
1499         * client-test: Adapt to new names.
1500
1501         * Thoughts: Removed discussion of other names.
1502         Added indication of which things already work.
1503
1504         * agent.c (make_tmpdir): Removed occurance of "gpg-agent."
1505
1506         * README: First proper version.
1507
1508         * client-test: Context diffs are more portable then unified diffs.
1509
1510         * agent.c, agent.h, agentlib.c, agentlib.h, client.c, memory.h,
1511         util.c, util.h: Banner updated to new name.
1512
1513 1999-07-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
1514
1515         * configure.in: Check for missing asprintf.
1516         Check if -lsocket is needed.
1517
1518         * secmem.c (secmem_dump_stats): Replace usage of ulong.
1519
1520         * Makefile.am (INCLUDES): Add the lib subdirectory to include search.
1521
1522         * agent.c: Forgot to include <string.h>.
1523         Include RYO asprintf header if this function is missing.
1524         For the sake of compatibility, provide a definition for AF_LOCAL,
1525         PF_LOCAL, if missing.
1526         * agentlib.c: Ditto.
1527
1528 1999-07-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1529
1530         * Makefile.am (client_SOURCES): Add "secmem.c", "memory.h".
1531
1532         * client.c (xgetpass): Use secmem_malloc() instead of RYO.
1533         (main): Init and shutdown secmem.
1534
1535 1999-07-27  Robert Bihlmeyer  <robbe@orcus.priv.at>
1536
1537         * Makefile.am (agent_SOURCES): Add "secmem.c", "i18n.h", "memory.h".
1538         (client_SOURCES): Add "i18n.h".
1539
1540         * client.c (main): Exit on agent_init() failure.
1541
1542         * agent.c (main): Init secmem.
1543         Make --debug switch cumulative.
1544         (cleanup): Shutdown secmem.
1545         (do_put): Use secmem for storage of secrets.
1546         (do_delete): Use secmem_free(). Since this wipes the memory on its 
1547         own, wipe() is superflous now.
1548         (agent): Use secmem for inbound requests.
1549         (delete_secret): New function, takes part of do_delete's
1550         functionality.
1551         (do_put): Use it to remove old versions stored under the same id.
1552         (do_delete): Use it to delete secrets.
1553
1554         * memory.h: New file.
1555
1556         * secmem.c: New file, snarfed from GnuPG and modified slightly.
1557
1558         * acinclude.m4: New file.
1559         * configure.in: (ALL_LINGUAS): Expanded list of available
1560         languages. Most of them only have a few translations from gpg,
1561         tough ...
1562         getopt_long test was commented out for debugging,
1563         and left such. Fixed.
1564         Check for mlock.
1565         * acconfig.h: Comment HAVE_BROKEN_MLOCK.
1566
1567         * cgpg: A space was missing.
1568
1569         * i18n.h: New file, centralizing the gettext macro defs.
1570
1571         * agent.c (BLIND): New macro, that blinds out a secret if debug
1572         level is too low.
1573         (do_put): Use it.
1574         (do_get): Use it.
1575         Include i18n.h.
1576
1577         * agentlib.c: Include i18n.h
1578         
1579         * client.c (usage): New function.
1580         Usage-message made gettext-friendly.
1581         (xgetpass): Use perror() instead of fprintf().
1582         (main): Use it.
1583         Make comment an optional argument of PUT.
1584         Include i18n.h.
1585
1586 1999-07-26  Robert Bihlmeyer  <robbe@orcus.priv.at>
1587
1588         * Makefile.am (client_LDADD): Add lib/libutil.a for portability.
1589         (agent_LDADD): Ditto.
1590         (SUBDIRS): Add lib directory.
1591         (bin_SCRIPTS): New with cgpg, so it gets installed, too.
1592
1593         * configure.in: Add lib/Makefile to output.
1594
1595 1999-07-24  Robert Bihlmeyer  <robbe@orcus.priv.at>
1596
1597         * cgpg: New file.
1598         * Makefile.am (EXTRA_DIST): Added it.
1599
1600         * agent.c: Moved inclusion of config.h before inclusion of
1601         libintl.h since the latter needs HAVE_LC_MESSAGE.
1602         * client.c: Ditto.
1603         * clientlib.c: Ditto.
1604
1605         * client-test: Update for new client semantics.
1606
1607         * client.c (check_status): Use debugmsg(). Do nothing if not
1608         debugging.
1609         (xgetpass): New function, getpass replacement that uses mlock'ed
1610         memory.
1611         (main): PUT now asks for the secret rather then getting it from
1612         the commandline.
1613         GET prints only the secret to stdout.
1614
1615         * configure.in: Rearranged.
1616         Check for socklen_t.
1617         * acconfig.h: Added a definition for it.
1618
1619         * client.c: Include packaged getopt.h if the system doesn't provide 
1620         one. 
1621         * agent.c: Ditto.
1622         (create_socket): Replace AF_FILE, PF_FILE with AF_LOCAL, PF_LOCAL
1623         for portability.
1624         * agentlib.c (agent_init): Ditto.
1625         Explicitly cast addr to a sockaddr pointer.
1626
1627         * Makefile.am (client_LDADD): Added @INTLLIBS@.
1628         (agent_LDADD): Ditto.
1629
1630 1999-07-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1631
1632         * configure.in: Check for getopt.h and getopt_long.
1633         * acconfig.h (HAVE_GETOPT_H): New define.
1634         * lib/getopt.c, lib/getopt1.c, lib/getopt.h: Added.
1635
1636 1999-07-18  Robert Bihlmeyer  <robbe@orcus.priv.at>
1637
1638         * 0.2 released.
1639
1640         * NEWS: Updated.
1641
1642         * Makefile.am (agent.o): Mentioning the source explicitly does not 
1643         work for srcdir!=builddir.
1644
1645         * client.c (main): Function arguments are not always evaluated in
1646         order, so drop the neat ++optind in favor of optind+1, optind+2,
1647         etc.
1648
1649         * configure.in: Upped version.
1650
1651 1999-06-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1652
1653         * util.h: Added multi-inclusion guard.
1654
1655         * agent.c Include "util.h".
1656         (main): Forgot to exit at end.
1657         (do_delete): Assume that value is a string and wipe it accordingly.
1658
1659         * configure.in (--enable-debug): New switch.
1660
1661         * agent.h (status_t): Added STATUS_COMM_ERR code.
1662         Added multi-inclusion guard.
1663
1664         * client.c (main): Abstracted out most functionality into a
1665         function library, namely:
1666         * agentlib.c: New file.
1667         * agentlib.h: New file.
1668         * Makefile.am (client_SOURCES): Added agentlib.c, agentlib.h.
1669
1670         * Makefile.am (INCLUDES): GLIB_CFLAGS moved again, this time to
1671         the agent.o target. 
1672
1673 1999-06-15  Robert Bihlmeyer  <robbe@orcus.priv.at>
1674
1675         * 0.1 released.
1676
1677         * Makefile.am (agent_CFLAGS): Removed - did not work.
1678         (INCLUDES): Moved the GLIB stuff here.
1679
1680 1999-06-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1681
1682         * configure.in (ALL_LINGUAS): Added `de'.
1683
1684         * agent.c (do_get): Added more debugmsgs.
1685         (do_put): Wouldn't allocate enough for `value'.
1686         (main): New option "--nofork" prevents forking.
1687         Use macros for the std filedescriptor numbers.
1688         Only close stderr if not debugging.
1689         (main): Make Usage string gettext-friendly.
1690
1691         * client-test (cleanup): New function.
1692         Call it on shell exit.
1693         (client): New function.
1694         Use it instead of calling client binary directly.
1695         diff client output with expected one in GET testcases.
1696
1697 1999-06-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1698
1699         * agent.c (failed_reply): New constant.
1700         (do_list): Use it.
1701         (do_put): The hash key was overwritten - strdup it.
1702         Construct a GET reply and save that in the hash.
1703         (do_get): Just send the preconstructed reply if the id is present, 
1704         and failed_reply otherwise.
1705         (do_delete): Actually free the hashed stuff.
1706
1707         * client.c: Exit with error if agent returned STATUS_FAIL.
1708
1709         * Makefile.am (EXTRA_DIST): Added autogen.sh, Thoughts,
1710         client-test.
1711         (TESTS): Added client-test.
1712         (AUTOMAKE_OPTIONS): Added gnits. 
1713
1714         
1715  Copyright 2002, 2003 g10 Code GmbH
1716
1717  This file is free software; as a special exception the author gives
1718  unlimited permission to copy and/or distribute it, with or without
1719  modifications, as long as this notice is preserved.
1720
1721  This file is distributed in the hope that it will be useful, but
1722  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1723  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.