2017-12-03  Werner Koch  <wk@gnupg.org>

	Release 1.1.0.
	+ commit 02df3d26b986c8f2850eeba47efcb3aca9d5dbcb


2017-11-22  Damien Goutte-Gattat  <dgouttegattat@incenp.org>
	    "deloptes"  <deloptes@gmail.com>

	tqt: Add a TQt-based pinentry.
	+ commit 985e5cad6f60de8e60d8ae410cffcd7e2d84f3a2
	* NEWS: Update.
	* Makefile.am: Add new tqt subdirectory.
	* configure.ac: Add --enable-pinentry-tqt option.
	* tqt/Makefile.am: New file.
	* tqt/main.cpp: New file.
	* tqt/pinentrydialog.cpp: New file.
	* tqt/pinentrydialog.h: New file.
	* tqt/secqinternal.cpp: New file.
	* tqt/secqinternal_p.h: New file.
	* tqt/secqlineedit.cpp: New file.
	* tqt/secqlineedit.h: New file.
	* tqt/secqstring.cpp: New file.
	* tqt/secqstring.h: New file.

2017-11-21  Werner Koch  <wk@gnupg.org>

	w32: Allow building for Windows again.
	+ commit 8ea3a6c3f8e72ebece2af9b1b05ea1da4865a786
	* pinentry/pinentry.c [W32]: Do not include utsname.h
	(WITH_UTF8_CONVERSION): New macro.
	(lc_ctype_unknown_warning): Move that var to the top and define only
	if needed.
	(pinentry_utf8_to_local, pinentry_local_to_utf8): Simplyfy by using
	the new macro.
	(get_cmdline) [W32]: Do not build.
	(get_pid_name_for_uid) [W32]: Do not build.
	(pinentry_get_title) [W32]: Do not use the new utsname code.
	(option_handler) <debug-wait>: Ignore for any Windows version.

2017-11-20  Werner Koch  <wk@gnupg.org>

	Add SPDX-License-Identifier to most files.
	+ commit 622f876784239c9524a598e6486181bcd0ee64b2


	Add copyright info for AUTHORS.
	+ commit 738ab548f13cc032f01ca5da1f8dc3ea221b209d


2017-11-16  Damien Goutte-Gattat  <dgouttegattat@incenp.org>

	fltk: Fix compilation and distcheck errors.
	+ commit 89ae5378d1cc54be0825bcfa3ea567b1caa4a247
	* fltk/Makefile.am (AM_CXXFLAGS): Add -std=c++11 flag.
	(pinentry_fltk_SOURCES): Add header files.
	(EXTRA_DIST): Add icon files.
	* .gitignore: Ignore autoconf-generated files in fltk/.

2017-10-19  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	core: Expect (and verify) a uid on "owner" option.
	+ commit 6aafa61b199ab9091d6c9e190129f2ead2a647c7
	* pinentry/pinentry.h (struct pinentry): Add field 'owner_uid'.
	* pinentry/pinentry.c (pinentry_reset): Handle this new field.
	(get_pid_name_for_uid): New. Atomic check for the base process name
	contingent on process ownership.
	(pinentry_get_title): Only scan for full commandline if the process
	actually belongs to the claimed uid.
	(option_handler): Option "owner" now expects "pid/uid hostname".

2017-10-12  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	core: Only scan for the command line if probably on the same host.
	+ commit 1f5b351531205214e9513a0aed170660dc822ceb
	* pinentry/pinentry.c (pinentry_get_title): Check the current hostname
	and make sure it matches.  If it does not, do not bother looking for
	the command line.

	core: Clean up command line extraction.
	+ commit 242b658289488696d371c639c1da631712bd774c
	* pinentry/pinentry.c (get_cmdline): Avoid trailing space, and return
	NULL when no bytes were read from /proc.

	tty: correct comments.
	+ commit d7c54372512fbbd77709a3ea913b902061e5d45d
	* tty/Makefile.am, tty/pinentry-tty.c: comments were copy/pasted from
	  pinentry-curses; correcting them.

2017-08-23  Damien Goutte-Gattat  <dgouttegattat@incenp.org>

	gtk: Really always set the window as transient.
	+ commit 2b1fb2f30a94a967dacec298e3c7d8a80b4c3194
	* gtk+-2/pinentry-gtk-2.c (make_transient): Set the window as
	transient even if we do not grab the keyboard.

2017-08-23  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>

	core: Supress compiler warnings.
	+ commit 858bde1fbbc5e14f2d6410da05869188bdc36ee3
	* pinentry/password-cache.c (password_cache_save, password_cache_lookup,
	password_cache_clear) [!HAVE_LIBSECRET]: Suppress unused parameter
	warnings.

2017-08-04  Damien Goutte-Gattat  <dgouttegattat@incenp.org>

	gtk: Disable tooltips in keyboard-grabbing mode.
	+ commit 1590b664d88be8386a4664c2994b685187d1eb25
	* gtk+-2:/pinentry-gtk-2.c (show_hide_button): Do not show the
	tooltip if we attempt to grab the keyboard.
	(create_window): Likewise.

2017-07-12  Daiki Ueno  <ueno@gnu.org>

	doc: Make Emacs frontend description more accurate.
	+ commit ebfa54e6044420ae12a090cdef9df7e7b0d961d2
	* doc/pinentry.texi (Front ends): Remove false assertions on
	insecurity of Emacs, and mention allow-emacs-pinentry option of
	gpg-agent.

2017-07-12  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>

	core: Disable "save passphrase" checkbox without secret service.
	+ commit e57bcb7a2acff3a61a342d24e6a55407bf736631
	* pinentry/password-cache.c (password_cache_lookup): New argument
	FATAL_ERROR.  Set it on fatal error.
	* pinentry/password-cache.h (password_cache_lookup): New argument
	FATAL_ERROR in declaration.
	* pinentry/pinentry.c (cmd_getpin): On fatal error, disallow
	external password store.
	* NEWS: Update.

