1999-02-14  Owen Taylor  <otaylor@redhat.com>

	* manager.c (close_connection): Removed C++ comment.

1999-02-14 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.c (io_error_handler): NEVER close connections outside
	gnome-ice.c because the ICElibs sometimes go haywire if you close 
	a connection inside the IceProcessMessages call!
	(kill_client_connection): redundant and removed.
	
1999-02-14 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.c (io_error_handler): do not close connections which
	have no matching clients as gnome-ice.c does this for us.
	
1999-02-12 Felix Bellaby  <felix@pooh.u-net.com>

	* save.c (write_session): write details of clients in the purged_list.
	(delete_session): do not call discard commands on purged_list clients.
	(read_one_client): reallocate g_malloc'd strings as malloc'd strings
 	to avoid potential seg faults when they are free'd.
	* manager.c (update_save_state): clear the purged_list on shutdown so
	that any remaining purged clients are discarded.

1999-02-11 Felix Bellaby  <felix@pooh.u-net.com>
	* save.c: Replace "Priority with "_GSM_Priority" throughout.
	(write_session): write details of clients in the pending_list.
	* manager.c (close_connection): use start_client on respawned clients
 	so that they are purged when they fail to connect.

1999-02-10 Felix Bellaby  <felix@pooh.u-net.com>

	* save.c (delete_session): do not call discard commands on clients
	in the pending_list.
	* manager.c: export pending_list to save.c

1999-02-09 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.c (close_connection): restart RestartImmediately clients
	unless they have failed 10 times in last 2 minutes.
	* save.c (delete_session): use free_client to free ALL client memory.
	* manager.h: export free_client and expand Client struct.
	
1999-02-06  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* gsm.desktop: Updated Korean translation.

1999-01-28 Felix Bellaby  <felix@pooh.u-net.com>

	* default.in: added esd to start up.
	
1999-01-22 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.h, manager.c (load_session) : queue session starts.
	(process_load_request): initialise load bas on priority ordering.
	(purge): clear slow clients from list of awaited registrations.
	(start_client) support non-session aware clients as well.
	(register_client): maximise retention of previous client ids.
	(update_save_state): startup clients in run level order.
	* save.c (unlock_session, set_session_name) skeleton for name locking.
	* main.c (main): new option to set purge-delay during start up.
	* default.in (accept_connection): new format including runlevels.
	* ice.c (accept_connection): do not close connection on an error
	as the gtk_main_loop does this now inside gnome-ice.c.
	* save-session.c (main): wait until request is acknowledged before
	dying because gnome-session no longer honours requests from zombies.
	
1999-01-21  Carsten Schaar  <nhadcasc@fs-maphy.uni-hannover.de>

	* ice.c (initialize_ice): Removed the 'free' call to the argument
 	of 'putenv', because this breaks the setting of the environment
 	variable at least on my libc5 system.

Tue Jan 19 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.c (kill_client_connection): close protocol cleanly.
	(run_command): run a command for a live client.
	(start_client): convenience function.
	(register_client): carry forward properties on restarted clients
	and send SaveYourselfs to new ones to get their properties.
	(interact_request): allow multiple requests per client and dispatch
	them in order, separating requests for each client.
	(interact_done): wait for SaveDones following a ShutdownCancel to
	avoid confusing one session save with another.
	(process_save_request): process a queued save request.
	(update_save_state): less cryptic replacement for check_session_end
	which does not close connections (as this often kills clients).
	(display_reasons): warning dialog.
	(close_connection): handle RestartImmediately & close cleanly.
	(new_client): refuse connections during shutdown with reason.
	(io_error_handler): display warning.

	* save.c (properties): save SmRestartStyleHint and SmProgram.
	(read_client): translates config file to SmProperties.
	(read_clients): recover full client details from config section.
	(read_session): clone merged session if one is already running
	(delete_session): pulled all the discard code together.

Tue Jan 12 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.c (send_message): Fixed bug patched over by Jay.

Mon Dec 21 Jay Painter <jpaint@serv.net>

	* manager.c (send_message): I don't know what it was suppose to do,
	but now at least it sends messages correctly.  Felix needs to
	look at this.

Mon Dec 14 

	* manager.c (save_yourself_p2_request): only accept one such request
	per client and check if ready to send the Save Yourself P2 messages.
	
Fri Dec 11 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.c (send_message): protect against io errors.
	* manager.c (save_session): protect against io errors.
	* manager.c (check_session_end): protect against io errors.
	* manager.c (interact_done): cancel shutdown when a shutdown cancel
	is sent. Ignore cancels when not shutting down.
	* manager.c (save_yourself_done): do nothing if a shutdown cancelled
	has already been sent.
	
