summaryrefslogtreecommitdiff
path: root/gtk/gtkfilesystemmodel.c
Commit message (Collapse)AuthorAgeFilesLines
* Add hidden aliases for exported symbols which are used internally in orderMatthias Clasen2004-08-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de> Add hidden aliases for exported symbols which are used internally in order to get rid of many PLT entries. (#145519, Arjan van de Ven) * gtk/Makefile.am: Add rules to generate gtk.def and from gtk.symbols, and make make check check the abi with abicheck.sh. (gtk_private_h_sources): Add gtkinternals.h (gtk_built_private_headers): Add gtkalias.h (gtk_extra_sources): Add gtk.symbols (EXTRA_DIST): Add makegtkalias.pl and abicheck.sh * gtk/gtk.symbols: New file. Definition of the GTK+ ABI. The file can be processed by cpp to filter out certain subsets of symbols. * gtk/abicheck.sh: New file. Script to check the actually symbols exported from libgtk-x11.2.0.so against the symbols found in gtk.symbols. * gtk/makegtkalias.pl: New file. Perl script to generate the header containing the alias definitions for internally used exported symbols from a list of symbols. * gtk/gtkinternals.h: New file. An uninstalled header listing symbols which must be exported for some reason and do not appear in any other header. * gtk/*.c: Include gtkalias.h
* Fix #139290:Federico Mena Quintero2004-07-091-155/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* When inserting a visible node, free the old path before creating the newFederico Mena Quintero2004-06-161-0/+1
| | | | | | | | 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.
* Fixes #143578:Federico Mena Quintero2004-06-121-3/+3
| | | | | | | | | | | | | | | | | | 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.
* Don't insert a dummy node if there is no parent node. Fixes #143362.Federico Mena Quintero2004-06-011-1/+1
| | | | | | | 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.
* Fix #136077.Federico Mena Quintero2004-04-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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".
* Fix #137520.Federico Mena Quintero2004-03-291-6/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Revert the patch to #137520, as 2.4.1 is for conservative bug fixes only.Federico Mena Quintero2004-03-191-73/+6
| | | | | | | | | | | | 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
* Fix #137520.Federico Mena Quintero2004-03-191-6/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* If max_depth is 0 then we have a list.Anders Carlsson2004-03-081-1/+1
| | | | | | | 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.
* set redraw_on_allocate, #135902.Jonathan Blandford2004-03-071-2/+1
| | | | | | | | | | | 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.
* Fixes #136082 and #135265, patch by Morten Welinder.Federico Mena Quintero2004-03-061-0/+1
| | | | | | | | | | 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>
* Simplify semantics and check for errors.Morten Welinder2004-03-011-10/+18
| | | | | | | | | | | | 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.
* Renamed from create_shortcuts_model(). (struct _GtkFileChooserDefault):Federico Mena Quintero2004-02-251-2/+83
| | | | | | | | | | | | | | | | | | 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.
* Add chains to the parent's ::finalize() handler (#134901, Morten Welinder,Matthias Clasen2004-02-221-1/+7
| | | | | | | | | | | | | | | | | | | | 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)
* Free the path fields.Federico Mena Quintero2004-01-221-0/+6
| | | | | | | | | | | | | | | | | 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.
* Added a has_editable field. (_gtk_file_system_model_add_editable): NewFederico Mena Quintero2004-01-171-5/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* New get_volume_for_path() method. (struct _GtkFileSystemIface): FinallyFederico Mena Quintero2004-01-161-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Don't use freed memory. (#127698, Taavi Talvik)Matthias Clasen2003-11-271-2/+3
| | | | | | | 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)
* Add a stock icon to the "Add bookmark" button.Federico Mena Quintero2003-11-031-1/+2
| | | | | | | | | | | | | | 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>
* gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]: Basic frameworkOwen Taylor2003-10-231-2/+3
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Free the display_key.Federico Mena Quintero2003-09-091-1/+1
| | | | | | | | | | | | | | | | | | | 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.
* Return parent path for dummy paths.Owen Taylor2003-07-231-1/+4
| | | | | | | 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.
* File filter objects.Owen Taylor2003-07-231-19/+43
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Add gtk_file_chooser_set_current_name() to set the current entry contents.Owen Taylor2003-07-111-7/+7
| | | | | | | | | | | | | | 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.
* - Disconnect signal connections when appropriate. - Listen toOwen Taylor2003-04-091-44/+240
| | | | | | | | | | | | | | | | | | | | | 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.
* Move interface definition into a private header so it can refer toOwen Taylor2003-04-041-115/+113
| | | | | | | | | | | | | | 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.
* Finish monitoring, add a TODO, fill in details in README, fix some missing ↵Owen Taylor2003-03-271-60/+234
| | | | finalization chainups
* - Add GnomeVFS backendOwen Taylor2003-03-261-126/+286
| | | | | | - Add gtk_file_info_get_display_key() - Start switching from file_added => files_added - Switch over to Nautilus-like Loading.../Empty
* Make incrememtal searching work, some bug fixesOwen Taylor2003-03-241-2/+13
|
* Add sorting, a size column.Owen Taylor2003-03-211-0/+4
| | | | | | Try making the tree view on the left auto-expand/collapse when the selection changes. Some bug fixes.
* Add some documentation comments, fix some missing staticsOwen Taylor2003-03-211-10/+112
|
* Initial revisionOwen Taylor2003-03-211-0/+1040