2017-07-11  Alon Bar-Lev  <alon.barlev@gmail.com>

	Use pkg-config consistently.
	+ commit 6053cb4f3873897acf5d899bc6f02046d0748a0f
	* configure.ac: Invoke PKG_PROG_PKG_CONFIG. Consistently use
	PKG_CHECK_MODULES for GTK+2.0, Gnome 3 and libsecret.
	* gnome3/Makefile.am (AM_CPPFLAGS, LDADD): Adjust Gnome 3 flags.
	* gtk+-2/Makefile.am (AM_CPPFLAGS, LDADD): Adjust Gtk+2.0 flags.

2017-07-11  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>

	curses: Add option to beep or flash terminal on dialog.
	+ commit 1dba96fafa123f3631c0a50bb01835306c23b903
	* pinentry/pinentry-curses.c (dialog_run): Beep or flash terminal.
	* pinentry/pinentry.c (pinentry_reset): Reset ttyalert option.
	(pinentry_parse_opts): Parse option ttyalert.
	(option_handler): Handle option ttyalert.
	* pinentry/pinentry.h (struct pinentry): New option ttyalert.

2017-07-05  Damien Goutte-Gattat  <dgouttegattat@incenp.org>

	gtk: Always set the window as transient.
	+ commit f69dadc6ccea7672869436291ab5c1f58d545466
	* gtk+-2/pinentry-gtk-2.c (create_window): Setup the make_transient
	callback whether we ask for a passphrase or not.

2017-05-03  Andre Heinecke  <aheinecke@intevation.de>

	qt: Improve width of pinentryconfirm.
	+ commit 4101806bf73caf25c8ce4e455b154901da1fe788
	* qt/pinentryconfirm.cpp (PinentryConfirm::showEvent): Add spacer
	item for text width.

	qt: Fix build with Qt4.
	+ commit 8bf41fe086438de9fa223ccf4162ed9d98e54646
	* qt/main.cpp (main): Don't use Q_NULLPTR.

2017-03-08  Justus Winter  <justus@gnupg.org>

	fltk: Remove commented-out code.
	+ commit 5c3f796798d655b5583257f9dfc81ae9c1427fb3
	* fltk/main.cxx: Remove commented-out code.

	fltk: Fix warning.
	+ commit 2b2bbc9f67115baf518514281d3911b727b1caf9
	* fltk/main.cxx (fltk_cmd_handler): Use a 'std::unique_ptr' instead of
	a deprecated 'std::auto_ptr'.

2017-03-08  Anatoly madRat L. Berenblit  <madrat-@users.noreply.github.com>

	fltk: Add a FLTK-based pinentry.
	+ commit 6c45eed62214b44fcc11e642b19df7b6ca0da0bd
	* NEWS: Update.
	* Makefile.am: Add new subdirectory.
	* configure.ac: Add configuration for FLTK.
	* fltk/Makefile.am: New file.
	* fltk/encrypt.xpm: Likewise.
	* fltk/icon.xpm: Likewise.
	* fltk/main.cxx: Likewise.
	* fltk/passwindow.cxx: Likewise.
	* fltk/passwindow.h: Likewise.
	* fltk/pinwindow.cxx: Likewise.
	* fltk/pinwindow.h: Likewise.
	* fltk/qualitypasswindow.cxx: Likewise.
	* fltk/qualitypasswindow.h: Likewise.

2017-02-13  Andre Heinecke  <aheinecke@intevation.de>

	qt: Fix pinentry-curses fallback for qt5.
	+ commit cd7b35e8ff106993b9ce98ea99a5210d637f3452
	* qt/main.cpp (main): Initialize QApplication later.

2017-02-03  Werner Koch  <wk@gnupg.org>

	core: Show the command line in the titlebar.
	+ commit e467a000f87e87582f5838964b6f1e0a960d4445
	* pinentry/pinentry.c (get_cmdline): New.
	(pinentry_get_title): Add the cmdline to the title.

	Use a shared function to construct the title.
	+ commit 36d32fbdedb07b285d01871b3ee66400c81681d3
	* pinentry/pinentry.c (pinentry_get_title): New.
	* qt/main.cpp (qt_cmd_handler): Use that function for the title.
	* tty/pinentry-tty.c (confirm, password): Ditto.
	* gnome3/pinentry-gnome3.c (create_prompt): Ditto.
	* gtk+-2/pinentry-gtk-2.c (create_window): Ditto.
	* pinentry/pinentry-emacs.c (set_labels): Ditto.

	gtk: Unless SETTITLE is used show the pid in the titlebar.
	+ commit c0d60e130b9bbd21801c8e71e80ab7c36f4ad6bd
	* gtk+-2/pinentry-gtk-2.c (create_window): Display the pid as title.

	core: New Assuan option "owner".
	+ commit 61cde37b3e6a41bd24476d3c285288c12da0ed60
	* pinentry/pinentry.h (struct pinentry): Add fields 'owner_pid' and
	'owner_host'.
	* pinentry/pinentry.c (pinentry_reset): Take care of these fields.
	(option_handler): New option "owner".

	curses: Do not return OK on error.
	+ commit ce745a292192b01203ba5f557205a6f000bff953
	* pinentry/pinentry.c (cmd_confirm): Take care not to return OK if the
	RESULT is negative.
	* pinentry/pinentry-curses.c (dialog_create): Amend error reporting by
	setting specific_err_loc.
	(dialog_run): Use new var confirm_mode for clearness.  In confirm mode
	return Cancel instead of error.  This is how the gtk Pinentry does it.

	core: New command getinfo/ttyinfo.
	+ commit cd45d74d07512f8ec8d2b3306a1804457dd12964
	* pinentry/pinentry.c (remember_display): New var.
	(pinentry_have_display): Peek at --display.
	(pinentry_parse_opts): Set pinentry.display.
	(cmd_getinfo): Add sub-command "ttyinfo".

2017-02-03  Werner Koch  <wk@gnupg.org>
	    Vincent Lefevre  <vincent@vinc17.net>

	gtk2: Fix a problem with fvwm.
	+ commit b0e0bdeac5d40ca645afc9017778b39a26303523
	* gtk+-2/pinentry-gtk-2.c (grab_pointer): Take care of
	GDK_GRAB_ALREADY_GRABBED.

