indexing
	description: "Filename handlers. Use the Unix/Windows filename conventions"
	library: "Gobo Eiffel Utility Library"
	author: "Eric Bezault <ericb@gobo.demon.co.uk>"
	copyright: "Copyright (c) 1997, Eric Bezault"

class interface
	UT_FILENAME_HANDLER

create 

	make
		ensure
			directory_separators_set: equal (directory_separators, "/\")

feature -- Access

	directory_separators: STRING
			-- Directory separators

	pathname (a_dirname, a_filename: STRING): STRING
			-- Pathname made up of a_dirname and a_filename
			-- and separated by the first directory separator
		require
			a_dirname_not_void: a_dirname /= void;
			a_filename_not_void: a_filename /= void
		ensure
			pathname_not_void: Result /= void

	string_: KL_STRING_ROUTINES
			-- Routines that ought to be in class STRING
			-- (from KL_IMPORTED_STRING_ROUTINES)
		ensure -- from KL_IMPORTED_STRING_ROUTINES
			string_routines_not_void: Result /= void
	
feature -- Setting

	set_directory_separators (separators: STRING)
			-- Set directory_separators to separators.
		require
			separators_not_void: separators /= void;
			separators_not_empty: not separators.empty
		ensure
			directory_separators_set: directory_separators = separators
	
invariant

		-- from GENERAL
	reflexive_equality: standard_is_equal (Current);
	reflexive_conformance: conforms_to (Current);
	directory_separators_not_void: directory_separators /= void;
	directory_separators_not_empty: not directory_separators.empty;

end -- class UT_FILENAME_HANDLER