2014-08-21  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.61.
	(service_fork_thread): Append /bin if explicit PATH value got loaded
	from registry.  Prepend /bin otherwise.
	* utils.cc (uprint): Delete.
	(usage): Convert to a single fprintf call.

2014-08-14  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.60.  Drop all special exception
	handling code since it's disabled in newer Cygwin versions (actually,
	since 2005 *blush*) anyway.
	(service_fork_thread): Prepend /bin to $PATH, rather than appending,
	as it has been claimed in the README forever.  Duh.

2013-10-30  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.50.
	(print_service): Take additional parameter "mypath".  Check path of
	cygrunsrv in service entry with mypath and print additional
	"Installation path" if they differ.  Fix formatting.
	(query_service): Store own Win32 pathname and add to print_service call.
	(same_filename): Use strcasecmp, not stricmp.
	(list_services): Only print warning message if OpenService failed with
	an error other than ERROR_ACCESS_DENIED.  Print service name in
	parenthesis if it's started by another cygrunsrv and verbose is not set.
	Call print_service with additional parameter mypath.
	(service_fork_thread): Copy POSIX to Win32 environment before exec'ing
	service process.

2013-03-19  Corinna Vinschen <corinna@vinschen.de>

	* config.guess: Update.
	* config.sub: Update.
	* configure: Regenerate with autoconf 2.69.

2013-03-09  Corinna Vinschen <corinna@vinschen.de>

	* Makefile.in ($(srcdir)/configure): Depend on configure.ac.
	* cygrunsrv.cc: Bump version to 1.42.
	(is_managed_service_account): New function to check for Managed Service
	Account.
	(install_service): Check for accounts which require a NULL password
	and don't ask for password for any of them.  Rename buf to pwdbuf.
	Allow to give NULL password to CreateService for non-empty username.
	(main): Call setlocale.

2013-03-05  Corinna Vinschen <corinna@vinschen.de>

	* configure.ac: Rename from configure.in.  Check for g++ target-cpu
	independently.
	* configure: Regenerate
	* cygrunsrv.cc: Bump version to 1.41.
	(version): Bump copyright date.
	(list_services): Change formatting for DWORD value target independently.
	* utils.cc (error): Ditto.

2012-03-07  Corinna Vinschen <corinna@vinschen.de>

	Throughout change comments to GPL v3 and fix copyright.
	* COPYING: New version for GPL v3.
	* Makefile.in (LDFLAGS): Add -static.
	* cygrunsrv.cc: Bump version to 1.40.
	(version): Fix copyright string.
	(thread_args): New static struct.
	(service_fork_thread): New thread function to fork service process.
	(service_main): Start service_fork_thread as pthread to fork service
	process.  Explain why.

2012-02-21  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.36.
	(service_handler): Remove obsolete function.
	(pRegisterServiceCtrlHandlerExA): Remove.
	(service_main): Just call RegisterServiceCtrlHandlerExA, otherwise
	handler function doesn't receive SERVICE_CONTROL_PRESHUTDOWN control
	code.

2009-04-06  Corinna Vinschen <corinna@vinschen.de>

	* configure.in (CXX): Prefer i686-pc-cygwin-g++ over g++ to simplify
	cross builds.
	* configure: Regenerate.
	* cygrunsrv.cc: Fix gcc-4 compiler warnings throughout.
	Use Cygwin 1.7 cygwin_conv_path rather than deprecated
	cygwin_conv_to_full_win32_path call.  Bump version to 1.35.
	* utils.cc (reason_list): Constify to fix gcc-4 compiler warning.

2008-03-18  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.README: Explain the user name given to -u/--user option.
	* cygrunsrv.cc: Fix copyright in header.  Bump version to 1.34.
	(version): Fix copyright.
	(install_service): Convert slash in username to backslash.

