Commit Graph

132 Commits

Author SHA1 Message Date
Federico Mena Quintero
b3fbcef831 Fix #139290:
2004-07-08  Federico Mena Quintero  <federico@ximian.com>

	Fix #139290:

	* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_new): Add a
	GError argument.  Do check for errors when getting the
	GtkFileFolder:  get the folder and read the children before
	actually creating the model.  Removed obsolete code that handled
	roots-changed on the file system.
	(file_model_node_get_info): Assert that we don't reach the old
	case to display file system roots.
	(roots_changed_callback): Removed.

	* gtk/gtkfilechooserdefault.c (set_list_model): Add a GError
	argument, and a boolean return value.  Return an error if we
	cannot create the file system model.  On error, set a NULL model
	on the tree.
	(gtk_file_chooser_default_set_current_folder): Use the error value
	from set_list_model().
	(gtk_file_chooser_default_set_property): Set the show_hidden
	property only if the browse_files_model exists.
	(gtk_file_chooser_default_unselect_path): Only operate if the
	browse_files_model exists.
	(check_preview_change): Check whether we have the sort_model.
	(change_folder_and_display_error): Copy the path we get passed
	before using it.  There's a comment in there that explains why we
	need to copy it; basically, if the passed path belongs to the
	model, the model may go away in the middle of this function and
	we'll be left with a dangling pointer.
	(install_list_model_filter): Assert that the model is not NULL.
	(set_current_filter): Check whether the model exists.

	* gtk/gtktreeselection.c (gtk_tree_selection_get_selected): Don't
	g_return_if_fail if the model is NULL.
	(gtk_tree_selection_get_selected_rows): Likewise.
	(gtk_tree_selection_count_selected_rows): Likewise.
	(gtk_tree_selection_selected_foreach): Likewise.
	(gtk_tree_selection_path_is_selected): Likewise; rather just
	return FALSE.
	(gtk_tree_selection_select_all): Likewise.
	(gtk_tree_selection_unselect_all): Likewise.
	(gtk_tree_selection_select_range): Do g_return_if_fail() if the
	model is NULL.
	(gtk_tree_selection_unselect_range): Likewise.

	* gtk/gtkfilesystemunix.c (fill_in_names): Return immediately if
	g_dir_open() fails:  there is no need to set the error ourselves,
	as g_dir_open() already does it.
2004-07-09 00:53:48 +00:00
Federico Mena Quintero
11a9e21ab0 When inserting a visible node, free the old path before creating the new
2004-06-16  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystemmodel.c (do_files_added): When inserting a
	visible node, free the old path before creating the new one.
	Fixes #144356.
2004-06-16 21:38:47 +00:00
Federico Mena Quintero
2ec910595c Fixes #143578:
2004-06-11  Federico Mena Quintero  <federico@ximian.com>

	Fixes #143578:

	* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_add_editable):
	Don't ref the editable node.
	(_gtk_file_system_model_remove_editable): Don't unref the editable node.
	(_gtk_file_system_model_remove_editable): Ahem, free the node.

	* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
	Added fields for edited_idle and edited_new_text.
	(renderer_edited_cb): Queue the
	creation of the folder in an idle handler.
	(renderer_editing_canceled_cb): Likewise for the cancellation.
	(gtk_file_chooser_default_finalize): Free the impl->edited_new_text.
2004-06-12 00:49:02 +00:00
Federico Mena Quintero
aa37764403 Don't insert a dummy node if there is no parent node. Fixes #143362.
2004-06-01  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystemmodel.c (do_files_removed): Don't insert a
	dummy node if there is no parent node.  Fixes #143362.
