* doc/ChangeLog: Removed and merged with this file.
[pinentry.git] / ChangeLog
1 2003-12-22  Werner Koch  <wk@gnupg.org>
2
3         * doc/ChangeLog: Removed and merged with this file.
4         * doc/pinentry.texi: Cleaned up.
5         * doc/fdl.texi: Removed.
6
7         * pinentry/pinentry.h (struct pinentry): Added LOCALE_ERR.
8         * gtk/pinentry-gtk.c (button_clicked): Set the LOCAE_ERR flag.
9         * pinentry/pinentry-curses.c (dialog_run): Ditto.
10         * pinentry/pinentry.c (cmd_getpin, cmd_confirm): Check this flag.
11         (pinentry_local_to_utf8): Release the correct buffer in the error
12         case. Print diagnostics.
13         (pinentry_utf8_to_local): Print diagnostics.
14         (pinentry_parse_opts): Make short options work.
15         (pinentry_utf8_to_local): Pass nl_langinfo to iconv_open.
16
17         * gtk/pinentry-gtk.c (button_clicked): Use the right value as
18         input for the conversion.
19
20         * pinentry/pinentry.c: New variable THIS_PGMNAME.
21         (pinentry_init): Add arg PGMNAME and store it.  Use it at all
22         marked placed instead of the constant "pinentry".
23         (usage): Use it here too.
24         * curses/pinentry-curses.c (main): Call pinentry_init wity our name. 
25         * qt/main.cpp (main): Ditto.
26         * gtk/pinentry-gtk.c (main): Ditto. 
27
28         * configure.ac: Check for mmap.
29
30         * secmem/util.h (wipememory2,wipememory,wipe): New.
31         * secmem/util.c (wipe): Removed.
32         * secmem/util.c (lower_privs, raise_privs): Commented out.
33
34         * pinentry/pinentry.c (pinentry_loop): Add paranoia check for
35         dropped privs.
36
37         * secmem/secmem.c (lock_pool): Cleanup syntax of cpp directives.
38
39         * gtk/pinentry-gtk.c (main): Print package name in the version line.
40         * curses/pinentry-curses.c (main): Ditto.
41         * qt/main.cpp (main): Ditto. Fixed typo.
42
43         * gtk/pinentry-gtk.c: Include memory.h.
44         
45 2003-12-20  Marcus Brinkmann  <marcus@g10code.de>
46
47         * pinentry/pinentry.h (struct pinentry): New member PARENT_WID.
48         * pinentry/pinentry.c (pinentry): Add new member here.
49         (usage): Add --parent-wid.
50         (pinentry_parse_opts): Add case for "parent-wid".
51         (option_handler): Same here.
52
53 2003-12-19  Marcus Brinkmann  <marcus@g10code.de>
54
55         * pinentry/pinentry.c (cmd_setcancel): Use strcpy_escaped.
56         (cmd_setok): Likewise.
57         (cmd_setprompt): Likewise.
58         (pinentry_utf8_to_local): Don't use
59         nl_langinfo, but just lc_ctype directly.
60         * pinentry/pinentry.c (cmd_getpin): Do not convert passphrase to
61         UTF-8 here.
62         * gtk/pinentry-gtk.c (button_clicked): Convert passphrase to UTF8
63         here.
64         * pinentry/pinentry-curses.c (dialog_run): Likewise.
65
66 2003-12-14  Marcus Brinkmann  <marcus@g10code.de>
67
68         * pinentry/pinentry.c (pinentry_init): Register secmem_term as
69         atexit function.  Set assuan malloc hooks to secmem.
70         (pinentry_parse_opts): Add break statement to silence gcc warning.
71         * pinentry/pinentry.c (cmd_getpin): If canceled, release and clear
72         PINENTRY->pin nevertheless.
73
74         * acinclude.m4 (qt_incdirs): Add /usr/include/qt3.
75         * qt/Makefile.am (pinentry_qt_SOURCES): Remove cppmemory.h,
76         cppmemory.cpp, pinentrycontroller.h, pinentrycontroller.cpp.
77         (nodist_pinentry_qt_SOURCES): Remove pinentrycontroller.moc.cpp.
78         (libcurses): Move ../pinentry/libpinentry.a from here to ...
79         (pinentry_qt_LDADD): ... here.  Change order a bit to make it
80         work.
81         * qt/cppmemory.h, qt/cppmemory.cpp, qt/pinentrycontroller.h,
82         qt/pinentrycontroller.cpp: Files removed.
83         * qt/secqstring.h, qt/secqstring.cpp, secqlineedit.h,
84         secqlineedit.cpp: New files.
85         * qt/Makefile.am (pinentry_qt_SOURCES): Add secqstring.h,
86         secqstring.cpp, secqlineedit.h, and secqlineedit.cpp.
87         (nodist_pinentry_qt_SOURCES): Add secqlineedit.moc.cpp.
88         * qt/main.cpp: Do not include "memory.h" or "secmem-util.h", nor
89         <new> or "pinentrycontroller.h".  Include <qapplication.h>,
90         <qmessagebox.h>, <qwidget.h> and "secqstring.h".  Always include
91         <pinentry.h>.
92         [USE_KDE]: Remove all instances.
93         (curses_main): Function removed.
94         (my_new_handler): Likewise.
95         (qt_main): Likewise.
96         (qt_cmd_handler): New function.
97         (pinentry_cmd_handler): Define always (to qt_cmd_handler).
98         (main): Rewritten.
99         * qt/pinentrydialog.cpp: Do not include <qlineedit.h>, but
100         "secqlineedit.h".
101         (PinEntryDialog::PinEntryDialog): Make _edit a SecQLineEdit
102         object.  Connect accepted SIGNAL to accept SLOT, and rejected
103         SIGNAL to reject SLOT.
104         (PinEntryDialog::setText): Make argument SecQString rather than
105         QString.
106         (PinEntryDialog::text): Likewise for return value.
107         * qt/pinentrydialog.h: Declare SecQString and SecQLineEdit classes.
108         (class PinEntryDialog): Disable property text (for now).  Adjust
109         argument of setText and return value of text, as well as type of
110         _edit.  
111
112 2003-12-09  Werner Koch  <wk@gnupg.org>
113
114         * README.CVS: New.
115         * Makefile.am (EXTRA_DIST): Add README.CVS
116         (ACLOCAL_AMFLAGS): New.
117         * configure.ac: Added min_automake_versions.
118         * autogen.sh: Revamped.
119
120 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
121
122         * configure.ac: Version 0.6.10-cvs
123
124 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
125
126         * configure.ac: Version 0.6.9
127         * qt/Makefile.am: Added moc files to DISTCLEANFILES
128         * qt/pinentrycontroller.cpp: Dont spew assuan debug stuff out on stderr.
129
130 2003-03-26  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
131
132         * qt/cppmemory.cpp, qt/main.cpp: Only override array allocation
133           operators. This should take care of the reported memory-problems
134           and even make pinentry-qt use a bit less memory.
135
136 2003-02-15  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
137
138         * qt/pinentrydialog.h, qt/pinentrydialog.cpp: Added icons 
139           for error/non-error messages.
140
141 2003-02-07  Marcus Brinkmann  <marcus@g10code.de>
142
143         Released 0.6.8.
144
145 2003-02-04  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
146
147         * qt/main.cpp: Work around '--display' option. This fixes 
148           the pinentry-qt problem reported by several people lately.
149
150 2003-01-24  Werner Koch  <wk@gnupg.org>
151
152         * autogen.sh: Print a hint to use maintainer mode.
153
154 2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
155
156         * pinentry/pinentry-curses.c (collect_line): New function.
157         (COPY_OUT, MAKE_BUTTON): New macros.
158         (dialog_create): Rewrite the initializing code and the description
159         calculation routine with word wrapping.
160
161 2002-11-20  Werner Koch  <wk@gnupg.org>
162
163         Released 0.6.7.
164
165         * pinentry/pinentry-curses.c (dialog_create): Better truncate
166         lines than to go into an infinite loop.  We need to implement word
167         wrap.
168         (dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning.
169
170 2002-11-12  Werner Koch  <wk@gnupg.org>
171
172         * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config
173         to version 2002-11-08.
174
175 2002-11-09  Werner Koch  <wk@gnupg.org>
176
177         Released 0.6.6.
178
179 2002-11-08  Werner Koch  <wk@gnupg.org>
180
181         * pinentry/pinentry-curses.c (convert_utf8_string): Renamed to 
182         * pinentry/pinentry.c (pinentry_utf8_to_local): this. Changed
183         callers.
184         (pinentry_local_to_utf8): New.
185         (cmd_getpin): Convert result back to UTF-8.
186         * gtk/pinentry-gtk.c (create_utf8_label): New.
187         (create_window): Use it here to set the prompts.
188
189 2002-11-06  Werner Koch  <wk@gnupg.org>
190
191         * pinentry/pinentry-curses.c (dialog_run): Fixed retrun value tests
192         for fopen.
193
194 2002-11-05  Werner Koch  <wk@gnupg.org>
195
196         * secmem/util.c (init_uids): Make it a prototype.
197
198         * gtk/pinentry-gtk.c (enter_callback): Changed argument name to
199         avoid shadowing warning.
200         (create_window): Removed unused variable I.
201         (ok): Not used, commented.
202
203         * pinentry/pinentry.c: Include headers for getpid and sleep
204         prototypes.
205
206         * secmem/util.h: Correctly declare functions taking no args. 
207
208         * gtk/pinentry-gtk.c: Move gtk headers to the top to avoid
209         compiler warnings about shadowing index etc.
210
211         * curses/pinentry-curses.c: Include stdio.h for the printf prototype.
212
213         * pinentry/pinentry-curses.c (dialog_switch_pos): Return a value.
214
215         * pinentry/pinentry.c (pinentry_have_display): New.
216         (pinentry_setbufferlen): Must return a value. Fixed documentation.
217         (usage): Print a question mark as a substitue for the program name.
218
219         * gtk/pinentry-gtk.c (main): use it here instead of getenv().
220         * qt/main.cpp (main): Ditto.
221
222 2002-10-11  Werner Koch  <wk@gnupg.org>
223
224         * configure.ac, Makefile.am: Added doc/ and tests for makeinfo
225
226         * doc/pinentry.texi, doc/Makefile.am: New.
227         * doc/gpl.texi, doc/fdl.texi: Added these standard files.
228
229 2002-09-30  Werner Koch  <wk@gnupg.org>
230
231         Released 0.6.5.
232         
233         * qt/pinentrycontroller.cpp (optionHandler): Make sure that a
234         value is returned.
235         * configure.ac: Use -Wall also for C++.
236
237 2002-08-19  Steffen Hansen  <steffen@hrhansen.dk>
238
239         * Relased 0.6.4.
240
241 2002-08-11  Steffen Hansen  <steffen@hrhansen.dk>
242
243         * Adapted pinentry-qt to new CONFIRM spec.
244
245 2002-06-26  Werner Koch  <wk@gnupg.org>
246
247         Release 0.6.3.
248
249 2002-05-24  Werner Koch  <wk@gnupg.org>
250
251         * AUTHORS: Added Marcus
252         * README: Fixed spelling of Quintuple-Agent. 
253
254 2002-05-13  Marcus Brinkmann  <marcus@g10code.de>
255
256         Released 0.6.2.
257         
258         * configure.ac: Set version number to 0.6.2.
259         * NEWS: Add information for 0.6.2.
260         * README: Update for release.
261
262 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
263
264         * configure.ac: Add option --enable-fallback-curses and bind it to
265         the ncurses check.  Add automake conditional
266         BUILD_LIBPINENTRY_CURSES and FALLBACK_CURSES. Add preprocessor
267         symbol FALLBACK_CURSES.
268
269         * curses/Makefile.am (AM_CPPFLAGS): Add $(NCURSES_INCLUDE).
270         (LDADD): Add ../pinentry/libpinentry-curses.a.
271         * curses/pinentry-curses.c: Include "pinentry-curses.h".
272         Moved most of the meat to ...
273         * pinentry/pinentry-curses.c: ... here.  New file.  Make all
274         functions and global variables static.
275         (dialog_cmd_handler): Rename to ...
276         (curses_cmd_handler): ... this.
277         * pinentry/pinentry-curses.h: New file.
278         * pinentry/Makefile.am (noinst_LIBRARIES)
279         [BUILD_LIBPINENTRY_CURSES]: Add libpinentry-curses.a.
280         (libpinentry_curses_a_SOURCES): New target.
281
282         * gtk/Makefile.am (INCLUDES): Moved all to ...
283         (AM_CPPFLAGS): ... here.
284         [CURSES_FALLBACK]: Define ncurses_include and libcurses.
285         (AM_CPPFLAGS): Add $(ncurses_include).
286         (LDADD): Add $(libcurses).
287         * gtk/pinentry-gtk.c: Rename TIMEOUT to TIME_OUT to avoid conflict
288         with curses.h.
289         [CURSES_FALLBACK]: Include "pinentry-curses.h".
290         (button_clicked): Likewise.
291         (create_window): Likewise.
292         (cmd_handler): Renamed to ...
293         (gtk_cmd_handler): ... this.
294         (pinentry_cmd_handler): Set to gtk_cmd_handler.
295         (main) [CURSES_FALLBACK]: Initialize GTK+ only if environment
296         variable DISPLAY is set, otherwise fall back to curses dialog.
297
298         * pinentry/pinentry.h: Protect against multiple inclusion.
299
300 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
301
302         * curses/pinentry-curses.c (dialog_create): Allow multi-line error
303         texts.
304
305         * pinentry/pinentry.c (cmd_seterror): Call strcpy_escaped, rather
306         than strcpy, to allow percent-escaping the error text.
307
308 2002-04-25  Steffen Hansen  <steffen@hrhansen.dk>
309
310         * pinentry-qt: Use ok and cancel value if
311         provided.
312
313 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
314
315         * gtk/pinentry-gtk.c (create_window): Use ok and cancel value if
316         provided.
317
318 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
319
320         * qt/pinentrycontroller.h: New members _ok and _cancel.
321         * qt/pinentrycontroller.cpp (registerCommands): Add SETOK and SETCANCEL.
322         (assuanOk): New method.
323         (assuanCancel): Likewise.
324
325 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
326
327         * curses/pinentry-curses.c (dialog_create): Grok the new ok and
328         cancel members to set the pbutton texts, rather than parsing the
329         prompt in the confirm case.
330
331         * pinentry/pinentry.h (struct pinentry): Add new members ok and cancel.
332         * pinentry/pinentry.c (register_commands): Add new commands SETOK
333         and SETCANCEL to set button texts.
334         (struct pinentry pinentry): Add initializers for new members.
335         (cmd_setok): New function.
336         (cmd_setcancel): Likewise.
337
338 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
339
340         * curses/pinentry-curses.c (dialog_create): Add '<' and '>' around
341         the user provided button texts.  Replace sizeof by strlen to fix
342         size calculation of ok and cancel button.
343
344 2002-04-23  Marcus Brinkmann  <marcus@g10code.de>
345
346         * pinentry/pinentry.h (struct pinentry): New variables lc_ctype
347         and lc_messages.
348         * pinentry/pinentry.c (usage): New options --lc-ctype and
349         --lc-messages.
350         (pinentry_parse_opts): Likewise.
351         (option_handler): Likewise.
352         (struct pinentry pinentry): New initializers for new members.
353
354         * curses/pinentry-curses.c (convert_utf8_string): New function.
355         (struct dialog): New members ok and cancel.
356         (dialog_create): New variables ERR, DESCRIPTION, ERROR, PROMPT,
357         OK, and CANCEL.  Initialize them with the localised versions of
358         the pinentry strings.  If in confirm mode, split up the prompt at
359         '|' and use the values as button texts.  Use localised strings.
360         (dialog_switch_pos): Use localised strings.
361         (dialog_run): Free dialog strings.
362
363         * acinclude.m4 (AM_ICONV): New check from gettext.
364         * configure.ac: Run AM_ICONV if curses pinentry is build.
365         Don't check for inttypes.h, don't check size of unsigned int or
366         unsigned long.
367         (LIBCAP): Move check to interface independent part.
368
369 2002-04-21  Steffen Hansen  <steffen@hrhansen.dk>
370
371         * Removed X11 dependency and use Qt for grabbing the keyboard.
372         * Clear the lineedit before asking the user for the PIN.
373
374 2002-04-12  Steffen Hansen  <steffen@hrhansen.dk>
375
376         * Enable pinentry-qt if Qt is found
377
378 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
379
380         * qt: New directory.
381         * qt/Makefile.am, qt/cppmemory.cpp, qt/main.cpp,
382         pinentrycontroller.cpp, qt/pinentrycontroller.h,
383         qt/pinentrydialog.cpp, qt/pinentrydialog.h: New file, copied from
384         kde/.
385         * kde: Directory removed.
386         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
387         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
388         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
389         kde/pinentrydialog.h: Files removed.
390         * acinclude.m4: Removed the KE checks and completely overhauled
391         the Qt checks, putting all Qt checks in their own namespace QT_,
392         and make it declare QT_-prefixed variables for linking and
393         compilation.
394         * configure.ac: Use the new Qt checks instead the KDE checks.
395         Replace "kde" with "qt" everywhere.
396         * Makefile.am: Replace "kde" with "qt" everywhere.
397         
398 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
399
400         * acinclude.m4: Reworked the Qt and KDE checks, cutting out a lot
401         of dead and not-so-dead wood.  Gave all KDE checks proper names.
402         * configure.ac: Use the new names for the KDE checks.
403
404 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
405
406         * kde/Makefile.am (EXTRA_DIST): Remove variable.
407         (install-data-local): Remove target.
408         (uninstall-local): Likewise.
409
410 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
411
412         Released 0.6.0.
413         
414         * configure.ac: Set version number to 0.6.
415         * NEWS: Add information for 0.6.0.
416         * secmem/Makefile.am (libsecmem_a_SOURCES): Replace secmem.h with memory.
417         * kde/Makefile.am (pinentry_kde_SOURCES): Move
418         pinentrydialog.moc.cpp and pinentrycontroller.moc.cpp to ...
419         (nodist_pinentry_kde_SOURCES): ... this new target.
420
421 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
422
423         * acinclude.m4: A lot of new checks more or less straight from KDE's
424         admin/acinclude.m4.in.
425         * configure.ac (AC_CANONICAL_HOST): Call that macro.
426         (AC_CHECK_COMPILERS, AC_PATH_KDE): Call those macros if KDE
427         pinentry is enabled.
428         * kde/Makefile.am (CXXFLAGS, XXX_PREFIX, XXX_KDE_DEFINES, LIB_QT,
429         LIB_KDECORE, LIB_KDEUI, KDE_RPATH, MOC, kde_appsdir): Variables removed.
430         (AM_CPPFLAGS): Replace XXX_KDE_DEFINES by all_includes.
431         (pinentry_kde_LDFLAGS): Add all_libraries.
432         * README: Document that automatic check is not possible for KDE.
433
434 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
435
436         * curses/pinentry-curses.c (dialog_run): Add handling for TAB key.
437         (dialog_create): New variable description_x.  Calculate dimension
438         of multi-line description correctly.
439
440 2002-04-04  Marcus Brinkmann  <marcus@g10code.de>
441
442         * pinentry/pinentry.h (struct pinentry): New members DISPLAY,
443         TTYNAME and TTYTYPE.
444         * pinentry/pinentry.c (pinentry): Likewise.
445         * pinentry/pinentry.c: Include <string.h>.
446         (usage): Add new options --display,
447         --ttyname and --ttytype.
448         (option_handler): Likewise.
449         (pinentry_parse_opts): Likewise.
450
451         * curses/pinentry-curses.c (dialog_cmd_handler): Use
452         PINENTRY->ttyname and PINENTRY->ttytype.
453
454 2002-03-30  Marcus Brinkmann  <marcus@g10code.de>
455
456         * acinclude.m4: Add AM_PATH_GLIB and AM_PATH_GTK.
457
458 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
459
460         * configure.ac: Choose a more appropriate AC_CONFIG_SRCDIR.
461
462 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
463
464         * kde/Makefile.am (pinentry_kde_LDADD): Link with $(LIBCAP).
465         * gtk/Makefile.am (install-exec-local): Moved to ...
466         * Makefile.am (install-exec-local): ... here.
467
468 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
469
470         * kde/Makefile.am (kde_appsdir): New variable.
471         * kde/Makefile.am (install-data-local): Use DESTDIR.
472         (uninstall-local): Likewise.
473
474 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
475
476         Merge of the gpinentry and curses pinentry program into the
477         pinentry distribution.  For this, the structure of the repository
478         has been thoroughly overhauled.  Some of the changes:
479         * secmem: New directory with secure memory allocation code.
480         * pinentry: New directory with pinentry support library.
481         * curses: New directory with curses frontend.
482         * gtk: New directory with GTK+ frontend.
483         * kde: New directory with only the core of the old kpinentry program.
484         * admin: Directory removed.
485         * po: Directory removed.
486         * kpinentry: Directory removed.
487         * doc: Directory removed.
488         * jnlib: Directory removed.x
489
490         The changes in more detail:
491         * AUTHORS: Add authors of other pinentry frontends.
492         * ChangeLog: Add the one from gpinentry.
493         * Makefile.am: Completely rewritten.
494         * README: Add content.
495         * TODO: Add content.
496         * NEWS: New file from gpinentry.
497         * THANKS: New file from gpinentry.
498         * acinclude.m4: New file.
499         * configure.ac: New file which configures for all frontends.
500         * curses/Makefile.am, curses/pinentry-curses.c: New files for
501         curses frontend.
502         * gtk/Makefile.am, gtk/gtksecentry.c, gtk/gtksecentry.h,
503         gtk/pinentry-gtk.c: New files, modified from gpinentry, for GTK+
504         frontend.
505         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
506         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
507         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
508         kde/pinentrydialog.h: New files, modified from kpinentry, for KDE
509         frontend.
510         * pinentry/Makefile.am, pinentry/pinentry.c, pinentry/pinentry.h:
511         New files containing pinentry support library, partly factored out
512         from gpinentry.
513         * secmem/Makefile.am, secmem/memory.h, secmem/secmem-util.h,
514         secmem/secmem.c, secmem/util.c, secmem/util.h: New files
515         containing secure memory allocation code common to all pinentry
516         frontends.
517         * Makefile.dist, acconfig.h, configure.files, configure.in.in:
518         Files removed in favor of new configure.ac.
519         * pinentry.lsm: Removed file never used.
520         * stamp-h.in: Removed generated file.
521         * admin/ChangeLog, admin/Makefile.common, admin/acinclude.m4.in,
522         admin/am_edit, admin/am_edit.py, admin/conf.change.pl,
523         admin/config.guess, admin/config.pl, admin/config.sub,
524         admin/configure.in.min, admin/debianrules, admin/depcomp,
525         admin/install-sh, admin/libtool.m4.in, admin/ltcf-c.sh,
526         admin/ltcf-cxx.sh, admin/ltcf-gcj.sh, admin/ltconfig,
527         admin/ltmain.sh, admin/missing, admin/mkinstalldirs, admin/ylwrap:
528         Removed KDE build suite in favor of configure.ac.
529         * doc/Makefile.am, doc/en/Makefile.am, doc/en/index.docbook:
530         Removed files never used.
531         * jnlib/ChangeLog, jnlib/Makefile.am, jnlib/argparse.c,
532         jnlib/argparse.h jnlib/dotlock.c, jnlib/dotlock.h,
533         jnlib/libjnlib-config.h, jnlib/logging.c, jnlib/logging.h,
534         jnlib/mischelp.h, jnlib/stringhelp.c, jnlib/stringhelp.h,
535         jnlib/strlist.c, jnlib/strlist.h, jnlib/types.h, jnlib/xmalloc.c,
536         jnlib/xmalloc.h: Removed files no longer used.
537         * kpinentry/Makefile.am, kpinentry/cppmemory.cpp,
538         kpinentry/cppmemory.h, kpinentry/i18n.h, kpinentry/main.cpp,
539         kpinentry/memory.h, kpinentry/pinentry.desktop,
540         kpinentry/pinentrycontroller.cpp, kpinentry/pinentrycontroller.h,
541         kpinentry/pinentrydialog.cpp, kpinentry/pinentrydialog.h,
542         kpinentry/secmem.cpp, kpinentry/util.cpp, kpinentry/util.h:
543         Removed files in favor of new files in kde/.
544         * po/Makefile.am, po/pinentry.pot: Removed files never used.
545
546         * autogen.sh: New file.
547
548 2002-03-04  Werner Koch  <wk@gnupg.org>
549
550         * gpinentry.c (enter_callback): New
551         (create_window): Connect it to the entry field.
552
553 2002-02-18  Werner Koch  <wk@gnupg.org>
554
555         Released 0.5.1.
556
557         * gpinentry.c (create_window): Add CONFIRM_MODE.
558         (cmd_confirm): Implemented.
559
560         * assuan/:  Updated from NewPG.
561
562 2002-01-20  Werner Koch  <wk@gnupg.org>
563
564         * gpinentry.c (option_handler): New to allow changing of the grab
565         status.
566         (grab_keyboard): Shortcut this when global grab is not set.
567
568 2002-01-04  Werner Koch  <wk@gnupg.org>
569
570         Released 0.5.0.
571         
572         * configure.ac: Bumbed version
573
574         * util.h (xtoi_1, xtoi_2): New.
575         * gpinentry.c (strcpy_escaped): New
576         (cmd_setdesc, cmd_seterror): Use it here to allo multiline texts.
577
578         * gpinentry: Removed debugging outbut
579         (create_window): Tweaked layout.
580
581 2001-12-07  Werner Koch  <wk@gnupg.org>
582
583         New package gpinentry based on quintuple-agent.
584         
585         Removed all stuff except for the basic configuration stuff and
586         what is needed to build gpinentry.  Also removed i18n support.
587         * gpinentry.c: Renamed from secret-query.c
588
589 2001-02-12  Robert Bihlmeyer  <robbe@orcus.priv.at>
590
591         * 1.0.0 released. Woo-hoo!
592
593         * configure.in, NEWS: Bumped version.
594
595 2001-02-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
596
597         * agent.c (make_tmpdir): Honor $TMPDIR.
598
599         (agent): Would exit on every minor problem. Now, we just close the
600         offending connection.
601         Ignore SIGPIPE, so that EPIPE will close connection.
602
603 2001-01-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
604
605         * secmem.c: Move one include statement so that the thing compiles.
606
607         * secret-query.c (main): Minor source cosmetics.
608
609 2000-11-16  Robert Bihlmeyer  <robbe@orcus.priv.at>
610
611         * gtksecentry.c (gtk_secure_entry_insert_text): Secured a couple
612         of memory (de)allocations that were missed. Thanks to John Steele
613         <jhs28@eng.cam.ac.uk> for spotting these.
614
615 2000-11-10  Robert Bihlmeyer  <robbe@orcus.priv.at>
616
617         * Thoughts: Removed in favor of new TODO.
618
619         * README: Remove content and refer to doc/manual.info instead.
620
621         * agent.c (do_get): Would burn badly on a premature exit of the
622         query program (which would occur routinely if you selected /cancel/).
623
624 2000-10-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
625
626         * memory.h: Include sys/types.h for size_t.
627
628 2000-10-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
629
630         * README: Removed apology about missing documentation.
631         Updated paragraph about Linux capability patch.
632         Typo & Refill.
633
634 2000-10-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
635
636         * 0.9 released.
637
638         * Makefile.am (EXTRA_DIST): Distribute BUGS (the file, that is).
639
640         * configure.in, NEWS: Bumped version.
641
642         * Makefile.am, configure.in: Add debian subdir.
643
644         * README: Recommend GTK+.
645         Update list of checked platforms.
646
647 2000-10-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
648
649         * secret-query.c (ok): Simplify.
650         Put empty line between headers and secret.
651         (usage): Document '--help' and '--version'.
652
653         * agent.c (do_get): Use enhanced secret-query output to fill in
654         options.
655
656 2000-10-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
657
658         * secret-query.c (main): Clarify error.
659
660         * client.c (query_options): New global variable.
661         (main): New option '--query-options' to pass options to the query
662         program.
663         (xgetpass): Use it.
664
665         * agent.c (main): New option '--query-options' to pass options to
666         the query program.
667         (do_get): Use 'query_options'.
668
669         * acconfig.h, configure.in: Add QUERY_PROGRAM definition.
670         * client.c: Remove here.
671         * agent.c (do_get): Use it here, too.
672
673         * secret-query.c (main): New option '--no-global-grab' introduced,
674         that prevents keyboard grabbing unless the window has focus.
675
676 2000-09-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
677
678         * secret-query.c (usage): Add two missing pieces of "\n\".
679
680         * agent.c (main): --nofork is now the default, and the option is
681         deprecated. New option --fork added to turn forking on again.
682         Close stdout (and stderr unless debugging) even when not forking,
683         so that normal usage inside eval is still possible.
684         (agent): Exit gracefully on HUP, so that logging out now kills the
685         agent. 
686
687         * README (Contact Information): Old URL - duh!
688         (Using Secret Agent): We no longer fork per default.
689
690         * Makefile.am (lib/libutil.a): New target, allows targets that not
691         automatically recurse (but still depend on libutil.a) to succeed.
692
693 2000-07-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
694
695         * secret-query.c (usage): New function.
696         (main): Parse options: debug, enhanced, help, version.
697         Turn on locale support.
698         If enhanced, insert widgets to ask for timeout and insurance.
699         (ok): If enhanced, print more information on exit.
700         (grab_keyboard): Die if grab was unsuccessful.
701
702 2000-05-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
703
704         * 0.8 released.
705
706         * configure.in, NEWS: Bumped version.
707
708         * Makefile.am (SUBDIRS): Include doc.
709
710         * configure.in, acconfig.h: Check for ssize_t.
711         Check for vsnprintf(), strdup().
712         Generate doc/Makefile.
713
714         * apgp.c, agpg.c, agentlib.c, util.c: Include more stuff.
715
716         * agent.c (do_get): Use asprintf() instead of snprintf() so we
717         don't need to roll our own for yet another function.
718         Fix some includes.
719
720         * acinclude.m4: gettext macros copied from automake and fixed.
721
722 2000-05-30  Robert Bihlmeyer  <robbe@orcus.priv.at>
723
724         * configure.in, Makefile.am: Properly include doc subdir.
725
726 2000-05-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
727
728         * configure.in, acconfig.h: Add test for XMESSAGE path.
729
730         * client.c (main): Decode command from string to integer code
731         first, then evaluate that in ifs.
732
733         * secret-ask.c: New file, external ask-for-confirmation utility.
734
735         * configure.in, Makefile.am: Add secret-ask to programs being
736         built when GTK is available. Rename QUERY to more descriptive
737         GTK_PROGRAMS.
738
739         * agent.c (do_get): If GTK is available, try executing secret-ask
740         first.
741         Only put the comment into the insure-question if there is a
742         comment.
743         (main): --csh was missing from usage message.
744
745 2000-04-23  Robert Bihlmeyer  <robbe@orcus.priv.at>
746
747         * secret-query.c (constrain_size): Lower window max_width to
748         accomodate bugs in GTK and Scwm.
749
750         * agent.c (main): Set x_enabled if X appears to be available.
751         Use it to selectively make FLAGS_INSURE supported.
752         (do_get): Use it instead of testing at every call.
753         (do_put): Requests containing unsupported flags fail.
754         (forget_old_stuff): Would not set next_deadline correctly.
755         (do_get): Implement FLAGS_INSURE.
756
757         * client.c (main): "list" format changed so that comment is to the
758         far right. Display the deadline as proper date/time, too.
759
760 1999-11-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
761
762         * agent.c (next_deadline): New global variable, holds time when
763         next secret has to be killed.
764         (store): Keep it up-to-date.
765         (forget_old_stuff): New function, reaps secrets ready to kill,
766         keeps next_deadline updated.
767         (agent): Use it on all secrets, whenever a deadline is active.
768
769 1999-11-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
770
771         * agent.h (request_put): Add flags, deadline. Increase REQUEST_MAGIC. 
772         (reply_get): Ditto, and increase REPLY_MAGIC.
773         * agent.c (store): Store flags, deadline in reply.
774         (do_put): Hand flags, deadline from request on to store().
775         (do_get): Store on-demand queried secrets without deadline or
776         special flags, for now.
777         (agent): Do not ignore obsolete clients, return an error reply.
778         * agentlib.c (agent_put): Add flags, deadline arguments, and copy
779         them into the request.
780         * agentlib.h (agent_put): Update prototype.
781 *       * client.c (main): Added --time-to-live (-t) and --insure (-i)
782         options, influencing PUT's deadline and flags, respectively.
783         (main): Change list format to include new attributes.
784
785 1999-11-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
786
787         * configure.in: <getopt.h> check had redundant definition.
788         * acconfig.h: Remove here, too.
789
790         * configure.in: Check for <inttypes.h>. If not found, check for
791         unsigned {int, long} sizes.
792         * agent.h: Either include <inttypes.h>, or try to define uint32_t
793         yourself.
794         Need to include "config.h".
795
796 1999-11-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
797
798         * Makefile.am (signed-dist): New rule, generates sig for dist.
799         (%.sig): New rule, for detached signatures in general.
800
801         * configure.in: Check for ulong.
802         * acconfig.h: Document it.
803         * secmem.c: Unconditionally defining it is no longer necessary
804         here. But do include <sys/types.h> in all cases.
805
806         * 0.7 released.
807
808         * secmem.c: ulong is not defined on all systems.
809
810         * agent.h: <inttypes.h> should define `uint32_t' as per Unix98, so
811         we use that.
812
813 1999-11-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
814
815         * agent.h: Augmented requests and replies with magic numbers.
816         Data structures heavily commented.
817         All structures and enums typedef'd.
818         * agent.c: Adapted.
819         (store): Set magic number in stored reply.
820         (do_put): Set magic number in reply.
821         (do_delete): Ditto.
822         (do_list): Ditto. 
823         (agent): Check magic number in request.
824         * agentlib.c: Adapted.
825         (send_request): Set magic number in request. Check it in reply.
826         * agentlib.h: Adapted.
827         * agpg.c: Adapted.
828         * apgp.c: Adapted.
829         * client.c: Adapted.
830
831 1999-10-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
832
833         * secmem.c: Instead of defining ulong directly, include
834         <sys/types.h>
835
836         * secret-query.c (constrain_size): New function, puts constrains
837         on size of toplevel window.
838         (grab_keyboard): Removed protection against multiple calls.
839         (ungrab_keyboard): New function, cancelling a keyboard grab.
840         (main): Hang `grab_keyboard' onto map-event which makes it
841         actually work, hang `ungrab_keyboard' onto unmap-event.
842         Hang `constrain_size' onto size-request.
843
844         * secmem.c: ulong was undefined on some systems.
845
846 1999-10-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
847
848         * Makefile.am (install-exec-local): Ignore setcap errors.
849
850         * apgp.c: New program, based on agpg.c, but for pgp2.6.
851         * Makefile.am (bin_PROGRAMS, apgp_SOURCES): Added it.
852
853         * agpg.c (GPG): New constant.
854         (find_id, main): Use it throughout.
855         (find_id): Forgot to pclose on success.
856
857         * secret-query.c (main): Don't expand anything.
858         Use a button box for the buttons.
859         Prompt label can be overridden from the commandline.
860         * agent.c (do_get): Make spawned secret-query show the id.
861         * client.c (xgetpass): Pass prompt to secret-query.
862         (main): Include id in xgetpass prompt.
863
864 1999-10-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
865
866         * configure.in: setcap must be searched outside the usual user
867         PATH, too.
868         * Makefile.am (install-exec-local): Set cap_ipc_lock permitted on
869         installed binaries, if possible.
870
871         * agent.c (xdup2): New function, dup2 with error handling.
872         (move_fd): New function, moves fds.
873         (store): New function, abstracted out from do_put.
874         (do_put): Use it.
875         (do_get): If secret was not found, and DISPLAY is set, try to
876         query the user about it. If successful, store it.
877         (main): Route standard file descriptors to /dev/null rather than
878         just closing them. The latter would confuse children.
879
880 1999-10-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
881
882         * gtksecentry.c, gtksecentry.h: New files, being slightly modified
883         versions of GTK+'s gtkentry.[ch], spiffed up to use secure memory.
884         * secret-query.c (ok, unselect, main): Replace GtkEntry with
885         GtkSecureEntry.
886         (main): Initialize secure memory.
887         * Makefile.am (secret_query_SOURCES): Added gtksecentry.[ch].
888
889         * README (Security): New chapter.
890
891         * configure.in, acconfig.h: Check for POSIX capabilities, and the
892         setcap program.
893         * Makefile.am: Link LIBCAP to those binaries using secmem.c.
894
895         * util.h: Include <sys/types.h> for size_t.
896
897 1999-09-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
898
899         * secmem.c: Synced with gnupg-1.0 (top new feature: capabilities).
900         (log_fatal): New function, logs to stderr, and dies.
901
902 1999-09-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
903
904         * secmem.c (log_info): New function, logs to stderr.
905
906         * agent.c (agent): select() expects the number of fds, not the
907         highest fd. So remember that number.
908
909         * agent.c (agent): Don't use FD_SETSIZE, which is not defined on
910         all systems. Remember the number of the highest descriptor
911         instead.
912
913         * configure.in: Replace getline() instead of getdelim() because
914         this is the function we really need. Still check for getdelim(),
915         though - there are systems out there where this is provided, but
916         getline() is not.
917
918 1999-09-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
919
920         * 0.6 released.
921
922         * configure.in: Bump version.
923
924         * NEWS: Updated.
925
926 1999-08-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
927
928         * util.c (init_uids, lower_privs, raise_privs, drop_privs): New
929         functions, for setuid binaries, extracted from agent.c.
930         * util.h: Add prototypes for them.
931         * agpg.c (main): Use them.
932         * client.c (main): Ditto.
933         * agent.c (main): Ditto. Removed code that did the same.
934         Unconditionally include "asprintf.h" (it protects itself now).
935
936 1999-08-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
937
938         * Makefile.am (SUBDIRS): Process . before test so that "make
939         check" always builds all in . first.
940
941 1999-08-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
942
943         * secret-query.c: Include "config.h".
944
945         * agent.h (reply_list_entry, reply_list): New reply structures.
946         * agent.c (send_list_entry): New function.
947         (do_list): First send number of entries, then each entry via
948         send_list_entry().
949         * agentlib.c (agent_list): Read entries returned by LIST request.
950         * client.c (main): Output all entries returned by agent_list().
951
952         * agentlib.c (agent_put): Don't construct PUT request in insecure
953         stack space.
954
955 1999-08-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
956
957         * NEWS: Bump patchlevel.
958
959         * configure.in: Bump patchlevel.
960         Check for missing setenv().
961
962 1999-08-09  Robert Bihlmeyer  <robbe@orcus.priv.at>
963
964         * configure.in: Check for strsignal().
965
966         * client-test: Obsoleted by test/client.
967
968         * Makefile.am (SUBDIRS): New subdirectory.
969         * configure.in (AC_OUTPUT): Add here, too.
970
971         * 0.5 released.
972
973         * README: Explain why secret-client will not output secrets to a
974         tty, and mention the cat-trick.
975
976         * agent.c (main): If seteuid is not available, don't use it and
977         issue a warning if running setuid.
978
979         * configure.in: Run together two REPLACE_FUNCS.
980         Check for seteuid.
981
982         * client-test: Mask out insecure memory warnings.
983
984         * agentlib.c (send_request): Let the calling functions reserve
985         space for the reply, but offer a simple way for simple requests.
986         (agent_get): Allocate secure memory.
987
988         * agent.c (main): Moved secmem_init() after the fork, since that
989         seemingly munlock's all pages.
990         Drop priviledges just in case somebody wants to install this
991         suid-root.
992         Flush stdout.
993
994         * agpg.c (find_id): Would reorder arguments.
995         Initialize opt_version.
996         (main): Initialize secure memory.
997
998         * Makefile.am (agpg_SOURCES): Link with secure memory module.
999
1000         * client.c (usage): Fixed another program name reference.
1001
1002 1999-08-06  Robert Bihlmeyer  <robbe@orcus.priv.at>
1003
1004         * configure.in: Conditionally define HAVE_GTK.
1005         * acconfig.h: Add here too.
1006
1007         * client.c (xgetpass): Use "secret-query" only if it was built.
1008         (main): Don't output secret (GET command) to ttys.
1009
1010         * agpg.c (find_id): Also print own version if "--version" is given.
1011         (main): Check agent_init() errors.
1012         Print error if exec fails.
1013
1014         * agent.c (main): Added an option to produce csh-compatible
1015         output.
1016
1017         * agent.c, client.c: Forgot the terminating NULL in long options.
1018         Fixed the program names in usage and version output.
1019
1020         * agent.c (create_socket): AF_UNIX and PF_UNIX are Unix98, so
1021         that's what we use. AF_LOCAL, PF_LOCAL removed.
1022         * agentlib.c (agent_init): Ditto.
1023
1024 1999-08-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
1025
1026         * 0.4 released.
1027
1028         * configure.in: Bumped version.
1029         Check for missing getdelim.
1030
1031         * cgpg: Removed, obsoleted by agpg.
1032         * Makefile.am: Here, too.
1033
1034         * agpg.c (find_id): New function.
1035         (main): Use it.
1036
1037         * Makefile.am (INCLUDES): Put GTK_FLAGS and GLIB_FLAGS here. It
1038         is the easiest way for sources needing it, and it won't hurt those 
1039         that don't.
1040         (agent.o): Explicit command removed accordingly.
1041
1042 1999-08-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1043
1044         * configure.in: Need double quoting in nested AC_MSG_WARN.
1045
1046         * client.c (xgetpass): If no tty is available, but a DISPLAY is,
1047         fork off "secure-query" to read the secret.
1048         Put the fgets into a loop that keeps reading until all of the
1049         secret is read.
1050
1051         * client-test: Unset DISPLAY, so that "secret-query" is never used.
1052
1053 1999-08-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
1054
1055         * agpg.c: New file, first cut at a C version of the gpg wrapper,
1056         written in a hurry (20 keys waiting to be signed, and a growling
1057         stomach).
1058         * Makefile.am: Add it to built programs.
1059         (LDADD): New default.
1060         (secret_client_LDADD): Removed, since it was identical to default.
1061
1062 1999-08-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1063
1064         * secret-query.c: New program, queries the user for a password.
1065         * Makefile.am (bin_PROGRAMS): Added it.
1066         * configure.in: Check for GTK+, build "secret-query" only when
1067         that is available.
1068
1069         * cgpg: Extra argument for ID is no longer necessary. cgpg will
1070         scan the gpg args for switches that affect user-id, and determine
1071         the right key itself. Per convention, the key-id is used by "GET".
1072
1073         * configure.in: The project name is now "secret-agent".
1074
1075         * Makefile.am: "agent" & "client" renamed to "secret-agent" &
1076         "secret-client", respectively.
1077         * client-test: Adapt to new names.
1078
1079         * Thoughts: Removed discussion of other names.
1080         Added indication of which things already work.
1081
1082         * agent.c (make_tmpdir): Removed occurance of "gpg-agent."
1083
1084         * README: First proper version.
1085
1086         * client-test: Context diffs are more portable then unified diffs.
1087
1088         * agent.c, agent.h, agentlib.c, agentlib.h, client.c, memory.h,
1089         util.c, util.h: Banner updated to new name.
1090
1091 1999-07-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
1092
1093         * configure.in: Check for missing asprintf.
1094         Check if -lsocket is needed.
1095
1096         * secmem.c (secmem_dump_stats): Replace usage of ulong.
1097
1098         * Makefile.am (INCLUDES): Add the lib subdirectory to include search.
1099
1100         * agent.c: Forgot to include <string.h>.
1101         Include RYO asprintf header if this function is missing.
1102         For the sake of compatibility, provide a definition for AF_LOCAL,
1103         PF_LOCAL, if missing.
1104         * agentlib.c: Ditto.
1105
1106 1999-07-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1107
1108         * Makefile.am (client_SOURCES): Add "secmem.c", "memory.h".
1109
1110         * client.c (xgetpass): Use secmem_malloc() instead of RYO.
1111         (main): Init and shutdown secmem.
1112
1113 1999-07-27  Robert Bihlmeyer  <robbe@orcus.priv.at>
1114
1115         * Makefile.am (agent_SOURCES): Add "secmem.c", "i18n.h", "memory.h".
1116         (client_SOURCES): Add "i18n.h".
1117
1118         * client.c (main): Exit on agent_init() failure.
1119
1120         * agent.c (main): Init secmem.
1121         Make --debug switch cumulative.
1122         (cleanup): Shutdown secmem.
1123         (do_put): Use secmem for storage of secrets.
1124         (do_delete): Use secmem_free(). Since this wipes the memory on its 
1125         own, wipe() is superflous now.
1126         (agent): Use secmem for inbound requests.
1127         (delete_secret): New function, takes part of do_delete's
1128         functionality.
1129         (do_put): Use it to remove old versions stored under the same id.
1130         (do_delete): Use it to delete secrets.
1131
1132         * memory.h: New file.
1133
1134         * secmem.c: New file, snarfed from GnuPG and modified slightly.
1135
1136         * acinclude.m4: New file.
1137         * configure.in: (ALL_LINGUAS): Expanded list of available
1138         languages. Most of them only have a few translations from gpg,
1139         tough ...
1140         getopt_long test was commented out for debugging,
1141         and left such. Fixed.
1142         Check for mlock.
1143         * acconfig.h: Comment HAVE_BROKEN_MLOCK.
1144
1145         * cgpg: A space was missing.
1146
1147         * i18n.h: New file, centralizing the gettext macro defs.
1148
1149         * agent.c (BLIND): New macro, that blinds out a secret if debug
1150         level is too low.
1151         (do_put): Use it.
1152         (do_get): Use it.
1153         Include i18n.h.
1154
1155         * agentlib.c: Include i18n.h
1156         
1157         * client.c (usage): New function.
1158         Usage-message made gettext-friendly.
1159         (xgetpass): Use perror() instead of fprintf().
1160         (main): Use it.
1161         Make comment an optional argument of PUT.
1162         Include i18n.h.
1163
1164 1999-07-26  Robert Bihlmeyer  <robbe@orcus.priv.at>
1165
1166         * Makefile.am (client_LDADD): Add lib/libutil.a for portability.
1167         (agent_LDADD): Ditto.
1168         (SUBDIRS): Add lib directory.
1169         (bin_SCRIPTS): New with cgpg, so it gets installed, too.
1170
1171         * configure.in: Add lib/Makefile to output.
1172
1173 1999-07-24  Robert Bihlmeyer  <robbe@orcus.priv.at>
1174
1175         * cgpg: New file.
1176         * Makefile.am (EXTRA_DIST): Added it.
1177
1178         * agent.c: Moved inclusion of config.h before inclusion of
1179         libintl.h since the latter needs HAVE_LC_MESSAGE.
1180         * client.c: Ditto.
1181         * clientlib.c: Ditto.
1182
1183         * client-test: Update for new client semantics.
1184
1185         * client.c (check_status): Use debugmsg(). Do nothing if not
1186         debugging.
1187         (xgetpass): New function, getpass replacement that uses mlock'ed
1188         memory.
1189         (main): PUT now asks for the secret rather then getting it from
1190         the commandline.
1191         GET prints only the secret to stdout.
1192
1193         * configure.in: Rearranged.
1194         Check for socklen_t.
1195         * acconfig.h: Added a definition for it.
1196
1197         * client.c: Include packaged getopt.h if the system doesn't provide 
1198         one. 
1199         * agent.c: Ditto.
1200         (create_socket): Replace AF_FILE, PF_FILE with AF_LOCAL, PF_LOCAL
1201         for portability.
1202         * agentlib.c (agent_init): Ditto.
1203         Explicitly cast addr to a sockaddr pointer.
1204
1205         * Makefile.am (client_LDADD): Added @INTLLIBS@.
1206         (agent_LDADD): Ditto.
1207
1208 1999-07-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1209
1210         * configure.in: Check for getopt.h and getopt_long.
1211         * acconfig.h (HAVE_GETOPT_H): New define.
1212         * lib/getopt.c, lib/getopt1.c, lib/getopt.h: Added.
1213
1214 1999-07-18  Robert Bihlmeyer  <robbe@orcus.priv.at>
1215
1216         * 0.2 released.
1217
1218         * NEWS: Updated.
1219
1220         * Makefile.am (agent.o): Mentioning the source explicitly does not 
1221         work for srcdir!=builddir.
1222
1223         * client.c (main): Function arguments are not always evaluated in
1224         order, so drop the neat ++optind in favor of optind+1, optind+2,
1225         etc.
1226
1227         * configure.in: Upped version.
1228
1229 1999-06-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1230
1231         * util.h: Added multi-inclusion guard.
1232
1233         * agent.c Include "util.h".
1234         (main): Forgot to exit at end.
1235         (do_delete): Assume that value is a string and wipe it accordingly.
1236
1237         * configure.in (--enable-debug): New switch.
1238
1239         * agent.h (status_t): Added STATUS_COMM_ERR code.
1240         Added multi-inclusion guard.
1241
1242         * client.c (main): Abstracted out most functionality into a
1243         function library, namely:
1244         * agentlib.c: New file.
1245         * agentlib.h: New file.
1246         * Makefile.am (client_SOURCES): Added agentlib.c, agentlib.h.
1247
1248         * Makefile.am (INCLUDES): GLIB_CFLAGS moved again, this time to
1249         the agent.o target. 
1250
1251 1999-06-15  Robert Bihlmeyer  <robbe@orcus.priv.at>
1252
1253         * 0.1 released.
1254
1255         * Makefile.am (agent_CFLAGS): Removed - did not work.
1256         (INCLUDES): Moved the GLIB stuff here.
1257
1258 1999-06-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1259
1260         * configure.in (ALL_LINGUAS): Added `de'.
1261
1262         * agent.c (do_get): Added more debugmsgs.
1263         (do_put): Wouldn't allocate enough for `value'.
1264         (main): New option "--nofork" prevents forking.
1265         Use macros for the std filedescriptor numbers.
1266         Only close stderr if not debugging.
1267         (main): Make Usage string gettext-friendly.
1268
1269         * client-test (cleanup): New function.
1270         Call it on shell exit.
1271         (client): New function.
1272         Use it instead of calling client binary directly.
1273         diff client output with expected one in GET testcases.
1274
1275 1999-06-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1276
1277         * agent.c (failed_reply): New constant.
1278         (do_list): Use it.
1279         (do_put): The hash key was overwritten - strdup it.
1280         Construct a GET reply and save that in the hash.
1281         (do_get): Just send the preconstructed reply if the id is present, 
1282         and failed_reply otherwise.
1283         (do_delete): Actually free the hashed stuff.
1284
1285         * client.c: Exit with error if agent returned STATUS_FAIL.
1286
1287         * Makefile.am (EXTRA_DIST): Added autogen.sh, Thoughts,
1288         client-test.
1289         (TESTS): Added client-test.
1290         (AUTOMAKE_OPTIONS): Added gnits. 
1291
1292         
1293  Copyright 2002, 2003 g10 Code GmbH
1294
1295  This file is free software; as a special exception the author gives
1296  unlimited permission to copy and/or distribute it, with or without
1297  modifications, as long as this notice is preserved.
1298
1299  This file is distributed in the hope that it will be useful, but
1300  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1301  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.