remove directory from the vm
parent
4af3543fcd
commit
78a529b1c3
|
@ -396,8 +396,6 @@ do-primitive alien-invoke alien-indirect alien-callback
|
|||
|
||||
\ (exists?) { string } { object } define-primitive
|
||||
|
||||
\ (directory) { string } { array } define-primitive
|
||||
|
||||
\ gc { } { } define-primitive
|
||||
|
||||
\ gc-stats { } { array } define-primitive
|
||||
|
|
|
@ -14,8 +14,7 @@ IN: tools.vocabs
|
|||
: vocab-tests-dir ( vocab -- paths )
|
||||
dup vocab-dir "tests" append-path vocab-append-path dup [
|
||||
dup exists? [
|
||||
dup directory keys
|
||||
[ ".factor" tail? ] filter
|
||||
dup directory-files [ ".factor" tail? ] filter
|
||||
[ append-path ] with map
|
||||
] [ drop f ] if
|
||||
] [ drop f ] if ;
|
||||
|
@ -208,7 +207,9 @@ M: vocab-link summary vocab-summary ;
|
|||
dup vocab-authors-path set-vocab-file-contents ;
|
||||
|
||||
: subdirs ( dir -- dirs )
|
||||
directory [ second ] filter keys natural-sort ;
|
||||
[
|
||||
[ link-info directory? ] filter
|
||||
] with-directory-files natural-sort ;
|
||||
|
||||
: (all-child-vocabs) ( root name -- vocabs )
|
||||
[ vocab-dir append-path subdirs ] keep
|
||||
|
|
|
@ -434,7 +434,6 @@ tuple
|
|||
{ "getenv" "kernel.private" }
|
||||
{ "setenv" "kernel.private" }
|
||||
{ "(exists?)" "io.files.private" }
|
||||
{ "(directory)" "io.files.private" }
|
||||
{ "gc" "memory" }
|
||||
{ "gc-stats" "memory" }
|
||||
{ "save-image" "memory" }
|
||||
|
|
38
vm/os-unix.c
38
vm/os-unix.c
|
@ -61,44 +61,6 @@ DEFINE_PRIMITIVE(existsp)
|
|||
box_boolean(stat(unbox_char_string(),&sb) >= 0);
|
||||
}
|
||||
|
||||
/* Allocates memory */
|
||||
CELL parse_dir_entry(struct dirent *file)
|
||||
{
|
||||
CELL name = tag_object(from_char_string(file->d_name));
|
||||
if(UNKNOWN_TYPE_P(file))
|
||||
return name;
|
||||
else
|
||||
{
|
||||
CELL dirp = tag_boolean(DIRECTORY_P(file));
|
||||
return allot_array_2(name,dirp);
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_PRIMITIVE(read_dir)
|
||||
{
|
||||
DIR* dir = opendir(unbox_char_string());
|
||||
GROWABLE_ARRAY(result);
|
||||
REGISTER_ROOT(result);
|
||||
|
||||
if(dir != NULL)
|
||||
{
|
||||
struct dirent* file;
|
||||
|
||||
while((file = readdir(dir)) != NULL)
|
||||
{
|
||||
CELL pair = parse_dir_entry(file);
|
||||
GROWABLE_ARRAY_ADD(result,pair);
|
||||
}
|
||||
|
||||
closedir(dir);
|
||||
}
|
||||
|
||||
UNREGISTER_ROOT(result);
|
||||
GROWABLE_ARRAY_TRIM(result);
|
||||
|
||||
dpush(result);
|
||||
}
|
||||
|
||||
F_SEGMENT *alloc_segment(CELL size)
|
||||
{
|
||||
int pagesize = getpagesize();
|
||||
|
|
|
@ -87,21 +87,6 @@ const F_CHAR *vm_executable_path(void)
|
|||
return safe_strdup(full_path);
|
||||
}
|
||||
|
||||
void find_file_stat(F_CHAR *path)
|
||||
{
|
||||
// FindFirstFile is the only call that can stat c:\pagefile.sys
|
||||
WIN32_FIND_DATA st;
|
||||
HANDLE h;
|
||||
|
||||
if(INVALID_HANDLE_VALUE == (h = FindFirstFile(path, &st)))
|
||||
dpush(F);
|
||||
else
|
||||
{
|
||||
FindClose(h);
|
||||
dpush(T);
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_PRIMITIVE(existsp)
|
||||
{
|
||||
BY_HANDLE_FILE_INFORMATION bhfi;
|
||||
|
@ -136,34 +121,6 @@ DEFINE_PRIMITIVE(existsp)
|
|||
CloseHandle(h);
|
||||
}
|
||||
|
||||
DEFINE_PRIMITIVE(read_dir)
|
||||
{
|
||||
HANDLE dir;
|
||||
WIN32_FIND_DATA find_data;
|
||||
F_CHAR *path = unbox_u16_string();
|
||||
|
||||
GROWABLE_ARRAY(result);
|
||||
REGISTER_ROOT(result);
|
||||
|
||||
if(INVALID_HANDLE_VALUE != (dir = FindFirstFile(path, &find_data)))
|
||||
{
|
||||
do
|
||||
{
|
||||
CELL name = tag_object(from_u16_string(find_data.cFileName));
|
||||
CELL dirp = tag_boolean(find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
|
||||
CELL pair = allot_array_2(name,dirp);
|
||||
GROWABLE_ARRAY_ADD(result,pair);
|
||||
}
|
||||
while (FindNextFile(dir, &find_data));
|
||||
FindClose(dir);
|
||||
}
|
||||
|
||||
UNREGISTER_ROOT(result);
|
||||
GROWABLE_ARRAY_TRIM(result);
|
||||
|
||||
dpush(result);
|
||||
}
|
||||
|
||||
F_SEGMENT *alloc_segment(CELL size)
|
||||
{
|
||||
char *mem;
|
||||
|
|
|
@ -57,7 +57,6 @@ void *primitives[] = {
|
|||
primitive_getenv,
|
||||
primitive_setenv,
|
||||
primitive_existsp,
|
||||
primitive_read_dir,
|
||||
primitive_gc,
|
||||
primitive_gc_stats,
|
||||
primitive_save_image,
|
||||
|
|
Loading…
Reference in New Issue