Thu Dec 10 Felix Bellaby  <felix@pooh.u-net.com>

	* save.c (run_commands): fix broken logic on last change.
	
Thu Dec 10 Felix Bellaby  <felix@pooh.u-net.com>

	* save.c (run_commands): fix some memory leaks.
	* save.c (run_string_commands): alternate version of above for
	backwards compatibility with xsm string format discard commands.
	* save.c (delete_session): run string format discard commands.
	* save.c (write_one_client): added support for saving string 
	format discard commands.
	
Tue Dec 7 Felix Bellaby  <felix@pooh.u-net.com>

	* save.c (run_commands): call discard commands on clients that are
	still in the session IF they have changed their discard commands.
	[ partial reversion of change on Nov 28 ] 
	* manager.c (check_session_end): write all running SmRestartIfRunning 
	clients even when the Save Yourself only covered a single client.
	
Sat Dec 5 Felix Bellaby  <felix@pooh.u-net.com>

	* manager.c (save_yourself_request): fix g_assert.
	
1998-11-29  Herbert Valerio Riedel  <hvr@hvrlab.ml.org>

	* session-properties.c (program_remove_cb): added one GPOINTER_TO_INT

	* manager.[ch] (find_client_by_id): added const to arguments

	* prop.c: added #include <string.h> for memcpy-prototype 

Sat Nov 28 Felix Bellaby  <felix@pooh.u-net.com>

	* prop.c (find_string_property): fixed problem that created need
	for "static" patch reverted on Nov 25.
	* save.c (delete_session): do not call discard command on clients 
	that are still in the session.
	* save.c (run_commands): do not call commands on clients in
 	either of two lists.
	* manager.h, manager.c (find_client_by_id): now exported. 

1998-11-27  Jay Painter <jpaint@serv.net>

	* session-properties.c: big UI cleanup in preperation for
	moving it into the Gnome Control Center.

1998-11-25  Tom Tromey  <tromey@cygnus.com>

	* save.c (write_one_client): Reverted `static' change of Nov 11.

1998-11-24  Martin Baulig  <martin@home-of-linux.org>

	* session-properties.c (setup): Put the GtkCList into a
	GtkScrolledWindow and use gtk_scrolled_window_set_policy ()
	if using Gtk 1.1.4.

	* session-properties.c (setup): Set the GtkCList in multiple
	selection mode to fix this fixme.

Wed Nov 11 Felix Bellaby  <felix@pooh.u-net.com>

	* save.c (write_one_client) change argvs to static variable -
	temporary fix until real reason for stack corruption is known.

Fri Nov 6 Felix Bellaby  <felix@pooh.u-net.com>

	* save-session.c (options) added missing val item from struct so
 	that save session does not zap session every time.

Sun Aug 16 17:47:00 1998  Tom Tromey  <tromey@cygnus.com>

	* main.c (main): Call clean_ice().
	(options): New array.
	(debugging): New global.
	(parse_an_arg): Recognize --debug.
	(main): Handle debugging case.
	* auth.h: Use real function prototypes.
	* auth.c: Include auth.h and libgnome/libgnome.h.
	(SetAuthentication): Put .xsm files into ~/.gnome/.

Thu Jul 23 21:50:33 1998  Tom Tromey  <tromey@cygnus.com>

	* session-properties.c (session_die): New function.
	(session_save): New function.
	(struct info): Added `argv0' element.
	(setup): Initialize argv0 element of info.  Return info
	structure.
	(options): New structure.
	(parse_an_arg): New function.
	(geometry): New global.
	(parser): New global.
	(main): Handle session management and argument parsing.

Wed Jul 22 23:11:47 1998  Tom Tromey  <tromey@cygnus.com>

	* session-properties.c (setup): Use GNOME_PAD and
	GNOME_PAD_SMALL.

1998-07-23  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>

	* session.desktop: Added Portuguese translation. 