2008-03-17  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.README: Add words for clarifying server name in <svc_name>.
	Add the server name hint to -Q/--query option.  Add desription for
	-P/--crs-path option.
	* cygrunsrv.cc: Bump version to 1.33.
	(longopts): Add --crs-path option.
	(opts): Add -P option.
	(install_registry_keys): Fix error code handling for registry access
	functions.
	(check_system_mounts): Use strcasecmp.
	(install_service): Add code to handle setting distinct path to
	cygrunsrv.  Don't test system mounts when accessing remote service
	manager.
	(main): Handle -P/--crs-path option.  Don't check validity of service
	application path when installing service on remote server.
	* cygrunsrv.h (CYG_ROOT): Define.
	(CYG_ROOT_VAL): Define.
	* utils.cc (reason_list): Add reason texts for -P/--crs-path option.
	(usage): Add usage for -P/--crs-path option.
	* utils.h (reason_t): Add reason codes for -P/--crs-path option.

2008-03-17  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.README: Document capability to connect to remote machine.
	* cygrunsrv.cc: Bump version to 1.30.
	(version): Fix copyright.
	(class server_and_name): New helper class to extract server name and
	service name from incoming string, as well as to create registry key
	necessary to connect to local or remote registry.  Use throughout were
	appropriate.
	(main): Handle optional argument to -L/--list option.
	* utils.cc (reason_list): Add reason text for failing connection to
	remote machine.
	(usage): Accommodate optional argument to -L/--list.  Add helping text
	for remote access.
	* utils.h (reason_t): Add reason code for failing connection to
	remote machine.

2008-02-19  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.21.
	(service_handler_ex): On SERVICE_CONTROL_INTERROGATE don't send signal
	to child process, just return NO_ERROR.

2008-02-17  Corinna Vinschen <corinna@vinschen.de>

	* Makefile.in: Add automatic file dependencies.
	(datarootdir): Replace datadir.
	(CFLAGS): Define.  Always add -MMD -pipe options.
	* configure.in: Require autoconf 2.60.  Prefer g++ over c++.  Set
	CFLAGS to contain -Wall -Werror by default.  Set CXXFLAGS so that
	CFLAGS is used indirectly.
	* configure: Regenerate.
	* crit.cc (set_service_controls_accepted): Take and handle preshutdown
	parameter.
	* crit.h (SERVICE_ACCEPT_PRESHUTDOWN): Define conditionally.
	(SERVICE_CONTROL_PRESHUTDOWN): Define conditionally.
	(set_service_controls_accepted): Change declaration.
	* cygrunsrv.README: Document --shutsig and --preshutdown options.
	Note post-Vista behaviour related to --interactive option.
	* cygrunsrv.cc: Bump version to 1.20.  Throughout avoid compiler
	warnings.
	(longopts): Add '--shutsig' and '--preshutdown' options.
	(opts): Add '-O' and '-z' options.
	(shutsig): New variable.
	(shutsig_sent): New variable.
	(preshutdown): New variable.
	(install_registry_keys): Handle new shutsig and preshutdown options.
	(get_reg_entries): Ditto.
	(ControlsAccepted_desc): Add entry for SERVICE_ACCEPT_PRESHUTDOWN.
	(print_service): Handle new shutsig and preshutdown options.
	(terminate_child): Get signal to send to service process as parameter.
	Set termsig_sent or shutsig_sent according to that signal.
	(sigterm_handler): Send termsig to terminate_child.
	(service_handler_ex): New service handler which also handles
	SERVICE_CONTROL_PRESHUTDOWN.
	(service_handler_ex): Handle SERVICE_CONTROL_PRESHUTDOWN.  Call
	terminate_child with termsig or shutsig dependent on control code.
	(service_handler): Just call service_handler_ex.
	(pRegisterServiceCtrlHandlerExA): New variable.
	(service_main): Load RegisterServiceCtrlHandlerExA and use instead of
	RegisterServiceCtrlHandlerA if available.
	Check WTERMSIG for termsig or shutsig.
	(main): Handle --shutsig and --preshutdown options.  Add appropriate
	error checking.
	* cygrunsrv.h (PARAM_SHUTSIG): Define.
	(PARAM_PRESHUTDOWN): Define.
	* utils.cc (reason_list): Add --shutsig/--preshutdown error messages.
	(uprint): Redefine.
	(usage): Use fprintf for first usage line.  Add help text for
	--shutsig and --preshutdown options.  Add Vista/Longhorn hint to
	--interactive help text.
	* utils.h (reason_t): Add --shutsig/--preshutdown error values.

2008-01-21  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (list_services): Set sh to 0 after closing to avoid
	double closing.
	Bump version to 1.18.