2017-01-16  Justus Winter  <justus@g10code.com>

	gnome3: Use the program name as default title.
	+ commit 8e3aa3204e74e8d7a7538e0d0f04e555f140131b
	* gnome3/pinentry-gnome3.c (create_prompt): If no title is requested,
	use the program name as the default title.  This mimics what the GTK+2
	variant does (although the GTK+2 pinentry seems to use
	basename(argv[0])).

2017-01-13  NIIBE Yutaka  <gniibe@fsij.org>

	gnome3: Fix CONFIRM condition.
	+ commit c725fdd260b0c2291660ff954e6b2250006ec08f
	* gnome3/pinentry-gnome3.c (gnome3_cmd_handler): No buffer for PIN means
	it's not passphrase input but confirmation dialog.

2016-12-19  Raphael Kubo da Costa  <rakuco@FreeBSD.org>

	Qt: Make sure extended grep is used with '|'.
	+ commit 1acb06aac3dd08f573d7c2e3be75226346e61ed2
	* m4/qt.m4: Use grep -E when using the alternation character.

2016-12-01  Werner Koch  <wk@gnupg.org>

	Fix linkage problem in tty and emacs pinentries.
	+ commit c5c7bee68730c9f66a27f9bb0d023480623a2bfb
	* emacs/pinentry-emacs.c (curses_cmd_handler): Remove var.
	* tty/pinentry-tty.c (curses_cmd_handler): Remove var.
	* pinentry/pinentry.c (flavor_flag): New local var.
	(pinentry_set_flavor_flag): New function.
	(cmd_getinfo): Use FLAVOR_FLAG for the "flavor" sub-command.
	* gnome3/pinentry-gnome3.c (main): Call pinentry_set_flavor_flag.
	* gtk+-2/pinentry-gtk-2.c (main): Ditto.
	* pinentry/pinentry-emacs.c (initial_emacs_cmd_handler): Ditto.
	* qt/main.cpp (main): Ditto.

2016-11-22  Werner Koch  <wk@gnupg.org>

	Create SWDB entry during make distcheck.
	+ commit d015020b56dc11848d638d8a0f22c11971f896ea
	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Build emacs flavor.
	(distcheck-hook): New.

	Release 1.0.0.
	+ commit 5eb55801a70148111a78a7ffd8ee459790f1aafe


	emacs: Add curses handler stub.
	+ commit d126036671e7dd631babc118cb4113f723f15748
	* emacs/pinentry-emacs.c (curses_cmd_handler): New stub.

2016-11-08  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	gnome3: Tighten up error messages when GNOME screensaver is absent.
	+ commit cf8885fd5a61654a164f470fa3e7095b8e424258
	* gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): clean up error
	messages when GNOME screensaver is absent or misbehaving.

2016-11-07  Werner Koch  <wk@gnupg.org>

	Add fail-safe string termination for snprintf.
	+ commit 8f51108a17d0080c33fae182f1e4b9259f10a9e5
	* gtk+-2/pinentry-gtk-2.c (changed_text_handler): Make sure an
	 snprintf buffer is always ternminated.
	* pinentry/pinentry.c (my_strusage): Ditto.
	(write_status_error): Ditto.
	(cmd_getinfo): Ditto.
	* w32/main.c (w32_strerror): Ditto.

2016-11-07  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	gnome3: Avoid risk of uinitialized memory access.
	+ commit 15a6fd9f1ee0e3bc62daf143546f5186ce947700
	* gnome3/pinentry-gnome3.c (_propagate_g_error_to_pinentry): Ensure
	that pinentry->specific_err_info is null-terminated.

	tty: Declare dummy curses_cmd_handler.
	+ commit e4e3a9cc88704dcffac660d0b92fd1ed8abecc11
	* tty/pinentry-tty.c: Declare a dummy handler for the
	curses_cmd_handler for fallback.

	gnome3: Fall back to curses if screensaver is locked.
	+ commit e353f4d1ac31e58f46eeba29279adf809dfb96a9
	* gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): New Function.
	Returns true only if we can talk to a GNOME screensaver over D-Bus and
	it assures us that it is locked.
	(main): If GNOME screensaver is locked, fall back to curses.

2016-11-05  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	gnome3: Test if Gcr System Prompter is available at startup.
	+ commit 2e17565fd9cb94afe840050780d28db75e5c4053
	* gnome3/pinentry-gnome3.c (gcr_system_prompt_available): New. Tests
	whether it is possible to create a GcrSystemPrompt.
	(main): Use gcr_system_prompt_available() to decide whether to fall
	back to curses or not.

	build: Avoid unnecessary dependency on gtk+-2 for GNOME3 development.
	+ commit b945576fe906ffcd5bcc50b4322ef2f34d8fb89f
	* configure.ac: There is no reason to reject building the GNOME3
	pinentry if GTK+-2 development libraries are not present.  GNOME3 does
	not require GTK+-2.

2016-11-05  Werner Koch  <wk@gnupg.org>

	gnome3: Avoid using gnome and gcr symbol namespace.
	+ commit 799116010a57aec9a86c5529388111d54aff3c55
	* gnome3/pinentry-gnome3.c (struct _gnome3_run): Rename to
	pe_gnome3_run_s.
	(_gcr_prompt_password_done): Rename to pe_gcr_prompt_password_done.
	(_gcr_prompt_confirm_done): Rename to pe_gcr_prompt_confirm_done.
	(_gcr_timeout_done): Rename to pe_gcr_timeout_done.