Tue Jul 21 10:25:55 1998  Tom Tromey  <tromey@cygnus.com>

	* session-properties.c (setup): Connect to "activate" signal on
	entry.  Disable "Delete" button initially.  Connect to "clicked"
	signal on button.
	(entry_ok): New function.
	(remove_items): New function.
	(struct info): New structure.

	* save.c (run_default_session): Use run_preloads to run default
	session.

	* Makefile.am (EXTRA_DIST): Added default.in.
	(data_DATA): New macro.
	(default.session): New target.
	(INCLUDES): Define DEFAULTDIR.
	* default.in: New file.

	* session-properties.c (apply_properties): Use PRELOAD_COUNT_KEY.
	(fill_clist): Likewise.

	* save.c (session_loaded): New global.
	(run_preloads): New function.
	(num_preloads): New function.
	(read_session): Call run_preloads.

	* save.c: Include "session.h".
	* session-properties.c: Include "session.h".
	* Makefile.am (gnome_session_SOURCES): Added session.h.
	(session_properties_SOURCES): Likewise.
	* session.h: New file.

	* session-properties.c (setup): Set scrollbar policy on clist.
	Left align label above clist.
	(apply_properties): Synchronize config.
	(PRELOAD_PREFIX): New define.
	(apply_properties): Use it.
	(fill_clist): New function.
	(setup): Call it.

Sun Jul 19 16:31:51 1998  Tom Tromey  <tromey@cygnus.com>

	* session.desktop: New file.
	* Makefile.am (sysdir): New macro.
	(sys_DATA): Likewise.
	(EXTRA_DIST): Likewise.

	* Makefile.am (bin_PROGRAMS): Added session-properties.
	(session_properties_SOURCES): New macro.
	* session-properties.c: New file.

	* manager.c (save_yourself_request): Handle single-client saves.

	Reverted most changes from July 7.
	* manager.c (old_sess): Removed.
	(restart_session): Removed.
	(save_ps): Removed.
	(saving_ps): Removed.
	* save.c (get_session_name): Removed.
	* manager.h (get_session_name): Removed.

Thu Jul 16 18:10:26 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_default_session): Run gnome-smproxy, not smproxy.

mar jul  7 09:56:07 ART 1998  Horacio J. Pea <horape@compendium.com.ar>

	* manager.c: added support for saving state
	of only one process and for restarting sessions. (it's ugly)
		New global variables saving_ps & old_sess.
		save_yourself_request: added a bunch of code to check for
		the "new" services.
		check_session_end: removed !live_list check (Tom, is it ok?)
		check_session_end: added support for saving_ps & old_sess.
		New functions: save_ps & restart_session.
	* manager.h: Added prototipe for get_session_name.
	* save.c: Added get_session_name.

Sun Jul  5 18:16:00 1998  Tom Tromey  <tromey@cygnus.com>

	* main.c (main): Set the DISPLAY environment variable.
	* save.c (properties): Added SmEnvironment.
	(run_commands): Look up environment and pass to exec.

Sat Jun 13 20:54:05 1998  Tom Tromey  <tromey@cygnus.com>

	Fixed all -Wall warnings:
	* auth.c: Include <stdlib.h>, <sys/stat.h>, <unistd.h>.
	* save-session.c: Include libgnomeui.h, not gnome-client.h.
	(main): Removed unused variable.
	* save.c (write_one_client): Removed unused variable.
	(run_commands): Likewise.
	(delete_session): Likewise.
	* main.c: Include libgnomeui.h, not gnome-client.h.
	* ice.c: Include <gtk/gtk.h>, <stdlib.h>.
	* manager.c: Include <stdlib.h>, <libgnome/libgnome.h>,
	<gtk/gtk.h>.

Sat Jun  6 02:09:49 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (read_session): If no clients in saved session, load
	default session.

	* manager.c (run_shutdown_commands): New function.
	(check_session_end): Call it.

1998-06-06  Carsten Schaar  <nhadcasc@fs-maphy.uni-hannover.de>

	* save-session.c (main): Replaced 'gnome_client_new_default' with
 	'gnome_master_client'.

	* main.c: Included 'libgnome/gnome-client.h'.
	(main): Added call to 'gnome_client_disable_master_connection'
 	because otherwise 'gnome-session' tries to connect to itself.

Sat May 16 00:47:11 1998  Tom Tromey  <tromey@cygnus.com>

	* Makefile.am (gnome_session_SOURCES): Removed exec.c.
	* manager.h: Don't declare execute_async.
	* save.c (run_commands): Use gnome_execute_async.
	(run_default_session): Likewise.
	* exec.c: Removed.

Thu May 14 09:49:08 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_default_session): Make icewm the default window
	manager.

	* save-session.c (main): Print error if couldn't connect to
	session manager.

	* manager.c (kill_client_connection): New function.
	(check_session_end): Correctly determine when last ordinary client
	finishes.  Send kill_client_connection message to each client,
	just to make sure.