2007-04-19  Brian Dessent  <brian@dessent.net>

	* cygrunsrv.cc (list_services): Make failure of OpenService or
	QueryServiceConfig nonfatal.

2007-04-17  Pierre Humblet  <Pierre.Humblet@ieee.org>

	* cygrunsrv.cc (check_cygwin1): New function.
	(service_main): Call check_cygwin1.

2006-06-19  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.17.

2006-06-19  Ben Hochstedler  <ben.hochstedler@med.ge.com>

	* cygrunsrv.cc (service_main): When fork fails, exit with non-zero
	exit code.  Report correct error value to syslog.

2006-04-27  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.16.
	(service_main): Don't try to kill a process group which doesn't exist.

2006-03-30  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.15.
	(title): Remove here.
	(prepare_daemon): Don't set console title here.
	(hide_console): Remove.
	(service_main): Instead of hiding console , create new console
	here if --nohide is set and rely on Cygwin to do the rest.

2006-03-28  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (version): Fix copyright date.

2006-03-27  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.14.
	(service_main): Don't call setpgrp for interactive services.

2006-03-26  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.13.
	(title): New global variable used for the console title.
	(prepare_daemon): Move allocating console to cygwin_premain0.
	Set console title here.
	(hide_console): Just use console title set in prepare_daemon.
	(cygwin_premain0): New function to allocate console so that Cygwin
	doesn't create an invisible console on an invisible WindowStation.
	Also try to maintain window focus and Z-order.

2006-03-26  Lev Bishop  <lev.bishop@gmail.com>

	* cygrunsrv.cc (print_service): Fix conditional.
	(main): Ditto.

2005-11-28  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.12.
	* TODO: Drop the item about forking children.

2005-11-28  Christian Franke <franke@computer.org>

	* cygrunsrv.cc: Add '--pidfile' option to run daemons which
	fork() and report the child pid in a /var/run/daemon.pid file.
	* cygrunsrv.h: Ditto.
	* utils.cc: Ditto.
	* waitanypid.cc: New file containing helper function to wait for
	non-child processes.
	* waitanypid.h: Ditto.
	* Makefile.in: Add waitanypid.o.

2005-11-23  Christian Franke <franke@computer.org>

	* cygrunsrv.cc: Add '--pidfile' option to run daemons which
	fork() and report the child pid in a /var/run/daemon.pid file.
	* cygrunsrv.h: Ditto.
	* utils.cc: Ditto.
	* waitanypid.cc: New file containing helper function to wait for
	non-child processes.
	* waitanypid.h: Ditto.
	* Makefile.in: Add waitanypid.o.

2005-11-13  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.11.
	* TODO: Add a remark about using ChangeServiceConfig2.

2005-11-13  Corinna Vinschen <corinna@vinschen.de>
	    Christian Franke <franke@computer.org>

	* cygrunsrv.cc (service_main): Simplify waitpid return value
	evaluation.  Always set service status to SERVICE_STOPPED,
	except in the neverexits case.  Forcefully exit from
	service_main in neverexits case.  Move the set_service_status
	call to be always the last action in service_main.

2005-06-07  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.README: Add paragraph about starting services using
	accounts with no password under XP and 2K3.

2005-05-16  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.10.