2016-11-05  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	gnome3: Honor timeout.
	+ commit f7b99ff5f7f78db45350308bf409ea4a9e94f161
	* gnome3/pinentry-gnome3.c (create_prompt): Use timeout to determine
	how long to wait for Gcr to provide a system prompt before giving up.
	(_gcr_timeout_done): New.  Record that a timeout has elapsed.
	(gnome3_cmd_handler): Set up a timeout before launching the prompt,
	and tear it down afterward.
	(_gcr_prompt_password_done): Report timeout differently from normal
	cancellation.
	(_gcr_prompt_confirm_done): Report timeout differently from normal
	cancellation.

	gnome3: Convert password/confirmation to asynchronous model.
	+ commit d0fe54d592a8d2be6fc82b26290a644bb3629214
	* gnome3/pinentry-gnome3.c (gnome3_cmd_handler): Convert main part of
	password or confirmation fetching into asynchronous code by moving
	completion into...
	(_gcr_prompt_password_done): ... here and...
	(_gcr_prompt_confirm_done): ... here.

	qt: Report timeout.
	+ commit 102832a2c1f3ffa432e2a169791611bb3ca13a04
	* qt/pinentryconfirm.h (PinentryConfirm): Add _timed_out, timedOut().
	* qt/pinentrydialog.h (PinentryDialog): Add _timed_out, timedOut().
	* qt/pinentryconfirm.cpp (slotTimeout): Record elapsed timeout.
	(PinentryConfirm): Initialize _timed_out to false.
	(timedOut): New. Returns value of _timed_out.
	* qt/pinentryDialog.cpp (slotTimeout): Record elapsed timeout.
	(PinentryDialog): Initialize _timed_out to false.
	(timedOut): New. Returns value of _timed_out.
	* qt/main.cpp (qt_cmd_handler): Report if canceled due to timeout.

	curses: Report timeout.
	+ commit 784c4e0a3acace39a4a632bf443c794752297d54
	* pinentry/pinentry-curses.c (dialog_run): Report if canceled due to
	timeout.

	gtk2: Report timeout.
	+ commit 93b4454f4fe4d97dd89efccd64dbdd02bd002f77
	* gtk+-2/pinentry-gtk-2.c (create_window): Send pointer to pinentry
	into timeout_cb.
	(timeout_cb): Report if canceled due to timeout.

	tty: Report timeout.
	+ commit 3be5b4fabaabf86f085b0b5303a1312abb7d0617
	* tty/pinentry-tty.c (confirm): Report if canceled due to timeout.
	(password): Report if canceled due to timeout.

	gnome3: Propagate GError messages to pinentry.
	+ commit 19c2110557d0504c1b406bde24e86cb5eb552fc7
	* gnome3/pinentry-gnome3.c (_propagate_g_error_to_pinentry): New. Send
	GError messages back out to pinentry error reporting.
	(create_prompt): Use _propagate_g_error_to_pinentry on error.
	(gnome3_cmd_handler): Use _propagate_g_error_to_pinentry on error.

	gnome3: Set parent window.
	+ commit 96e3c5fcf210e971fe1ba66b9127ad51144fcc49
	* gnome3/pinentry-gnome3.c (create_prompt): Tell Gcr about the caller
	window, if we know it.

2016-11-05  Werner Koch  <wk@gnupg.org>

	core: Add command getinfo/flavor.
	+ commit 553af04cf9c103c2e2cd5085b0d5fb647a608d51
	* pinentry/pinentry.c: Inlcude pinentry-curses.h.
	(cmd_getinfo): Add sub-command "flavor"

2016-11-03  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>

	Convert to UTF-8.
	+ commit 7b0a822460eb6f4bf28f85f38c64a86bb8f80d3d


2016-10-11  Daiki Ueno  <ueno@gnu.org>

	core: Don't report error on setting option 'allow-emacs-pinentry'.
	+ commit a383ddeb76463ddcf5aca2fb38847ea3158c42a7
	Previously "OPTION allow-emacs-pinentry" returned an error if the Emacs
	pinentry is not compiled in.  Since it is merely an option, it would
	make more sense to just return OK.

2016-10-04  Werner Koch  <wk@gnupg.org>

	gnome3: Drop unnecessary use of gtk.
	+ commit 65d8e0ec19795d9ec60d7f37f1511f65135cfd84
	* configure.ac: pinentry-gnome3 only needs gcr-base, not gcr.
	* gnome3/pinentry-gnome3.c (main): Instead of testing whether GTK can
	be loaded, check for DBUS_SESSION_BUS_ADDRESS.
	(create_prompt): Use fprintf (stderr, ...) instead of g_warning (...),
	to align with the rest of pinentry.c.

	core: Add a way to print ERROR status lines.
	+ commit 777650b9b021342ba887543396c67f9148218caf
	* pinentry/pinentry.h (struct pinentry): New fields SPECIFIC_ERR_LOC
	and SPECIFIC_ERR_INFO.
	* pinentry/pinentry.c (pinentry_reset): Free the new field.
	(write_status_error): New.
	(cmd_getpin): Use new fields.
	(cmd_confirm): Ditto.
	* gnome3/pinentry-gnome3.c (create_prompt): Set error for failed
	GCR_PROMPT.

2016-10-03  Ineiev  <ineiev@gnu.org>

	tty: Provide default text for "notok".
	+ commit db3b2bf0c7ae4d3d0fbeecfe6a9a77ea4ed0f84e
	* tty/pinentry-tty.c (confirm): Provide default text for "notok".

	tty: Fix underscore processing in accelerators.
	+ commit f0ae2986708614bce9070eec77309e838c403db7
	* tty/pinentry-tty.c (button): Fix underscore processing in
	accelerators.

	tty: Refactor usage of tolower.
	+ commit aa969a09a1225f8fb683ba8d0c3ccc099dd8d1d3
	* tty/pinentry-tty.c (button): Apply tolower to the result.
	* tty/pinentry-tty.c (confirm): Compare lowercased character instead of
	converting them every time.

2016-09-01  Werner Koch  <wk@gnupg.org>

	curses: Return better error codes for bad ttynames.
	+ commit 4c5ae72d481ffd24ff93accee0b42e9b264285f2
	* pinentry/pinentry-curses.c (dialog_create): Return better error
	codes.

2016-08-18  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Add SetWindowPos based foreground hack for Win.
	+ commit c032ea2dcb4ac3ce970e62eae88fd24bec822f9c
	* qt/pinentrydialog.cpp(raiseWindow): Add another fallback for
	our foreground window hacks.

2016-08-12  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Disable automatic wrap for desc and errors.
	+ commit 300755c1a10eec1f8bccd4182ed15c569473982c
	* qt/pinentrydialog.cpp (PinEntryDialog): Disable WordWrap.

2016-08-12  Kristian Fiskerstrand  <kf@sumptuouscapital.com>

	Qt: Append -std=c++11 if building against Qt 5.7.
	+ commit fa97de673bd36758ae4ce151923435318f7c8877
	 * m4/qt.m4: Append -std=c++11 to CFLAGS if building against Qt 5.7