2004-06-01 16:34:53 +00:00
Federico Mena Quintero
8e661364c6 Fix #136077.
2004-04-01  Federico Mena Quintero  <federico@ximian.com>

	Fix #136077.

	* gtk/gtkpathbar.h (struct _GtkPathBarClass): Add a
	"child_is_hidden" boolean argument to the "path-clicked" signal.

	* gtk/gtkpathbar.c (struct _ButtonData): Added a file_is_hidden
	field.
	(make_directory_button): Take a file_is_hidden argument; put it in
	the ButtonData.
	(_gtk_path_bar_set_path): See whether each path component path is
	a hidden file.
	(gtk_path_bar_class_init): Add the file_is_hidden argument to the
	"path-clicked" signal.
	(button_clicked_cb): See if the downwards button represents a
	hidden file for the file_is_hidden argument in the signal
	emission.

	* gtk/gtkmarshalers.list: Added a signal type VOID:POINTER,BOOLEAN.

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_select_path): If we fail to switch
	folders, don't try to select the path in the file system model.
	Also, return the result from _gtk_file_system_model_path_do().
	(gtk_file_chooser_default_select_path): Turn on show_hidden in the
	file system model if we are asked to select a hidden file.
	(path_bar_clicked): Show hidden files based on whether the
	immediate downwards folder in the path bar is a hidden file
	itself.
	(struct _GtkFileChooserDefault): Added fields
	browse_files_popup_menu and browse_files_popup_menu_hidden_files_item.
	(create_file_list): Set an object data key of
	"GtkFileChooserDefault" on the tree view so that we can find the
	impl from the popup menu callbacks.  Also, hook up to the
	"button-press-event" and "popup-menu" signals in the file list to
	bring up a popup menu.
	(list_popup_menu_cb): New callback.
	(list_button_press_event_cb): New callback.

	Fix #138763:

	* gtk/gtkfilesystemmodel.c
	(_gtk_file_system_model_new): Oops, connect_object to
	"finished-loading".
2004-04-02 00:35:07 +00:00
Federico Mena Quintero
7f62edf379 Fix #137520.
2004-03-29  Federico Mena Quintero  <federico@ximian.com>

	Fix #137520.

	* gtk/gtkfilesystem.h (struct _GtkFileFolderIface): Added slots
	for an ::is_finished_loading() method and a ::finished_loading()
	signal at the end of the struct.

	* gtk/gtkfilesystem.c (gtk_file_folder_base_init): Create the
	"finished-loading" signal.
	(gtk_file_folder_is_finished_loading): New function.

	* gtk/gtkfilesystemunix.c
	(gtk_file_folder_unix_is_finished_loading): Implement.

	* gtk/gtkfilesystemmodel.c (struct _GtkFileSystemModelClass): New
	slot for a "finished-loading" signal.
	(gtk_file_system_model_class_init): Create the "finished-loading"
	signal.
	(struct _GtkFileSystemModel): New field
	idle_finished_loading_source.  We emit the "finished-loading"
	signal in an idle if the root folder was done loading right in
	_gtk_file_system_model_new(), so that the caller has a chance to
	connect to the signal.
	(_gtk_file_system_model_new): Connect to the normal signals of the
	folder even if the initial _list_children() fails.  Also, see if
	the folder is finished loading; connect to the "finished-loading"
	signal otherwise.
	(gtk_file_system_model_finalize): Remove the idle handler.

	* gtk/gtkfilechooserdefault.c (set_list_model): Set a busy cursor
	and connect to the model's "finished-loading" signal.
	(get_toplevel): New helper function.
	(error_message): Use get_toplevel().
	(trap_activate_cb): Likewise.
	(location_popup_handler): Likewise.
	(set_busy_cursor): New function.
	(browse_files_model_finished_loading_cb): New callback.
2004-03-29 19:52:16 +00:00
Federico Mena Quintero
da83c1cbf3 Revert the patch to #137520, as 2.4.1 is for conservative bug fixes only.
2004-03-19  Federico Mena Quintero  <federico@ximian.com>

	* Revert the patch to #137520, as 2.4.1 is for conservative bug
	fixes only.  The patch is attached to the bug report, for
	reference.