2005-05-22  Brian Dessent  <brian@dessent.net>

	* cygrunsrv.cc: Add includes.
	(longopts): Add '--list' and '--verbose' options.
	(opts): Add '-L' and '-V' options; keep order consistent with above.
	(action_t): Add 'List'.
	(err_out_set_error): Define version of 'err_out' macro that allows for
	convenient setting the error code.
	(get_description): New function.
	(check_system_mounts): Ditto.
	(install_service): Check mounts and warn if problem found. Use
	'err_out_set_error' throughout.
	(start_service): Ditto.
	(stop_service): Ditto.
	(ServiceType_desc): Add.  Use structs to map DWORD fields onto strings.
	(StartType_desc): Ditto.
	(CurrentState_desc): Ditto.
	(ControlsAccepted_desc): Ditto.
	(make_desc): Add new function that generalizes the task of creating
	a textual field from a binary DWORD.
	(serviceTypeToString): Remove.
	(serviceStateToString): Ditto.
	(controlsToString): Ditto.
	(parsedoublenull): Add new helper function for parsing lists of
	strings, which is used below when printing the 'lpDependencies' value.
	(print_service): Add new function that is responsible for generating
	the formatted output for --list and --query commands.
	(QSC_BUF_SIZE): Add.
	(query_service): Add verbosity parameter.  Remove printf output from
	here, call 'print_service' instead.  Call QueryServiceConfig to
	retrieve more detail on the service.
	(same_filename): New function.
	(list_services): Add new function that implements -L,--list command.
	Call EnumServicesStatus to get names of all services, and then
	determine which ones are cygrunsrv services.  List their names, or
	call print_service() if verbosity was requested.
	(main): Declare new variable 'verbosity'.  Support new command line
	switches.  Pass on verbosity information to query_service and
	list_services.
	* utils.cc (reason_list): Update error text.
	(usage): Document new switches in the help text.
	* utils.h (reason_t): Add new symbolic name for error text.
	* cygrunsrv.README: Update documentation for new flags and mount
	information.

2005-05-16  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.02.
	(service_main): Also initiate correct exiting from service when
	receiving another signal than the "official" exit signal.

2005-02-27  Chris Faylor  <cgf@timesys.com>

	* cygrunsrv.cc: Bump version to 1.01.
	(service_main_exitval): New global variable.
	(service_main): Drop exit_val.  Set exit value in service_main_exitval
	instead.  Don't exit but return.
	(main): Return service_main_exitval.

2004-05-17  Ben Hochstedler  <hochstrb@cs.rose-hulman.edu>

	* cygrunsrv.cc (start_service): Change calls to OpenSCManager and
	OpenService to require only necessary rights.
	(stop_service): Ditto.  Remove unneeded call to LockServiceDatabase.
	(query_service): Ditto.
	(install_service): Ditto.
	(remove_service): Ditto.
	(remove_service): Ditto.

2004-04-18  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 1.0.
	(get_reg_entries): Allow environment variable name
	length of up to the maximum possible (16K).  Allow arbitrarily sized
	environment variable length.  Disallow non-REG_SZ types in environment.
	Remove useless strcpys.

2004-04-07  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc: Bump version to 0.99.

2004-04-07  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.README: Add description for -j, --nohide option.
	* cygrunsrv.cc (longopts): Add '--nohide' option.
	(opts): Add -j option.
	(showcons): New global variable.
	(install_registry_keys): Add 'showcons' parameter.  Write it to
	registry.
	(get_reg_entries): Add 'showcons_p' parameter.  Read it from registry.
	(hide_console): New function.
	(service_main): Call hide_console if showcons is 0.
	(main): Add handling for '--nohide' parameter.  Fix indentation.
	* cygrunsrv.h (PARAM_SHOWCONS): New registry name for nohide parameter.
	* utils_cc (reason_list): Add error strings for --nohide.
	* (usage): Add help text for --nohide option.  Fix output to fit in
	80 columns.
	* utils.h (reason_t): Add error codes for --nohide errors.

2004-03-18  Igor Pechtchanski  <pechtcha@cs.nyu.edu>

	* cygrunsrv.cc (service_main): Fix typo in comment.
	(main): Check that "--user" is not specified with
	"--interactive" (thanks to Peter Wisnovsky).
	* utils.h (reason_t): Add NoInteractiveWithUser value.
	* utils.cc (reason_list): Add description string for the
	NoInteractiveWithUser value.  Fix typos in descriptions
	for the NeverExitsNotAllowed and OnlyOneNeverExits values.
	* cygrunsrv.README: Add comment about the "--interactive"
	option only being valid with a SYSTEM service.

2004-03-17  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (service_main): Set exit_status to 1 by default.
	Terminate service correctly if child terminated as a result of
	cygrunsrv's signal.

2004-03-17  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (termsig_sent): New variable;
	(terminate_child): Set termsig_sent right before sending the signal.
	(service_main): If the child terminated due to a signal, only log
	error in case it wasn't our own termination signal.

2004-03-13  Corinna Vinschen <corinna@vinschen.de>

	Thanks to Tony Silva <tony_silva@alum.mit.edu>:
	* utils.cc (usage): Fix typo in help message.