2016-08-04  Ben Kibbey  <bjk@luxsci.net>

	Fix ncurses build.
	+ commit 2227f67af53f38d3d7f97760f2553d2c9ed05969
	* pinentry/Makefile.am: Add NCURSES_CFLAGS.

2016-08-02  Justus Winter  <justus@g10code.com>

	gtk2: Also grab the pointer.
	+ commit 2f1f1f06c1885d2f5a30ea734359613609be0743
	* gtk+-2/pinentry-gtk-2.c (grab_pointer): New function.
	(ungrab_keyboard): Rename to 'ungrab_inputs' and also release the
	pointer grab.
	(create_window): Also grab the pointer.

2016-08-01  Justus Winter  <justus@g10code.com>

	gtk2: Be more persistent trying to grab the keyboard.
	+ commit ad390f29df34ef73f2393a8ad97cbe2d60af31e7
	We seem to get the 'visibility-notify' event before X is willing to
	let us grab the keyboard, insisting that the target window is not
	viewable (sic).

	* gtk+-2/pinentry-gtk-2.c (grab_keyboard): Retry grabbing the
	keyboard.

	gtk2: Print keyboard grabbing errors.
	+ commit fe5bb475da08cb46242825d5abe5b4d27e6086e3
	* gtk+-2/pinentry-gtk-2.c (grab_strerror): New function.
	(grab_keyboard): Use the new function to print the error.

	gtk2: Avoid possible format string troubles.
	+ commit abf4f9924412c7afb6ce6c08eeda81b4c5365ab5
	* gtk+-2/pinentry-gtk-2.c (confirm_unhiding): Do not use message as
	format string.

2016-04-25  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Only use one line action for visibility.
	+ commit ed066c261594de69c3c2aeaac98aeaf74bbb5f9e
	* qt/pinentrydialog.cpp (PinEntryDialog::toggleVisibility): Toggle
	both lines in repeat mode.
	(PinEntryDialog::PinEntryDialog): Remove repeat line action.

	Qt: Move qualitybar below repeat.
	+ commit d580304566b5b1c4e7c97c060d7a7b8c0b810ae3
	* qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Move
	quality bar below repeat.

	Qt: Do not take icon from theme.
	+ commit 1532b60dcc5a45a74195cfbc20225006d027e7fa
	* qt/main.cpp (main): Revert changes to take icon from theme.

2016-04-15  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Change qualitybar position back to below.
	+ commit e925e8955b0a82f1a0e3c697704007c503a5f8b7
	* qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Change
	position back to below the entry. Fix label alignment.

	gtk2: Add a button to show/hide the passphrase.
	+ commit f4b5049c68a79d5e4faba06447db5440936cefeb
	* gtk+-2/pinentry-gtk-2.c (HIG_TINY): New.
	 (confirm_unhiding): New.
	 (show_hide_button_toggled): New.
	 (create_show_hide_button): New.
	 (create_window): Add a show/hide button.

2016-04-14  Andre Heinecke  <aheinecke@intevation.de>

	Revert "GTK: Add visibility toggle button"
	+ commit 3a10a0beddc059ce4b0d75bacf6d7f4e3148fcff
	This reverts commit 71b51e02cf20174ba7144765e985f7e889eaa429.

	GTK: Add visibility toggle button.
	+ commit 71b51e02cf20174ba7144765e985f7e889eaa429
	* gtk+-2/pinentry-gtk-2.c (create_window): Create checkbox.
	 (show_passphrase_toggled): New. Do the toggling.

	Qt: Restrict list of icon themes to try.
	+ commit 287d40e879f767dbcb3d19b3629b872c08d39cf4
	* qt/main.cpp (main): Only search in select icon themes.

	Qt: Add actions to make passphrase visible.
	+ commit 49a7ac5209aa54f3b91209acc899463e8097f808
	* qt/main.cpp (qt_cmd_handler): Support visibility tooltips.
	* qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog):
	 Add a checkbox or line actions.
	 (PinEntryDialog::checkRepeat): Renabed to textChanged.
	 (PinEntryDialog::toggleVisibility): New. Toggle echo mode.
	* qt/pinentrydialog.h: Update accordingly.

	Add support for visibility string options.
	+ commit 15685a9c1471eb01066e0bbdb7d6b929a8fcc314
	* doc/pinentry.texi: Note new values.
	* pinentry/pinentry.c (pinentry): Add default_cf_visi,
	 default_tt_visi and default_tt_hide.
	 (option_handler): Parse new values.
	* pinentry/pinentry.h (pinentry_t): Add new values.

	Qt: Implement repeat and improve grabbing.
	+ commit 04115b3289dcc9b02044f88c08580618c055a571
	The keyboard is now only grabbed if an edit has input focus.

	* qt/main.cpp (qt_cmd_handler): Parse repeat values. Set repeat_okay.
	* qt/pinentrydialog.cpp (PinentryDialog::PinentryDialog): Update
	 layout. Add repeat label and edit. Connect focusChanged.
	 (PinEntryDialog::hideEvent): Remove grabbing hack.
	 (PinEntryDialog::focusChanged): New. Properly handle grabbing.
	 (PinEntryDialog::checkRepeat): New. Enable Ok if repeat matches.
	 (PinEntryDialog::repeatedPin): New. Getter for repeated pin.
	 (PinEntryDialog::setRepeatErrorText): Setter for error.
	* qt/pinentrydialog.h: Update accordingly.

	Qt: Respect icon themes and only fallback to own.
	+ commit c6b43bd147186deee84dcccbc14f5763db67a0f3
	* m4/qt.m4: Raise version requirement.
	* qt/main.cpp (main): Use QIcon::fromTheme to get the icon.

	Qt: Unify coding style and encoding.
	+ commit 8d801fe2c74041f2f8c563785ed7cba73f47500e
	* qt/main.cpp, qt/pinentryconfirm.cpp, qt/pinentryconfirm.h,
	  qt/pinentrydialog.cpp, qt/pinentrydialog.h: Use KDE coding style.
	  Encode as UTF-8.

2016-03-04  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix Windows foreground window hacks for Qt5.
	+ commit 30aa1046afe9a745c918fc1311c1f598c91bf913
	* qt/pinentrydialog.cpp: Use Q_OS_WIN instead of Q_WS_WIN
	 (SetForegroundWindowEx): Handle new Wid type with casts.

