1 /* This file is part of NIT ( http://www.nitlanguage.org ).
3 * Copyright 2004-2008 Jean Privat <jean@pryen.org>
4 * Copyright 2008 Floréal Morandat <morandat@lirmm.fr>
5 * Copyright 2008 Jean-Sébastien Gélinas <calestar@gmail.com>
7 * This file is free software, which comes along with NIT. This software is
8 * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
9 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10 * PARTICULAR PURPOSE. You can modify it is you want, provided this header
11 * is kept unaltered, and a notification of the changes is added.
12 * You are allowed to redistribute it and sell it, alone or is a part of
20 #include <sys/types.h>
29 C implementation of file::String::files
31 Imported methods signatures:
32 HashSet new_HashSet( ) for hash_collection::HashSet::init
33 void HashSet_add( HashSet recv, Object item ) for hash_collection::HashSet::(abstract_collection::SimpleCollection::add)
34 String NativeString_to_s() for string::NativeString::to_s
35 int HashSet_is_a_Set( HashSet value ) to check if a HashSet[String] is a Set[String]
36 Set HashSet_as_Set( HashSet value ) to cast from HashSet[String] to Set[String]
38 Set
String_files___impl( String recv
)
43 dir_path
= String_to_cstring( recv
);
44 if ((dir
= opendir(dir_path
)) == NULL
)
55 results
= new_HashSet();
57 while ( ( de
= readdir( dir
) ) != NULL
)
58 if ( strcmp( de
->d_name
, ".." ) != 0 &&
59 strcmp( de
->d_name
, "." ) != 0 )
61 file_name
= NativeString_to_s( strdup( de
->d_name
) );
62 HashSet_add( results
, String_as_Object( file_name
) );
66 return HashSet_as_Set( results
);
71 int string_NativeString_NativeString_file_exists_0(char *f
){
72 FILE *hdl
= fopen(f
,"r");
79 void *to_nit_file_stat(struct stat
* st
){
80 struct stat
* stat_element
;
81 stat_element
= malloc(sizeof(struct stat
));
82 return memcpy(stat_element
, st
, sizeof(struct stat
));
85 void *string_NativeString_NativeString_file_stat_0(char *f
){
87 if(stat(f
, &buff
) != -1)
88 return to_nit_file_stat(&buff
);
92 void *file_NativeFile_NativeFile_file_stat_0(FILE *f
){
94 if(fstat(fileno(f
), &buff
) != -1)
95 return to_nit_file_stat(&buff
);
99 extern int string_NativeString_NativeString_file_delete_0(char *f
){
100 return (remove(f
) == 0);
103 int file_stdin_poll_in_(void) {
104 struct pollfd fd
= {0, POLLIN
, 0};
105 int res
= poll(&fd
, 1, 0);
107 perror("Error poll stdin");