2004-02-04  Corinna Vinschen <corinna@vinschen.de>

	* Bump version to 0.98.

2004-01-30  Ben Hochstedler  <hochstrb@cs.rose-hulman.edu>

	* cygrunsrv.cc (get_reg_entries): Add neverexits entry. 
	(install_registry_keys): Add neverexits entry.
	(service_main): Add better error handling of child exit.
	If neverexits is set, it will only report SERVICE_STOPPED if
	cygrunsrv itself is shutting down.
	* cygrunsrv.h (PARAM_NEVEREXITS): Add for neverexits option.
	* utils.cc (usage): Add neverexits option.
	* utils.h (reason_t): Add errors for neverexits option.
	* cygrunsrv.README: Add a description for the --neverexits option.

2003-12-07  Corinna Vinschen <corinna@vinschen.de>

	* Makefile.in: Fix typo.

2003-12-07  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (version): Fix copyright date.

2003-12-07  Corinna Vinschen <corinna@vinschen.de>

	* Bump version to 0.97.
	* Makefile.in:  Add uninstall targets.  Refine install targets.
	Add dependencies to Makefile.in and configure.  Rebuild Makefile
	and configure if necessary.
	* configure.in: Fix tests for CFLAGS and CXXFLAGS.
	* configure: Regenerate.
	* cygrunsrv.cc (service_main): Set childs process group to its own pid.

2003-12-05  Brian Ford  <ford@vss.fsi.com>

	* cygrunsrv.cc (terminate_child): Send the signal to the whole
	processes group.

2003-11-24  Corinna Vinschen <corinna@vinschen.de>

	* Makefile.in: Add target "all".

2003-11-24  Corinna Vinschen <corinna@vinschen.de>

	Autotoolize.
	* Makefile: Remove.
	* Makefile.in: New file.
	* config.guess: New file.
	* config.sub: New file.
	* configure: New file.
	* configure.in: New file.
	* install-sh: New file.

2003-08-15  Corinna Vinschen <corinna@vinschen.de>

	* Makefile: Adhere to FHS.

2003-05-09  Igor Pechtchanski  <pechtcha@cs.nyu.edu>

	* cygrunsrv.cc (opts): Expand to have each option
	string on a separate line.

2003-05-09  Igor Pechtchanski  <pechtcha@cs.nyu.edu>

	* cygrunsrv.h (STRINGIFY): New macro.
	(STRINGIFY_): New helper macro.
	(MAX_ENV_STR, MAX_DEPS_STR): Fix redundant string constants.

2003-05-08  Igor Pechtchanski  <pechtcha@cs.nyu.edu>

	* crit.cc (set_service_controls_accepted): Add an
	interactive_process parameter.
	* crit.h (set_service_controls_accepted): Ditto.
	* cygrunsrv.cc (longopts, opts): Add an "--interactive" option.
	(interactive): New global variable.
	(install_registry_keys): Add an interactive parameter.
	(get_reg_entries): Add an interactive_p parameter.
	(install_service): Add an interactive parameter.
	(service_main): Pass the interactive flag to get_reg_entries and
	set_service_controls_accepted.
	(main): Process the "--interactive" flag.
	* cygrunsrv.cc (PARAM_INTERACT): New registry key.
	* utils.h (reason_t): Add InteractiveNotAllowed and OnlyOneInteractive
	values.
	* utils.cc (reason_list): Add description strings for the
	InteractiveNotAllowed and OnlyOneInteractive values.
	(usage): Add description of the "--interactive" option.
	* cygrunsrv.README: Add description of the "--interactive" option.

2003-04-24  Corinna Vinschen <corinna@vinschen.de>

	* Bump version to 0.96.
	* Makefile: Link using g++, not gcc.
	* util.cc (error): Remove errouneous default value from second
	parameter.

2002-03-08  Mike Gerdts <Michael.Gerdts@alcatel.com>

	* utils.h (reason_t): Add code for --query errors.
	* utils.cc (reason_list): Add error string for --query errors.
	(usage): Add help text for --query parameter.
	* cygrunsrv.cc (longopts): Add --query parameter.
	(opts): Add -Q option.
	(main): Add handling --query parameter.
	(serviceTypeToString): New function to support --query parameter.
	(serviceStateToString): Ditto.
	(serviceStateToString): Ditto.
	(controlsToString): Ditto.
	(query_service): Ditto.