2016-02-15  Stef Walter  <stefw@redhat.com>

	pinentry: Use stderr to print failures in password-cache.c.
	+ commit 2f5bfa071ab5eaf86f64404bff448ca29cd0bdb6
	Otherwise this interferes with the assuan protocol expected
	on stdout.

2016-01-05  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix use after free in quality calculation.
	+ commit 954da56c2325c3a5ca628cfc2e3086c1e146a390
	* qt/pinentrydialog.cpp (PinEntryDialog::updateQuality): Keep UTF8
	 byte array alive after conversion.

2015-12-07  Werner Koch  <wk@gnupg.org>

	Release 0.9.7.
	+ commit 97b6ea59de0ca33323aa204eb47d45fd412a8ff2


2015-12-01  Werner Koch  <wk@gnupg.org>

	Remove unused code.
	+ commit bd3781f92bb0989bfbc33a89fe1f6db3c89cdf31
	* secmem/util.c (lower_privs, raise_privs): Remove commented
	functions.

2015-11-27  Neal H. Walfield  <neal@gnu.org>

	tty: Fix formatting.
	+ commit 999162e7c38d4b8c76270e7b6790417fd6439ef3
	* tty/pinentry-tty.c (password): Remove trailing space.

2015-11-18  Neal H. Walfield  <neal@gnu.org>

	tty: Flush output.  Show an error if an invalid option is selected.
	+ commit f238a58772b7d51362ca7d819e1648a64ff50d57
	* tty/pinentry-tty.c (confirm): Flush the output after printing the
	prompt.  Echo what the user typed.  If the user's selection is
	invalid, indicate as much.

2015-10-22  Dirk Mueller  <dirk@dmllr.de>

	Qt: Do not use temporary reference to utf8 pin.
	+ commit f143d216eff4eac3f05a85640b9f91431aec5588
	* qt/main.cpp (qt_cmd_handler): Keep utf8 pin byte array.

2015-10-02  Andre Heinecke  <aheinecke@intevation.de>

	Qt: Fix assignment of have_qt5_libs variable.
	+ commit 48ab8cdccff4eefec4d8fa2e23b933c2277bc30c
	* m4/qt.m4 (FIND_QT): Remove spaces in variable assignment.

	Qt: Fix quoting of have_qt5_libs init in FIND_QT.
	+ commit e9d063e2371540ad9c1d7a727c44f9dcc1e9e400
	* m4/qt.m4 (FIND_QT): Quote initialization of have_qt5_libs var.

2015-09-25  Andre Heinecke  <aheinecke@intevation.de>

	Add option to disable looking for qt5.
	+ commit 08ec9556c8a384ea7bb5d42d3f6aab6c2f6a8786
	* m4/qt.m4 (FIND_QT): Add --disable-pinentry-qt5 option to
	disable qt5 support even if it is available.

2015-09-16  Werner Koch  <wk@gnupg.org>

	Add option "invisible-char".
	+ commit 9cc13bbd6954928f8a7dae022728c13415816a67
	* pinentry/pinentry.h (struct pinentry): Add field invisible_char.
	* pinentry/pinentry.c (pinentry_reset): Restore that.
	(option_handler): Add option "invisible-char".
	* gtk+-2/pinentry-gtk-2.c (create_window): Set the invisible char if
	given.

2015-09-10  Werner Koch  <wk@gnupg.org>

	Release 0.9.6.
	+ commit 192ee8ad5bd9c4950d749cf9bb1efd9369836257


2015-08-24  Neal H. Walfield  <neal@gnu.org>

	tty: When reading the password, print any supplied error message.
	+ commit bfd4cf3bee8c9e4a3af825c95694b8af098b1cb2
	* tty/pinentry-tty.c (password): Print any supplied error message.

	tty: Refactor the code for printing error messages.
	+ commit 7e91e5f71c86c3899c7f256d7ae9d872e692dd28
	* tty/pinentry-tty.c (dump_error_text): New function to display error
	messages.
	(confirm): Use it.
	(password): Likewise.

2015-08-18  Andre Heinecke  <aheinecke@intevation.de>

	Clarify comment about fds in pinentry_loop2.
	+ commit 13e09800a997845906bfb10ac3379bad00e6e63d
	* pinentry/pinentry.h (pinetry_loop2): Clarify comment.

	Qt: Make it possible to build qt5 variant static.
	+ commit 11886c530de3b0a7c4dcd932c5c23762f3ccc4b0
	* qt/main.cpp: Import static platform plugins when necessary.

	Respect SYSROOT variable when looking for assuan.
	+ commit 8d73d2a55a0043202c08beaed9972343b1021327
	* m4/libassuan.m4: Respect SYSROOT Variable.

	Fix pinentry for Windows.
	+ commit 78afb80e5742f8542f21537307c6f39c05c1a7f3
	* pinentry/pinentry.c (pinentry_loop2): Use assuan_fdopen for pipe fds.
	* pinentry/pinentry.h (pinentry_loop2): Mention this in the comment.

2015-08-11  Neal H. Walfield  <neal@gnu.org>

	tty: Correctly implement the repeat passphrase functionality.
	+ commit 1532bf3fa57f624c80ea1e9f958d88fedc377e68
	* tty/pinentry-tty.c (password): If the user repeated the passphrase
	and they matched, then set PINENTRY->REPEAT_OKAY.

	tty: Fix buffer resizing bug.
	+ commit ffd37b673b3cbe05fac037ac02c1424a76772b3f
	* tty/pinentry-tty.c (read_password): Fix buffer resizing bug.

2015-07-28  Andre Heinecke  <aheinecke@intevation.de>

	Qt4: Rename to pinentry-qt and add Qt5 Support.
	+ commit abb59f50abf698ff1e56490fb39bcc98c26ab44b
	* qt4: Moved to qt.
	* Makefile.am: Change qt4 suffix to qt.
	* m4/qt.m4: Remove old qt lookup functions.
	  (FIND_QT): New. Use pkg-config to find either Qt5 or Qt4
	* configure.ac: Change qt4 suffix to qt. Use new FIND_QT function.
	* qt/Makefile.am: Change qt4 suffix to qt. Use new FLAGS / LIBS.
	* qt/pinentrydialog.cpp, qt/qrc_pinentry.cpp: Fix whitespace.
	* .gitignore: Change qt4 paths to qt.
	* README: Update accordingly.
	* autogen.rc: Change qt4 to qt.
	* qt/main.cpp (qt_cmd_handler, main): Change qt4 to qt.

