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