2002-02-26  Corinna Vinschen <corinna@vinschen.de>

	* Bump version to 0.95.

2002-02-24  Karl Moerder <karlm30@hotmail.com>

	* utils.h (reason_t): Add codes for --desc errors.
	* utils_cc (reason_list): Add error strings for --desc.
	* (usage): Add help text for --desc option.
	* cygrunsrv.h (DESC): New registry name for description parameter.
	* cygrunsrv.cc (longopts): Add '--desc' option.
	* (opts): Add '-f option.
	* (install_registry_keys): Add 'desc' parameter, and
	writing parameter to registry.
	* (main): Add handling for '--desc' parameter.

2001-10-29  Corinna Vinschen <corinna@vinschen.de>

	Inspired by Pierre A. Humblet <Pierre.Humblet@ieee.org>:
	* cygrunsrv.README: Add hint that user needs 'Logon as a service'
	privilege.

2001-10-23  Corinna Vinschen <corinna@vinschen.de>

	Inspired by Robert Collins <robert.collins@itdomain.com.au>:
	* cygrunsrv.README: Add suggestion of dependency on Tcpip.

2001-10-22  Fred Yankowski  <fred@ontosys.com>

	* cygrunsrv.README: Suggest dependency on LanmanWorkstation.

2001-10-19  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (install_registry_keys): Fix setting working directory.

2001-07-11  Corinna Vinschen <corinna@vinschen.de>

	* Bump version to 0.94.

2001-06-28  Fred Yankowski  <fred@ontosys.com>

	* cygrunsrv.README: Describe --shutdown option.  Adjust postgresql
	example.

2001-06-15  Fred Yankowski  <fred@ontosys.com>

	* utils.h (reason_t): Add codes for --shutdown errors.
	* utils.cc (reason_list): Add error strings for --shutdown.
	(usage): Add help text for --shutdown option.
	* cygrunsrv.h (PARAM_SHUTDOWN): New registry name for shutdown
	parameter.
	* cygrunsrv.cc (longopts): Add '--shutdown' option.
	(opts): Add '-o' option.
	(shutdown): Define new global.
	(install_registry_keys): Add 'shutdown' parameter, and writing
	parameter to registry.
	(get_reg_entries): Add 'shutdown_p' parameter and reading
	parameter from registry.
	(service_handler): Case for SERVICE_CONTROL_SHUTDOWN control.
	(service_main): Set global 'shutdown' parameter, and call
	set_service_controls_accepted.
	(main): Add handling for '--shutdown' parameter.
	* crit.h (set_service_controls_accepted): Declare new function.
	* crit.cc (set_service_controls_accepted): New function.