2015-07-28  Neal H. Walfield  <neal@gnu.org>

	doc: Describe the frontends and their security implications.
	+ commit 43f975bf0348663dc8b01737dee5b15244ef7ee8
	* doc/pinentry.texi: Describe the frontends and their security
	implications.

2015-07-28  Andre Heinecke  <aheinecke@intevation.de>

	qt4: Replace the custom, secure entry widget with the standard widget.
	+ commit a4694dcda0fe27852be20db3017f9313adf361a3
	* configure.ac: Remove enable-pinentry-qt4-clipboard option.
	* qt4/qsecurelineedit.cpp, qt4/qsecurelineedit.h,
	  qt4/qsecurelineedit_p.h, qt4/secstring.cpp,
	  qt4/secstring.h: Removed.
	* qt4/Makefile.am: Update accordingly.
	* qt4/main.cpp (qt_cmd_handler): Use QString instead of secqstring.
	* qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog),
	  (PinEntryDialog::error, PinEntryDialog::pin),
	  (PinEntryDialog::updateQuality): Use QLineEdit and QString
	  instead of secmem variants.
	* qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog):
	  Set echo mode to password.
	* qt4/pinentrydialog.h: Update accordingly.

2015-07-26  Neal H. Walfield  <neal@gnu.org>

	gtk2: Use gtk_widget_get_window instead of accessing the struct.
	+ commit d70a106d71dbcaf90e2246ed8e72c14d9c2cf266
	* gtk+-2/pinentry-gtk-2.c (make_transient): Don't directly access the
	window field of WIN.  Use gtk_widget_get_window instead.
	(grab_keyboard): Likewise.
	(ungrab_keyboard): Likewise.

	gtk2: Use newer tooltips functions, if available.
	+ commit c9c3576b5e2e3139fd9f6af3426b5f5e727deadd
	* gtk+-2/pinentry-gtk-2.c (tooltips): Don't declare for Gtk+ >=2.12.0.
	(create_window): Gtk+ >=2.12.0, use gtk_widget_set_tooltip_text
	instead of gtk_tooltips_set_tip.

	Don't build the emacs pinentry program by default.
	+ commit 676b1ac38d0c1db754492b6817bbc6195dcef300


	gtk2: Replace the custom, secure entry widget with the standard widget.
	+ commit f9db93786cbdbc0f5f6edf0ae996ec405931decf
	* gtk+-2/Makefile.am (pinentry_gtk_2_SOURCES): Remove gtksecentry.c,
	gtksecentry.h and gseal-gtk-compat.h.
	* gtk+-2/gseal-gtk-compat.h: Remove file.
	* gtk+-2/gtksecentry.c: Remove file.
	* gtk+-2/gtksecentry.h: Remove file.
	* gtk+-2/pinentry-gtk-2.c: Don't include "gtksecentry.h".
	(button_clicked): Use gtk_entry_get_text instead of
	gtk_secure_entry_get_text.
	(changed_text_handler): Use gtk_entry_get_text instead of
	gtk_secure_entry_get_text and use gtk_entry_set_text instead of
	gtk_secure_entry_set_text.
	(create_window): Use gtk_entry_new instead of gtk_secure_entry_new.
	Disable text visibility on ENTRY and REPEAT_ENTRY.
	(main): Don't override the memory allocation functions.

	gtk2: Simplify focus / default entry management.
	+ commit ae74440c8a3469e1e69882cd26a742d41f28e37b
	* gtk+-2/pinentry-gtk-2.c (create_window): Don't have ENTRY or
	REPEAT_ENTRY explicitly grab the focus.  The default is fine.  Don't
	add the GDK_ENTER_NOTIFY_MASK and GDK_LEAVE_NOTIFY_MASK events to
	QUALITYBAR.  Only set GTK_CAN_DEFAULT on the ok button.  In pin entry
	mode, make the ok button the default.

	gtk2: Have enter in the text entry, send the focus to the repeat entry.
	+ commit af3de269bc0f56058eefcd46bce1b03d9466d1b4
	* gtk+-2/pinentry-gtk-2.c (enter_callback): Rename anentry to
	next_widget.  If NEXT_WIDGET is not NULL, send the focus to it.
	Otherwise, call button_clicked.
	(create_window): Initialize repeat_entry to NULL.  When connecting the
	enter_callback entry to REPEAT_ENTRY, set the user data paramter to
	NULL.  Connect the entry_callback entry to ENTRY after initializing
	REPEAT_ENTRY (if applicable) and set the user data parameter to
	REPEAT_ENTRY.

	gtk2: Simplify: combine confirm_button_clicked and button_clicked.
	+ commit 5dfb7f5662917c9d2f8a4772045074544bd4d472
	* gtk+-2/pinentry-gtk-2.c (confirm_mode): New global static.
	(confirm_button_clicked): Fold this function...
	(button_clicked): ... into this one.  Update all callers.
	(create_window): Remove argument confirm_mode.
	(gtk_cmd_handler): Set confirm_mode.

2015-07-01  Werner Koch  <wk@gnupg.org>

	Release 0.9.5.
	+ commit 404943e465beeb34d71039f64f2b7e214d2d9368


	w32: Adjust for use of standard libassuan.
	+ commit 380757782373c2069c182550d9093f995bea2f13
	* autogen.rc: Add gpg-error and libassuan prefix options.
	* w32/Makefile.am (AM_CPPFLAGS): Use COMMON_FLAGS.
	(pinentry_w32_LDADD): Use COMMON_LIBS.

	Distribute files in m4/
	+ commit 11cd8aff6e1720d4a37c92fb6d4cf2613eb17a10


2015-06-24  Gergely Imreh  <imrehg@gmail.com>

	curses: remove hard-wired ncursesw include path.
	+ commit f0db3192463cccf4541820de36d985629c4df6ee
	* pinentry/pinentry-curses.c: pkg-config finds the correct include
	paths so should not hard-wire the path for the ncursesw header file.

