/[eiffelstudio]/branches/eth/eve/Src/library/base/elks/kernel/directory.e
ViewVC logotype

Log of /branches/eth/eve/Src/library/base/elks/kernel/directory.e

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Revision:

Revision 92964 - (view) (annotate) - [select for diffs]
Modified Fri Sep 20 05:41:23 2013 UTC (6 years ago) by jasonw
File length: 20740 byte(s)
Diff to previous 92328
<<Merged from trunk#92963.>>

Revision 92328 - (view) (annotate) - [select for diffs]
Modified Fri Mar 22 11:46:02 2013 UTC (6 years, 6 months ago) by jasonw
File length: 20755 byte(s)
Copied from: trunk/Src/library/base/elks/kernel/directory.e revision 92327
Diff to previous 92189
<<Merged from trunk#92327.>>

Revision 92189 - (view) (annotate) - [select for diffs]
Modified Wed Mar 20 06:15:29 2013 UTC (6 years, 7 months ago) by manus
Original Path: trunk/Src/library/base/elks/kernel/directory.e
File length: 20755 byte(s)
Diff to previous 92158
Move void-safe FreeELKS inside EiffelBase

Revision 92158 - (view) (annotate) - [select for diffs]
Modified Thu Jan 31 23:49:53 2013 UTC (6 years, 8 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20755 byte(s)
Diff to previous 92151
Updated PATH to
- normalize path when they come from the outside. Normalization removes double directory separator.
- clarify what is a root
- provide better contracts for `extended', `extended_path', `appended' and `append_with_extension'.
- simplified implementation for looking up content of `storage'
- rmproved efficiency of `components'
- removed `is_representable' since `name' can represent any type of wrongly encoded paths.
See review#9272053.
Updated `{DIRECTORY}.recursive_create_dir' so that it benefits from the new improvements of PATH so that it can always create an absolute path if permissions allows it (be it a path like C:foo or \\server\share\foo).


Revision 92151 - (view) (annotate) - [select for diffs]
Modified Sat Jan 26 06:41:02 2013 UTC (6 years, 8 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20627 byte(s)
Diff to previous 92150
Fixed typos.


Revision 92150 - (view) (annotate) - [select for diffs]
Modified Sat Jan 26 06:38:03 2013 UTC (6 years, 8 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20627 byte(s)
Diff to previous 92131
Fixed extra `a' in obsolete message for `name'.


Revision 92131 - (view) (annotate) - [select for diffs]
Modified Thu Jan 24 22:28:32 2013 UTC (6 years, 8 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20629 byte(s)
Diff to previous 92113
Cosmetics: removed unnecessary parenthesis.


Revision 92113 - (view) (annotate) - [select for diffs]
Modified Mon Jan 7 22:33:17 2013 UTC (6 years, 9 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20631 byte(s)
Diff to previous 92105
Removed implicit call to {READABLE_STRING_GENERAL}.as_string_32.


Revision 92105 - (view) (annotate) - [select for diffs]
Modified Fri Jan 4 05:16:24 2013 UTC (6 years, 9 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20568 byte(s)
Diff to previous 92096
Updated postcondition `rename_path' to match the implementation and compare strings and not a string instance with a path instance.


Revision 92096 - (view) (annotate) - [select for diffs]
Modified Thu Dec 27 02:57:50 2012 UTC (6 years, 9 months ago) by kkkkg999
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20563 byte(s)
Diff to previous 92061
* Support Unicode in exception objects.
* Removed obsolete `tag' in EXCEPTION. 
* Marked `message', `meaning' and `exception_trace' obsolete, instead introduced Unicode `description', `tag' and `trace' respectively.
* Now UTF-8 description is stored internally and used by ISE runtime.
* Updated clients to use new features.

review#9046064

Revision 92061 - (view) (annotate) - [select for diffs]
Modified Tue Dec 4 04:10:51 2012 UTC (6 years, 10 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20727 byte(s)
Diff to previous 92057
Added `rename_path' for consistency with `FILE'.
Removed the obsolete status of `linear_representation_32' which actually supports mixed encoding. Implementation relies on `{PATH}.name'.


Revision 92057 - (view) (annotate) - [select for diffs]
Modified Sat Dec 1 00:04:13 2012 UTC (6 years, 10 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20588 byte(s)
Diff to previous 92055
Reverted back to use FILE_INFO to check if a file is a symbolic link, we cannot do everything using FILE which by default follows links. This fix eweasel test#directory001 on Unix.
Fixed missing relaxation of precondition of `delete_content_with_action' from previous commit.


Revision 92055 - (view) (annotate) - [select for diffs]
Modified Fri Nov 30 23:17:02 2012 UTC (6 years, 10 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20531 byte(s)
Diff to previous 92053
Fixed precondition violation with the new implementation of `delete_content' which now calls `delete_content_with_action' with a value of `0' to indicate that nothing needs to be called. This fixes eweasel test#directory001.


Revision 92053 - (view) (annotate) - [select for diffs]
Modified Fri Nov 30 20:00:35 2012 UTC (6 years, 10 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20306 byte(s)
Diff to previous 92042
A carreful reviewed of the recent changes showed that we had removed some preconditions to some of the DIRECTORY routine. I've also uniformized the comments between the classic and the .NET Version.
Removed the usage of FILE_NAME_32 in `delete_content_with_action'.


Revision 92042 - (view) (annotate) - [select for diffs]
Modified Tue Nov 20 23:27:25 2012 UTC (6 years, 10 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20175 byte(s)
Diff to previous 92034
Introduced NATIVE_STRING which is a mix between C_STRING and WEL_STRING, that is to say that on Unix it represents a sequence of bytes and on Windows a wchar_t sequence. By default we assume UTF-8 on Unix and UTF-16 on Windows. If it was a valid incoding we use the escaping mechanism described in UTF_CONVERTER.
Renamed PATH_HANDLER into NATIVE_STRING_HANDLER and move a feature from FILE_INFO to there to compute the length of the native string.
Updated EXECUTION_ENVIRONMENT to use this new NATIVE_STRING and thus removed the need for having a EXECUTION_ENVIRONMENT_32 to access unicode strings. We kept `put' but allowed it to take STRING_32. We kept `get' as is, but introduced `item' to retrieve Unicode environment variables. Updated system and launch to also take unicode strings.
See review#8901024.


Revision 92034 - (view) (annotate) - [select for diffs]
Modified Sat Nov 17 06:24:20 2012 UTC (6 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20166 byte(s)
Diff to previous 92033
Simplified creation of recursive directory by using queries `parent' and `entry' from PATH.


Revision 92033 - (view) (annotate) - [select for diffs]
Modified Thu Nov 15 17:03:28 2012 UTC (6 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20843 byte(s)
Diff to previous 92029
* Updated PATH so that one can use a string representation that allows a mixed-encoded path to be used as a STRING_32 too. To make it clearer that it does roundtrip we have made `string_representation' obsolete and introduced `name'. To make this possible we have introduce a new way to represent badly encoded sequence into a STRING_32 representation without loosing the value of the bad sequence, it is using a new variant of the recommended practice of using the replacement character in Unicode (see http://www.unicode.org/review/pr-121.html).
* This new way to escape badly encoded sequence is made available to all in UTF_CONVERTER.
* Added `appended' to allow an easy way to add to a filename (i.e. taking an existing filename and append a new extension such as .bak)
See review#8836014.


Revision 92029 - (view) (annotate) - [select for diffs]
Modified Thu Nov 8 19:41:46 2012 UTC (6 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20860 byte(s)
Diff to previous 92027
Use `path' instead of `entry' to not confuse it with the notion of directory entry.


Revision 92027 - (view) (annotate) - [select for diffs]
Modified Tue Nov 6 07:57:44 2012 UTC (6 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 20862 byte(s)
Diff to previous 92023
* New PATH class that provided a platform specific representation of a file path. Users are encouraged to use PATH instances to get and manipulate paths because not all paths can be represented by a STRING_8 or a STRING_32 instance. To make it easy to manipulate PATH, we made PATH immutable with the exception of some born-obsolete features that could help users to migrate away from the existing PATH_NAME classes.
* Added features in FILE/DIRECTORY to get the associated PATH instance.
* Updated EXECUTION_ENVIRONMENT queries returning a path as STRING_8 to also have a version returning a PATH instance and made the former ones obsoletes.
* Added feature to UTF_CONVERTER to support new PATH implementation.
* Moved implementation of FILE_COMPARER to PATH.
See review#8689065.


Revision 92023 - (view) (annotate) - [select for diffs]
Modified Tue Oct 30 18:25:59 2012 UTC (6 years, 11 months ago) by jfiat
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 19961 byte(s)
Diff to previous 92016
Added a temporary version of PATH (the final version will handle unicode)
Added make various make_from_path and make_with_path to ease migration to upcoming PATH 

review#8711034

Revision 92016 - (view) (annotate) - [select for diffs]
Modified Tue Oct 30 00:19:53 2012 UTC (6 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 19722 byte(s)
Diff to previous 91993
Allowed FILE classes as well as DIRECTORY to accept Unicode characters:
* It meant changing signature of most routines to accept READABLE_STRING_GENERAL. To not break code only 2 routines in FILE did not change their signature and are now obsolete: make and change_name.
* To not break backward compatibility where STRING_8 where actually understood as a byte sequence, whenever you create a FILE/DIRECTORY using a STRING_8, we use the old implementation, otherwise we use UTF-8 encoding for UNIX and UTF-16 encoding on Windows.
* To make the above point possible is to avoid a lot of conversions, we actually store the name as a MANAGED_POINTER within the FILE/DIRECTORY/FILE_INFO instance.

Renamed UNIX_FILE_INFO as FILE_INFO as there is nothing really specific about UNIX anymore, but kept the UNIX_FILE_INFO to not break existing code.

Those changes had an impact on the runtime implementation of many C externals:
- EIF_FILENAME is now the type of paths at the C level: wchar_t * on Windows and char * on UNIX.
- All external routines have been prefixed with `eif_' to avoid conflicts at the C level.

To make this commit work on your implementation, make sure to update the compiler/runtime implementation too.


Revision 91993 - (view) (annotate) - [select for diffs]
Modified Fri Sep 21 12:18:53 2012 UTC (7 years ago) by kwaxer
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 16118 byte(s)
Diff to previous 91981
Changed the argument type of an agent to make sure the actual agents have correct signature (see review#8059322).

Revision 91981 - (view) (annotate) - [select for diffs]
Modified Thu May 24 04:13:10 2012 UTC (7 years, 4 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 16066 byte(s)
Diff to previous 91927
Updated copyright year for all classes.
Cosmetics: ensured a consistent note clause and `end' class keyword without comment.


Revision 91927 - (view) (annotate) - [select for diffs]
Modified Wed Apr 13 07:39:02 2011 UTC (8 years, 6 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 15745 byte(s)
Diff to previous 91831
* Changed UNIX_FILE_INFO to not raise an error in `update' when the file does not exist. Now we have added a precondition `exists' to the various queries to reflect that. 
* Added the ability to perform queries on the symbolic link itself in UNIX_FILE_INFO by setting or not `is_following_symlinks'.
* Changed PATH_NAME to reuse inherited routine `make_empty' and `make_from_string' as creation procedure since they are slightly more efficient.
* Added {PATH_NAME}.reset to start a new path name without having to create a new instance.
* Improved deletion of content in DIRECTORY by avoiding creation of objects and only performing one `update' query per file.
* Fixed {FILE}.is_symlink so that it returns true when the pointed file is a symbolic link.
* Improved {FILE}.reset to avoid checking for voidness status of `last_string' which is always attached.


Revision 91831 - (view) (annotate) - [select for diffs]
Modified Mon Dec 28 21:13:36 2009 UTC (9 years, 9 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 13880 byte(s)
Diff to previous 91795
Use `same_string' to compare directory path as this is what we care about, not about the type.


Revision 91795 - (view) (annotate) - [select for diffs]
Modified Thu Aug 27 21:03:55 2009 UTC (10 years, 1 month ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 13849 byte(s)
Diff to previous 91726
Added `recursive_create_dir' that will work on Unix and Windows only. 


Revision 91726 - (view) (annotate) - [select for diffs]
Modified Thu Jun 4 16:47:27 2009 UTC (10 years, 4 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 11628 byte(s)
Diff to previous 91723
Removed creation of TUPLE object and instead use a manifest TUPLE for the agent call. This is needed
  as soon there is the possibility that no creation procedure will be offered for TUPLE because of the
  void-safety mechanism.


Revision 91723 - (view) (annotate) - [select for diffs]
Modified Wed Jun 3 23:59:39 2009 UTC (10 years, 4 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/void_safe/library/kernel/directory.e
File length: 11818 byte(s)
Diff to previous 91703
Added a void_safe version of FreeELKS where SPECIAL is trully void-safe. The remaining issues are with
  copy semantics and TUPLE creation that could result in a call on void target at runtime without
  the compiler detecting it at compiler time.


Revision 91703 - (view) (annotate) - [select for diffs]
Modified Sun Mar 15 16:53:42 2009 UTC (10 years, 7 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11818 byte(s)
Diff to previous 91676
Use syntax_updater tool to update  to the new syntax of object test, and attached/detachable types.


Revision 91676 - (view) (annotate) - [select for diffs]
Modified Mon Dec 29 19:36:38 2008 UTC (10 years, 9 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11778 byte(s)
Diff to previous 91671
Removal of `is' keyword.
Replacement of `is' by `=' for constant definitions.
Replaced `indexing' by `note'.


Revision 91671 - (view) (annotate) - [select for diffs]
Modified Wed Dec 17 07:26:23 2008 UTC (10 years, 10 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11887 byte(s)
Diff to previous 91651
Use ~ instead of is_equal and equal to avoid catcalls at runtime.
Enforced postcondition of `is_equal' to hold `other ~ Current' when result is true, that is to say
  that `is_equal' can only return True if both objects have the exact same type. This could be a breaking
  change.


Revision 91651 - (view) (annotate) - [select for diffs]
Modified Tue Nov 11 19:14:12 2008 UTC (10 years, 11 months ago) by kwaxer
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11943 byte(s)
Diff to previous 91640
Changed `make_from_string' so that it is void-safe and can be used as a creation procedure in a void-safe mode.

Revision 91640 - (view) (annotate) - [select for diffs]
Modified Thu Nov 6 13:31:11 2008 UTC (10 years, 11 months ago) by kwaxer
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11955 byte(s)
Diff to previous 91604
Used new creation procedures for string objects.

Revision 91604 - (view) (annotate) - [select for diffs]
Modified Wed Jul 23 21:36:22 2008 UTC (11 years, 2 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11943 byte(s)
Diff to previous 91603
Reverted back to former revision because most of the API does not work for symbolic links.


Revision 91603 - (view) (annotate) - [select for diffs]
Modified Wed Jul 23 21:16:16 2008 UTC (11 years, 2 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11995 byte(s)
Diff to previous 91592
Fixed an issue reported in bug#14468 where we would fail to delete a directory if one of its file
  is a symbolic link to a file/location that does not exist anymore. In such a case, we can still
  delete the file.


Revision 91592 - (view) (annotate) - [select for diffs]
Modified Sat May 24 00:24:07 2008 UTC (11 years, 4 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11943 byte(s)
Diff to previous 91538
Merged the changes made to the EiffelSoftware branch to trunk.


Revision 91538 - (view) (annotate) - [select for diffs]
Modified Wed Oct 31 05:38:13 2007 UTC (11 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11869 byte(s)
Diff to previous 91477
Removed insufficiently export status of features inherited from ANY.


Revision 91477 - (view) (annotate) - [select for diffs]
Modified Sun Jan 14 09:47:13 2007 UTC (12 years, 9 months ago) by ericb
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11903 byte(s)
Diff to previous 91472
Synchronized with ISE 6.0.65740

Revision 91472 - (view) (annotate) - [select for diffs]
Modified Sun Feb 26 10:40:37 2006 UTC (13 years, 7 months ago) by ericb
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11947 byte(s)
Diff to previous 91470
Removed unique features.
`directory_pointer' is freed in the C code of `file_close'. Reset it to null.


Revision 91470 - (view) (annotate) - [select for diffs]
Modified Tue Feb 21 21:47:09 2006 UTC (13 years, 7 months ago) by ericb
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11917 byte(s)
Diff to previous 91453
Removed possible CAT-calls


Revision 91453 - (view) (annotate) - [select for diffs]
Modified Sat Feb 4 16:55:16 2006 UTC (13 years, 8 months ago) by ericb
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 11911 byte(s)
Diff to previous 91438
Implemented `has_entry' in pure Eiffel.


Revision 91438 - (view) (annotate) - [select for diffs]
Modified Thu Oct 28 22:23:37 2004 UTC (14 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 12152 byte(s)
Diff to previous 91434
Removed comments after `end' keyword.


Revision 91434 - (view) (annotate) - [select for diffs]
Modified Wed Oct 27 19:58:22 2004 UTC (14 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 12171 byte(s)
Diff to previous 91424
Updated indexing clause to match Eiffel Forum license and the copyright.


Revision 91424 - (view) (annotate) - [select for diffs]
Added Tue Oct 26 18:39:32 2004 UTC (14 years, 11 months ago) by manus_eiffel
Original Path: FreeELKS/trunk/library/kernel/directory.e
File length: 12940 byte(s)
Initial revision


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC 1.1.23