2001-05-31  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (longopts): Add `--chdir' option.
	(opts): Add `-c' option.
	(version): Add Fred to the version info.
	(install_registry_keys): Add `dir' parameter. Add writing dir to
	the registry.
	(get_reg_entries): Add `dir' parameter. Add reading dir from the
	registry.
	(service_main): Change working directory in child before exec'ing
	the application. Free more unused memory.
	(main): Add handling for `--chdir' option.
	* cygrunsrv.h (PARAM_DIR): New registry name for working directory.
	* utils.cc (reason_list): Add error strings for --chdir errors.
	(usage): Add help text for --chdir option.
	* utils.h (reason_t): Add codes for --chdir errors.

2001-05-23  Corinna Vinschen <corinna@vinschen.de>

	* Makefile: Change install target to install into $DESTDIR and
	to install also cygrunsrv.README.

2001-05-23  Charles S. Wilson  <cwilson@ece.gatech.edu>

	* cygrunsrv.README: New file.

2001-05-22  Corinna Vinschen <corinna@vinschen.de>

	* TODO: New file.

2001-05-22  Fred Yankowski  <fred@ontosys.com>

	* cygrunsrv.cc (eval_arglist): Fix handling of quoted options.

2001-05-21  Corinna Vinschen <corinna@vinschen.de>

	* Bump version to 0.93.

2001-05-21  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (longopts): Add `--stdin', `--stdout' and `--stderr'
	options.
	(opts): Add `-0', `-1' and `-2' options.
	(install_registry_keys): Add handling for stdio redirection file names.
	(get_reg_entries): Ditto.
	(service_main): Ditto.
	(get_opt_string_entry): New function.
	(reeval_io_path): Ditto.
	(main): Add handling for stdio redirection options.
	* cygrunsrv.h (PARAM_STDIN): New registry name for stdin redirection
	file name.
	(PARAM_STDOUT): Ditto for stdout.
	(PARAM_STDERR): Ditto for stderr.
	(DEF_STDIN_PATH): New define, default path for stdin redirection.
	(DEF_LOG_PATH): New define, default directory where log files are
	written.
	* utils.cc (reason_list): Add error strings for --std{in,out,err}
	errors.
	(usage): Add help text for --std{in,out,err}.
	(redirect_fd): New function.
	(redirect_io): Ditto.
	(create_parent_directory): Ditto.
	* utils.h (reason_t): Add codes for --std{in,out,err} errors.
	Add declaration for new functions.

2001-05-21  Corinna Vinschen <corinna@vinschen.de>

	* utils.cc (usage): Change --dep text slightly.

2001-05-21  Fred Yankowski  <fred@ontosys.com>

	* utils.cc (reason_list): Add error strings for --dep errors.
	(usage): Add help text for --dep.
	* utils.h (reason_t): Add codes for --dep errors.
	* cygrunsrv.h (MAX_DEPS): Number of --dep values allowed.
	(MAX_DEPS_STR): String value of MAX_DEPS.
	* cygrunsrv.cc (install_service): Create service with optional
	dependencies.
	(add_dep): New function to save --dep command-line value.
	(main): Handle --dep option.
	(longopts): Add '--dep' option.
	(opts): Add 'y' option.

2001-05-21  Corinna Vinschen <corinna@vinschen.de>

	* cygrunsrv.cc (install_registry_keys): Create environment strings in
	subkey "Environment" now.
	(get_reg_entries): Read environment strings from subkey "Environment"
	now.
	(add_env_var): Drop test for illegal environment string names
	"AppPath" and "AppArgs".
	* cygrunsrv.h (PARAM_ENVIRON): New registry name for environment
	string subkey.

2001-05-18  Fred Yankowski  <fred@ontosys.com>

	* utils.cc (usage): Add help for --termsig option.
	(reason_list):  Add error strings for wrong --termsig usage.
	* cygrunsrv.cc (get_reg_entries): Get --termsig value from registry.
	(service_main): Set up global termsig value.
	(terminate_child): Send termsig signal to server process.
	(termsig):  Create new global variable to hold --termsig value.
	(install_registry_keys): Save --termsig value.
	(longopts): Add '--termsig' option.
	(opts): Add 's' option.
	(main): Handle '--termsig' option.
	* cygrunsrv.h (PARAM_TERMSIG): New registry name for --termsig value.
	* utils.h (reason_t): Add codes for '--termsig' errors.

2001-05-11  Corinna Vinschen <corinna@vinschen.de>

	* utils.cc: New file. Move several functions from cygrunsrv.cc to here.
	* utils.h: Ditto.
	(reason_t): Add error codes for wrong --type usage.
	* utils.cc (winerror): New function providing strerror functionality for
	Win32 errors.
	(reason_list): Add error strings for wrong --type usage.
	(error): Add windows error message text to error output.
	(syslog_starterr): New function.
	* cygrunsrv.cc (longopts): Add `--type' option.
	(opts): Add `t' option.
	(type_t): New type.
	(usage): Add help for `--type' option.
	(install_service): Add parameter for service start type.
	(service_main): Use syslog_starterr function.
	(main): Add handling for `--type' option.
	* Bump version to 0.92.

2001-05-10  Corinna Vinschen <corinna@vinschen.de>

	* (get_reg_entries): Fix memory usage.
	* (install_service): Add interactive password request if password
	is omitted.
	* Control access to SERVICE_STATUS by using a critical section.
	Move access functions to new file crit.cc. Declare access functions
	in crit.h.
	* Bump version to 0.91.

2001-05-09  Corinna Vinschen <corinna@vinschen.de>

	* Initial version 0.9.