Sun May  3 10:53:01 1998  Tom Tromey  <tromey@cygnus.com>

	* manager.c (io_error_handler): Call IceCloseConnection.

Thu Apr 30 23:13:53 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_default_session): Run `smproxy'.

	* prop.c (find_string_property): Put trailing \0 on result
	string.
	(find_vector_property): Likewise.

Sun Apr 26 16:19:31 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_default_session): If WINDOW_MANAGER defined, then
	launch it.

Wed Mar 18 22:26:54 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_default_session): Put `gmc' into the default
	session.

Mon Mar 16 00:52:21 1998  Tom Tromey  <tromey@cygnus.com>

	* main.c (ignore): Use sigemptyset to initialize sa_mask member.

	* save-session.c (main): Removed local "zap" variable.

	* main.c (ignore): New function.
	(main): Ignore SIGPIPE.

Tue Mar 10 21:40:28 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_commands): Pass saved directory information to
	execute_async().
	* exec.c (execute_async): Added `dir' argument.

Sun Mar  8 18:36:38 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_commands): `def' now a gboolean.
	(read_session): Likewise.
	(delete_session): Likewise.

	* Makefile.am (INCLUDES): Added GNOME_INCLUDEDIR.  Define
	GNOMELOCALEDIR.

Sat Mar  7 11:45:07 1998  Tom Tromey  <tromey@cygnus.com>

	* save-session.c (options): New structure.
	(parser): Likewise.
	(usage): Removed.
	(zap): New global.
	(parse_an_arg): New function.
	(main): Use new argument parsing and client-handling functions.
	* Makefile.am (gnome_session_SOURCES): Removed testbed.c, added
	main.c.
	* testbed.c: Removed.
	* main.c: New file.

Thu Feb 26 02:26:51 1998  Tom Tromey  <tromey@cygnus.com>

	* exec.c (errno): Declare if not a macro.

	* Makefile.am (bin_PROGRAMS): Only define if session support
	available.

	* Makefile.am (bin_PROGRAMS): Added save-session.
	(save_session_SOURCES): New macro.
	* save-session.c: New file.

	* testbed.c (main): Don't call gtk_init.

	* exec.c (execute_async): "pid" is a pid_t, not an int.  Close
	read end of pipe in child; mark write end as close-on-exec.

	* save.c (run_default_session): Run gnome-help-browser.

Mon Feb 23 00:49:05 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (run_default_session): NULL-terminate argv.
	* exec.c (report_errno): New function.
	(execute_async): Use it.

1998-02-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* testbed.c (main): Added app_id "gsm-testbed".

Mon Feb 16 00:04:09 1998  Tom Tromey  <tromey@cygnus.com>

	* exec.c (execute_async): Wait for child process.

	* save.c (run_default_session): New function.
	(read_session): If no saved session, and trying to load the
	default, then call run_default_session.

	* manager.c (check_session_end): Call gtk_main_quit if shutting
	down.

	* manager.h (execute_func): Removed.
	* save.c (run_commands): Removed executor argument.

	* manager.c (check_session_end): Save anyway_list first.

	* save.c (write_one_client): If restart style is RestartNever,
	don't bother saving client.
	(write_session): Added list2 argument.

	* manager.c (anyway_list): New global.
	(free_client): Do nothing if client is NULL.
	(close_connection): Take restart hints into account.
	(check_session_end): Pass anyway_list to write_session.

	* save.c: Include <gtk/gtk.h>.

Mon Feb 16 11:15:43 KST 1998  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* save.c: Include <config.h>.
	Replace "gnome-session.h" with "gnome-client.h".

Sat Feb 14 01:45:26 1998  Tom Tromey  <tromey@cygnus.com>

	* exec.c (execute_once): Removed.
	* manager.h (execute_once): Removed decl.
	* save.c (properties): Removed GNOME_SM_INIT_COMMAND.
	(read_session): Don't run initialization commands.

	* Makefile.am (LDADD): Don't include LEXLIB or DL_LIB.  Do include
	INTLLIBS.

Mon Feb  9 13:24:01 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (write_session): gnome -> session.
	(run_commands): Likewise.
	(read_session): Likewise.
	(delete_session): Likewise.
	* Makefile.am (bin_PROGRAMS): Changed name to gnome-session.
	(gnome_session_SOURCES): Likewise.