2015-06-23  Neal H. Walfield  <neal@gnu.org>

	emacs: Don't link against ../assuan/libassuan.a.
	+ commit 266f1c9e3542627b1cbd191141af4e6f76f706fe
	* emacs/Makefile.am (LDADD): Don't link against ../assuan/libassuan.a.
	We now use the system libassuan.

	curses: Recognize ASCII DEL as backspace.
	+ commit 6ce1d0c0d4106c359eee65d7cf27d522d3f8b72a
	* pinentry/pinentry-curses.c (dialog_input): Recognize ASCII DEL as
	backspace.

2015-06-17  Daiki Ueno  <ueno@gnu.org>

	Add inside-Emacs mode to GUI pinentry programs.
	+ commit 3ef5d07873ab917e66c299521e85cff12fbbf40c
	* configure.ac: Add --enable-pinentry-emacs and
	--enable-inside-emacs option.
	(BUILD_LIBPINENTRY_EMACS): New conditional.
	(BUILD_PINENTRY_EMACS): New conditional.
	(INSIDE_EMACS): New conditional.
	* Makefile.am (pinentry_emacs): New.
	(SUBDIRS): Add "emacs" subdir if PINENTRY_EMACS is set.

	* pinentry/pinentry-emacs.h: New file.
	* pinentry/pinentry-emacs.c: New file.
	* pinentry/Makefile.am: New file.
	* pinentry/pinentry.c (option_handler): Handle the allow-emacs-prompt
	Assuan option.

	* emacs/pinentry-emacs.c: New file.
	* emacs/Makefile.am: New file.

2015-06-16  Neal H. Walfield  <neal@gnu.org>

	If we fail to initialize gtk, fallback to the curses frontend.
	+ commit 34f3cdbf5aa0b7b8647a3bcedef7e1a51746b5ed
	* gnome3/pinentry-gnome3.c (main): Use gtk_init_check instead of
	gtk_init.  If it fails, fallback to the curses frontend.

	Fix comment for pinentry_cmd_handler_t.
	+ commit 34539f97a6ddc552295b5cb64676eee9dab5bd30
	* pinentry/pinentry.h (pinentry_cmd_handler_t): Fix comment.

	Describe default-prompt in the implementation section of the manual.
	+ commit 56fe7ef451ee473407b7dc604e3d73a6a5771c5d
	* doc/pinentry.texi (Implementation Details): Describe default-prompt.

	Remove internal mini-libassuan implementation and link to libassuan.
	+ commit 302903f76b8d62b1e07219a203f7219cb3aff7d8
	* assuan/ChangeLog-old: Remove file.
	* assuan/Makefile.am: Remove file.
	* assuan/README.1st: Remove file.
	* assuan/assuan-buffer.c: Remove file.
	* assuan/assuan-defs.h: Remove file.
	* assuan/assuan-handler.c: Remove file.
	* assuan/assuan-listen.c: Remove file.
	* assuan/assuan-pipe-server.c: Remove file.
	* assuan/assuan-util.c: Remove file.
	* assuan/assuan.h: Remove file.
	* assuan/mkerrors: Remove file.

	* configure.ac: Check for libgpg-error and libassuan.
	(COMMON_CFLAGS): Add $GPG_ERROR_CFLAGS and $LIBASSUAN_CFLAGS.
	(COMMAND_LIBS): Add $GPG_ERROR_LIBS and $LIBASSUAN_LIBS.
	(GPG_ERR_ENABLE_GETTEXT_MACROS): Define this macro.
	(GPG_ERR_ENABLE_ERRNO_MACROS): Likewise.
	(GNUPG_LIBASSUAN_VERSION): Likewise.
	(AC_CONFIG_FILES): Don't generate assuan/Makefile.
	(config.h): Define GPG_ERR_SOURCE_DEFAULT.
	* Makefile.am (SUBDIRS): Remove assuan.
	* curses/Makefile.am (LDADD): Remove ../assuan/libassuan.a.
	* gnome3/Makefile.am (AM_CPPFLAGS): Remove -I$(top_srcdir)/assuan.
	(LDADD): Remove ../assuan/libassuan.a.
	* gtk+-2/Makefile.am (LDADD): Remove ../assuan/libassuan.a.
	* pinentry/Makefile.am: Remove -I$(top_srcdir)/assuan.
	* qt4/Makefile.am (AM_CPPFLAGS): Remove -I$(top_srcdir)/assuan.
	(pinentry_qt4_LDADD): Remove $(top_builddir)/assuan/libassuan.a.
	* tty/Makefile.am (LDADD): Remove ../assuan/libassuan.a.

	* gnome3/pinentry-gnome3.c: Include <assuan.h>, not "assuan.h".
	Replace ASSUAN_General_Error, etc. with gpg_error or
	gpg_error_from_syserror.
	* pinentry/pinentry-curses.c: Likewise.
	* pinentry/pinentry.c: Likewise.
	(pinentry_assuan_reset_handler): Change return type to gpg_error_t.
	Change type of argument CTX from ASSUAN_CONTEXT to assuan_context_t.
	Return 0.
	(pinentry_inq_quality): Change variable CTX's type from ASSUAN_CONTEXT
	to assuan_context_t.
	(assuan_malloc_hooks): New variable.
	(pinentry_init): Call gpgrt_check_version.  Change use of
	assuan_set_malloc_hooks to match libassuan's semantics.
	(option_handler): Return a gpg_error_t, not an int.  Replace use of
	ASSUAN_Out_Of_Core, etc. with gpg_error or gpg_error_from_syserror.
	(cmd_setdesc): Return a gpg_error_t, not an int.  Change argument
	CTX's type from ASSUAN_CONTEXT to assuan_context_t.  Replace use of
	ASSUAN_Out_Of_Core, etc. with gpg_error or gpg_error_from_syserror.
	GPG_ERR_ENOMEM), etc.
	(cmd_setprompt): Likewise.
	(cmd_setkeyinfo): Likewise.
	(cmd_setrepeat): Likewise.
	(cmd_setrepeaterror): Likewise.