2004-03-19  Morten Welinder  <terra@gnome.org>

	* gtk/gtkfilechooserdefault.c
2004-03-19 21:16:24 +00:00
Federico Mena Quintero
68030a7ee7 Fix #137520.
2004-03-19  Federico Mena Quintero  <federico@ximian.com>

	Fix #137520.

	* gtk/gtkfilesystem.h (struct _GtkFileFolderIface): Added slots
	for an ::is_finished_loading() method and a ::finished_loading()
	signal at the end of the struct.

	* gtk/gtkfilesystem.c (gtk_file_folder_base_init): Create the
	"finished-loading" signal.
	(gtk_file_folder_is_finished_loading): New function.

	* gtk/gtkfilesystemunix.c
	(gtk_file_folder_unix_is_finished_loading): Implement.

	* gtk/gtkfilesystemmodel.c (struct _GtkFileSystemModelClass): New
	slot for a "finished-loading" signal.
	(gtk_file_system_model_class_init): Create the "finished-loading"
	signal.
	(struct _GtkFileSystemModel): New field
	idle_finished_loading_source.  We emit the "finished-loading"
	signal in an idle if the root folder was done loading right in
	_gtk_file_system_model_new(), so that the caller has a chance to
	connect to the signal.
	(_gtk_file_system_model_new): Connect to the normal signals of the
	folder even if the initial _list_children() fails.  Also, see if
	the folder is finished loading; connect to the "finished-loading"
	signal otherwise.
	(gtk_file_system_model_finalize): Remove the idle handler.

	* gtk/gtkfilechooserdefault.c (set_list_model): Set a busy cursor
	and connect to the model's "finished-loading" signal.
	(get_toplevel): New helper function.
	(error_message): Use get_toplevel().
	(trap_activate_cb): Likewise.
	(location_popup_handler): Likewise.
	(set_busy_cursor): New function.
	(browse_files_model_finished_loading_cb): New callback.
2004-03-19 19:41:06 +00:00
Anders Carlsson
5970844734 If max_depth is 0 then we have a list.
2004-03-08  Anders Carlsson  <andersca@gnome.org>

	* gtk/gtkfilesystemmodel.c (gtk_file_system_model_get_flags):
	If max_depth is 0 then we have a list.
2004-03-08 17:33:26 +00:00
Jonathan Blandford
9e379cfd40 set redraw_on_allocate, #135902.
Sun Mar  7 16:07:08 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_init): set
        redraw_on_allocate, #135902.

        * gtk/gtkfilesystemmodel.c (model_refilter_recurse): Patch from
        Damon Chaplin to set a node to be visible before emitting the
        inserted signal, #135555.