Tue Feb  3 00:38:40 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (write_session): gsm->gnome.
	(run_commands): Likewise.
	(read_session): Likewise.
	(delete_session): Likewise.

	* exec.c (execute_async): Wrote.

	* Makefile.am (bin_PROGRAMS): Program named "gnome".
	(gnome_SOURCES): Renamed.

	* save.c (delete_session): Call gnome_config_sync().

Mon Feb  2 23:08:50 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (write_one_client): Use gnome_config_set_vector.
	(write_session): Use prefix that doesn't result in new sub-keys.
	(read_session): Use new prefix.
	(run_commands): Likewise.  Use gnome_config_get_vector_with_default.

Thu Jan 29 16:49:12 EST 1998 Nathan Bryant <bryant@cs.usm.maine.edu>

	* Makefile.am: add DL_LIB.

Wed Jan 21 00:41:27 1998  Federico Mena <federico@bananoid.nuclecu.unam.mx>

	* gsm.c (gsm_generate_session_list): Replace snprintf with
	g_snprintf.

Tue Jan 20 18:43:50 1998  Tom Tromey  <tromey@cygnus.com>

	* gsm.h, gsm.c, gsm-backend.c: Removed.

Sun Jan 18 15:28:06 1998  Tom Tromey  <tromey@cygnus.com>

	* manager.c (check_session_end): New function.
	(save_yourself_done): Use it.
	(close_connection): Likewise.

	* manager.c: Include <string.h>.
	* ice.c: Include <config.h>.

	* testbed.c (main): Read session.

Fri Jan 16 23:50:48 1998  Tom Tromey  <tromey@cygnus.com>

	* ice.c (initialize_ice): Use Gnome's version number.

Sun Jan  4 13:24:47 1998  Tom Tromey  <tromey@cygnus.com>

	* save.c (read_session): Changed return value.  Started
	implementation.
	(run_commands): New function.
	(delete_session): Use it.

	* manager.c (add_zombie): New function.
	* manager.h (add_zombie): Declare.

	* Makefile.am (gsm_SOURCES): Include exec.c.
	* exec.c: New file.
	* manager.h (execute_async): Declare.

	* save.c (write_one_client): Added `number' argument; changed
	return value; changed how information represented in file.
	(prefix): No longer global.
	(write_session): Changed how information represented in file.
	(delete_session): Wrote.

Fri Jan  2 00:11:49 1998  Tom Tromey  <tromey@cygnus.com>

	* manager.c (save_yourself_done): Move save_finished_list to
	live_list when done.

Thu Jan  1 15:53:26 1998  Tom Tromey  <tromey@cygnus.com>

	* manager.h: Declare delete_session.
	* manager.c (save_yourself_done): Call write_session.
	* save.c (set_session_name): Made name argument const.
	(read_session): Likewise.
	(write_session): Made list argument const.
	(propsave): New type.
	(properties): New array.
	(NUM_PROPERTIES): New macro.
	(write_one_client): New function.
	(write_session): Wrote.
	(delete_session): New function.

	* prop.c (find_property_by_name): Made client argument const.
	(find_card8_property): Likewise.
	(find_string_property): Likewise.
	(find_vector_property): Likewise.

Sat Dec 27 12:39:40 1997  Tom Tromey  <tromey@cygnus.com>

	* save.c: New file.
	* prop.c: New file.
	* Makefile.am (gsm_SOURCES): Include prop.c, save.c.

	* manager.h: Declare find_property_by_name, find_card8_property,
	find_string_property, find_vector_property.

	* manager.c (save_helper): Removed.
	(x_save_type, x_interact_style, x_fast): Removed.
	(save_session): Traverse list by hand.
	(find_property_by_name): Moved to prop.c; exported.

Fri Dec 26 00:00:42 1997  Tom Tromey  <tromey@cygnus.com>

	* manager.c (find_client_by_connection): New function.
	(io_error_handler): New function.
	* manager.h: Declare io_error_handler.
	* ice.c (initialize_ice): Install IO error handler.

	* manager.c (close_connection): Remove client from all lists.
	Free client structure.

	* auth.c (write_iceauth): Make sure data is in range for fprintf.

	* Makefile: Removed.
	* Makefile.am: New file.
	* testbed.c: New file.

Thu Dec 25 00:12:44 1997  Tom Tromey  <tromey@cygnus.com>

	* ice.c (accept_connection): Must wait for ICE connection to leave
	pending state.

Wed Dec 24 23:33:09 1997  Tom Tromey  <tromey@cygnus.com>

	* auth.c, auth.h: Modified files from X11R6.3 `xsm' program.
	* TODO, manager.c, manager.h, ice.c: New files.