2004-03-07 21:26:32 +00:00
Federico Mena Quintero
80581c3011 Fixes #136082 and #135265, patch by Morten Welinder.
2004-03-05  Federico Mena Quintero  <federico@ximian.com>

	Fixes #136082 and #135265, patch by Morten Welinder.

	* configure.in: Use AC_SYS_LARGEFILE.

	* */*.c: #include <config.h>
2004-03-06 03:38:59 +00:00
Morten Welinder
8ddff5b098 Simplify semantics and check for errors.
2004-03-01  Morten Welinder  <terra@gnome.org>

	* gtk/gtkfilesystemmodel.c (file_model_node_is_visible): Simplify
	semantics and check for errors.

	* gtk/gtkpathbar.c (gtk_path_bar_set_path): Propagate errors.

	* gtk/gtkfilefilter.c (gtk_file_filter_filter): Don't crash if
	display_name is NULL.
2004-03-01 19:48:28 +00:00
Federico Mena Quintero
903e2de0c3 Renamed from create_shortcuts_model(). (struct _GtkFileChooserDefault):
2004-02-24  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_model_create): Renamed
	from create_shortcuts_model().
	(struct _GtkFileChooserDefault): Renamed the shortcuts_tree field
	to shortcuts_list.
	(shortcuts_list_create): Renamed from shortcuts_tree_create().
	(create_file_list): Enable the tree view as a model drag source.
	(create_folder_tree): Likewise.

	* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_get_type):
	Register the drag source interface.
	(drag_source_iface_init): New function.
	(drag_source_row_draggable): New function.
	(drag_source_drag_data_get): New function.
2004-02-25 03:03:11 +00:00
Matthias Clasen
a362428d2a Add chains to the parent's ::finalize() handler (#134901, Morten Welinder,
Sun Feb 22 03:03:29 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkaction.c: (gtk_action_finalize):
	* gtk/gtkclipboard.c: (gtk_clipboard_finalize):
	* gtk/gtkentrycompletion.c: (gtk_entry_completion_class_init),
	(gtk_entry_completion_finalize):
	* gtk/gtkfilechooserwidget.c: (gtk_file_chooser_widget_finalize):
	* gtk/gtkfilesystemmodel.c: (gtk_file_system_model_class_init),
	(gtk_file_system_model_finalize):
	* gtk/gtkicontheme.c: (gtk_icon_theme_class_init),
	(gtk_icon_theme_finalize):
	* gtk/gtktextchild.c: (gtk_text_child_anchor_finalize):
	* gtk/gtkuimanager.c: (gtk_ui_manager_class_init),
	(gtk_ui_manager_finalize):
	* modules/input/gtkimcontextxim.c: (gtk_im_context_xim_finalize):
	Add chains to the parent's ::finalize() handler  (#134901, Morten Welinder,
	patch by Jan Arne Petersen)
2004-02-22 02:06:49 +00:00
Federico Mena Quintero
56913b4b3b Free the path fields.
2004-01-21  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_finalize):
	Free the path fields.

	* gtk/gtkfilesystemmodel.c (gtk_file_system_model_finalize): Free
	the root_path, reported by <scott@asofyet.org>
	(gtk_file_system_model_finalize): Unref the file system.

	* gtk/gtkfilefilter.c (filter_rule_free): default:
	g_assert_not_reached().
	(gtk_file_filter_finalize): Free the filter->name, reported by
	<scott@asofyet.org>
	(gtk_file_filter_finalize): Free the rules list.
2004-01-22 02:39:31 +00:00
Federico Mena Quintero
02cb455471 Added a has_editable field. (_gtk_file_system_model_add_editable): New
2004-01-16  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystemmodel.c (struct _GtkFileSystemModel): Added a
	has_editable field.
	(_gtk_file_system_model_add_editable): New function.
	(_gtk_file_system_model_remove_editable): New function.
	(gtk_file_system_model_get_value): Return appropriate values for
	the temporary editable row.
	(_gtk_file_system_model_get_info): Handle the editable row.
	(_gtk_file_system_model_get_path): Likewise.

	* gtk/gtkfilechooserdefault.c (shortcuts_append_bookmarks):
	Removed an unused variable.
	(toolbar_button_new): Optionally show the button.
	(up_button_clicked_cb): Renamed from up_button_cb(), fixed prototype.
	(toolbar_create): Add a "New Folder" button for Save mode.
	(error_building_filename_dialog): New helper function.
	(gtk_file_chooser_default_get_paths): Use error_building_filename_dialog().
	(create_file_list): Connect to the "edited" signal of the text
	cell renderer.  Store the name column and text renderer in the
	impl structure.
	(renderer_edited_cb): New callback.
	(gtk_file_chooser_default_set_property): Show/hide the "New
	folder" button when the save action changes.
	(COMPARE_DIRECTORIES): Allow the info values to be NULL.
	(COMPARE_DIRECTORIES): Duh, use the list_model, not the
	tree_model.
	(get_list_file_info): Likewise!
	(list_icon_data_func): Handle the path being NULL.
	(new_folder_button_clicked): New callback.
	(list_name_data_func): If we are on the editable row, set the text
	to "Type name of new folder".
	(list_selection_changed): Handle the editable row.
	(list_mtime_data_func): Likewise.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_make_path): Return
	NULL, not FALSE.
	(gtk_file_system_unix_create_folder): Test the result of mkdir() correctly.
2004-01-17 04:34:49 +00:00
Federico Mena Quintero
f2f12b9aae New get_volume_for_path() method. (struct _GtkFileSystemIface): Finally
2004-01-16  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystem.h (struct _GtkFileSystemIface): New
	get_volume_for_path() method.
	(struct _GtkFileSystemIface): Finally removed the list_roots() and
	get_root_info() methods, and the "roots-changed" signal.

	* gtk/gtkfilesystem.c (gtk_file_system_get_volume_for_path): New
	function.
	(gtk_file_system_list_roots): Removed.
	(gtk_file_system_get_root_info): Removed.

	* gtk/gtkfilesystemunix.c
	(gtk_file_system_unix_get_volume_for_path): Implement.
	(get_root_volume): New helper function.
	(gtk_file_system_unix_list_volumes): Use get_root_volume().
	(gtk_file_system_unix_list_roots): Removed.
	(gtk_file_system_unix_get_root_info): Removed.

	* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_new): Don't
	accept a NULL root_path.
	(struct _GtkFileSystemModel): Add a field to remember the
	root_path.
	(_gtk_file_system_model_new): Store the root_path in the model
	structure.
	(find_and_ref_path): Stop going up the hierarchy at the root_path
	of the model.  Also, don't return prematurely when walking up the
	hierarchy.

	* gtk/gtkfilechooserdefault.c (create_file_list): Sigh, restore
	the rules_hint.
	(struct _GtkFileChooserDefault): Added a current_volume_path field.
	(set_tree_model): New function; create the folder tree model here.
	(create_folder_tree): Don't create the model here.
	(set_list_model): Set the show_hidden flag on the list model.
2004-01-16 03:35:33 +00:00
Matthias Clasen
6f9b92150f Don't use freed memory. (#127698, Taavi Talvik)
Fri Nov 28 00:26:24 2003  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkfilesystemmodel.c (gtk_file_system_model_finalize):
	Don't use freed memory.  (#127698, Taavi Talvik)
2003-11-27 23:27:40 +00:00
Federico Mena Quintero
3dbad630ac Add a stock icon to the "Add bookmark" button.
2003-11-03  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (create_shortcuts_tree): Add a stock
	icon to the "Add bookmark" button.

	* gtk/gtkfilesystemunix.c: Mark missing strings for translation.
	* gtk/gtkfilesystemmodel.c: Likewise.
	* gtk/gtkfilechooser.c: Likewise.
	* gtk/gtkfilechooserdefault.c: Likewise.

Mon Nov  3 20:56:28 2003  Matthias Clasen  <maclas@gmx.de>
2003-11-03 20:24:04 +00:00
Owen Taylor
b3bae3b40a gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]: Basic framework
Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch]
        gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
        gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
        Basic framework for the new file selector widget.

        * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch]
        gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
        Initial implementation of the GtkFileChooser user interface.

        * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
        for Unix files.

        * configure.in gtk/Makefile.am gtk/xdgmime: Build code
        for freedesktop.org MIME system on Unix.

        * tests/testfilechooser.c: Test program for GtkFileChooser

        * tests/prop-editor.c: Add support for properties on interfaces.
2003-10-23 04:22:32 +00:00
Federico Mena Quintero
613b441b5b Free the display_key.
2003-09-08  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilesystem.c (gtk_file_info_free): Free the display_key.

	* gtkfilechooserimpldefault.c (list_mtime_data_func): New
	function.
	(create_file_list): Add a modification time column; remove the
	size column.
	(mtime_sort_func): New callback.
	(tree_selection_changed): Add a sorting function for the mtime
	column.  Have the model fetch the modification time as well.
	(tree_selection_changed): Do allow the file list model to show
	directories.

	* testfilechooser.c (my_new_from_file_at_size): Do not try to read
	non-regular files.
2003-09-09 15:18:29 +00:00
Owen Taylor
3264c0b679 Return parent path for dummy paths.
Wed Jul 23 18:43:20 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilesystemmodel.c (_gtk_file_system_model_get_path):
        Return parent path for dummy paths.
2003-07-23 22:45:01 +00:00
Owen Taylor
733f4489ad File filter objects.
Wed Jul 23 11:23:43 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilefilter.[ch]: File filter objects.

        * gtkfilechooser.[ch] gtkfilechooserutils.[ch]: Add
        file filtering to API.

        * gtkfilechooserimpldefault.c: Implement file filters.

        * testfilechooser.c: Try out the filter functionality.

        * gtkfilesystemmodel.c: Add
        _gtk_file_system_model_set_filter() to set a callback
        function for filtering.

        * gtkfilechooserutils.c: Propagate property notification
        to the receiver.

        * fnmatch.c: Copy this from GTK+ temporarily to get
        UTF-8 pattern matching functionality.
2003-07-23 15:31:10 +00:00
Owen Taylor
7f8ae32c1d Add gtk_file_chooser_set_current_name() to set the current entry contents.
Fri Jul 11 14:37:07 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilechooser.[ch] gtkfilechooserprivate.h
        gtkfilechooserimpldefault.c: Add
        gtk_file_chooser_set_current_name() to set the current
        entry contents.

        * *.c: Consistently use '-' not '_' in property names and
        signal names.

        * gtkfilechooser.c: Document all exported functions.
2003-07-11 19:18:36 +00:00
Owen Taylor
af6bc44d86 - Disconnect signal connections when appropriate. - Listen to
Wed Apr  9 12:28:04 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilesystemmodel.c:
        - Disconnect signal connections when appropriate.
        - Listen to ::roots-changed on the file system
        - When the last reference count on a child is
          removed, queue an idle to unload the parent.

        * gtkfilesystemgnomevfs.c
        - When URI's outside of file:/// are acessed,
          add toplevel URI's to the list of roots.
        - Improve display name computations

        * gtkfilechooserentry.c: Don't complete on empty
        file parts; free stored folder when base directory
        changes.

        * gtkfilechooser.c: Fill in some docs.
2003-04-09 16:52:13 +00:00
Owen Taylor
bc3fb55c1b Move interface definition into a private header so it can refer to
Fri Apr  4 17:30:27 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilechooserprivate.h gtkfilechooser.h: Move
        interface definition into a private header so it
        can refer to GtkFileSystem.

        * *.[ch]: Switch over from using gchar *uri internally
        to using GtkFilePath * internally, and add
        conversion routines to GtkFileSystem.

        * TODO README: Updates.
2003-04-04 22:43:12 +00:00
Owen Taylor
b4c81288e4 Finish monitoring, add a TODO, fill in details in README, fix some missing finalization chainups 2003-03-27 00:10:25 +00:00
Owen Taylor
5ef90224aa - Add GnomeVFS backend
- Add gtk_file_info_get_display_key()
- Start switching from file_added => files_added
- Switch over to Nautilus-like Loading.../Empty
2003-03-26 16:24:35 +00:00
Owen Taylor
74cb697ef3 Make incrememtal searching work, some bug fixes 2003-03-24 15:41:40 +00:00
Owen Taylor
fe1c0a8bfd Add sorting, a size column.
Try making the tree view on the left auto-expand/collapse when
  the selection changes.
Some bug fixes.
2003-03-21 23:59:22 +00:00
Owen Taylor
d9748614f1 Add some documentation comments, fix some missing statics 2003-03-21 21:26:38 +00:00
Owen Taylor
e3849905a9 Initial revision 2003-03-21 20:34:02 +00:00