/* -*-C-*-
-$Id: dosfs.c,v 1.3 1992/09/15 20:35:55 jinx Exp $
+$Id: dosfs.c,v 1.4 1992/10/21 00:27:11 jinx Exp $
Copyright (c) 1992 Massachusetts Institute of Technology
{
STD_VOID_SYSTEM_CALL (syscall_unlink, (DOS_unlink (name)));
}
-
+\f
void
DEFUN (OS_file_remove_link, (name), CONST char * name)
{
error_unimplemented_primitive ();
/*NOTREACHED*/
}
-\f
+
void
DEFUN (OS_file_rename, (from_name, to_name),
CONST char * from_name AND
}
\f
/* This is such that directory open does not return the first file */
+
typedef struct DIR_struct
-{ struct FIND *entry;
+{
+ struct FIND *entry;
char pathname[13];
} DIR;
-#define Get_Directory_Entry_Name(entry, pathname) \
- (strcpy(pathname, (entry)->name), strlwr(pathname))
-
-int OS_directory_index;
+#define GET_DIRECTORY_ENTRY_NAME(entry, pathname) \
+ (strcpy (pathname, ((entry)->name)), strlwr (pathname))
static DIR ** directory_pointers;
static unsigned int n_directory_pointers;
{
directory_pointers = 0;
n_directory_pointers = 0;
- OS_directory_index = (-1);
+ return;
}
static unsigned int
{
char filename[128], searchname[128];
struct FIND *entry;
- DIR * pointer = malloc(sizeof(DIR));
+ DIR * pointer = malloc (sizeof(DIR));
if (pointer == 0)
error_system_call (ENOMEM, syscall_malloc);
if (dos_pathname_as_filename (name, filename))
- sprintf(searchname, "%s*.*", filename);
+ sprintf (searchname, "%s*.*", filename);
else
- sprintf(searchname, "%s\\*.*", filename);
+ sprintf (searchname, "%s\\*.*", filename);
if ((entry = findfirst(searchname, FA_DIREC)) == 0)
error_system_call (errno, syscall_opendir);
CONST char *
DEFUN (OS_directory_read, (index), unsigned int index)
-{ DIR * pointer = REFERENCE_DIRECTORY (index);
+{
+ DIR * pointer = REFERENCE_DIRECTORY (index);
if (pointer->entry == 0)
return 0;
- Get_Directory_Entry_Name(pointer->entry, pointer->pathname);
- pointer->entry = findnext();
+ GET_DIRECTORY_ENTRY_NAME (pointer->entry, pointer->pathname);
+ pointer->entry = findnext ();
return (pointer -> pathname);
}
DEFUN (OS_directory_close, (index), unsigned int index)
{ DIR * pointer = REFERENCE_DIRECTORY (index);
- free(pointer);
+ free (pointer);
DEALLOCATE_DIRECTORY (index);
}
\f
/* -*-C-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/osfs.h,v 1.5 1992/07/06 23:42:03 jinx Exp $
+$Id: osfs.h,v 1.6 1992/10/21 00:27:00 jinx Exp $
Copyright (c) 1990-1992 Massachusetts Institute of Technology
extern CONST char * EXFUN (OS_directory_read, (unsigned int index));
extern CONST char * EXFUN
(OS_directory_read_matching, (unsigned int index, CONST char * prefix));
-extern int OS_directory_index;
#endif /* SCM_OSFS_H */
/* -*-C-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosfs.c,v 1.10 1992/07/07 00:26:17 jinx Exp $
+$Id: prosfs.c,v 1.11 1992/10/21 00:27:22 jinx Exp $
Copyright (c) 1987-1992 Massachusetts Institute of Technology
PRIMITIVE_RETURN (UNSPECIFIC);
}
\f
-DEFINE_PRIMITIVE ("DIRECTORY-OPEN-NOREAD", Prim_directory_open_noread, 1, 1,
- "Open the directory NAME for reading.")
-{
- PRIMITIVE_HEADER (1);
- if (OS_directory_index >= 0)
- error_external_return ();
- OS_directory_index = (OS_directory_open (STRING_ARG (1)));
- PRIMITIVE_RETURN (UNSPECIFIC);
-}
-
-DEFINE_PRIMITIVE ("DIRECTORY-CLOSE", Prim_directory_close, 0, 0,
- "Close the directory opened by `directory-open'.")
-{
- PRIMITIVE_HEADER (0);
- if (OS_directory_index >= 0)
- {
- OS_directory_close (OS_directory_index);
- OS_directory_index = (-1);
- }
- PRIMITIVE_RETURN (UNSPECIFIC);
-}
-
-#define DIRREAD(expr) \
-{ \
- CONST char * result = (expr); \
- if (result == 0) \
- { \
- OS_directory_close (OS_directory_index); \
- OS_directory_index = (-1); \
- PRIMITIVE_RETURN (SHARP_F); \
- } \
- PRIMITIVE_RETURN \
- (char_pointer_to_string ((unsigned char *) result)); \
-}
-
-DEFINE_PRIMITIVE ("DIRECTORY-OPEN", Prim_directory_open, 1, 1,
- "Open the directory NAME for reading.\n\
-If successful, return the first filename in the directory as a string.\n\
-If there is no such file, #F is returned.")
-{
- PRIMITIVE_HEADER (1);
- if (OS_directory_index >= 0)
- error_external_return ();
- OS_directory_index = (OS_directory_open (STRING_ARG (1)));
- DIRREAD (OS_directory_read (OS_directory_index));
-}
-
-DEFINE_PRIMITIVE ("DIRECTORY-READ", Prim_directory_read, 0, 0,
- "Read and return a filename from the directory opened by `directory-open'.\n\
-Return #F if there are no more files in the directory.")
-{
- PRIMITIVE_HEADER (0);
- if (OS_directory_index < 0)
- error_external_return ();
- DIRREAD (OS_directory_read (OS_directory_index));
-}
-
-DEFINE_PRIMITIVE ("DIRECTORY-READ-MATCHING", Prim_directory_read_matching, 1, 1,
- "Read and return a filename from the directory opened by `directory-open'.\n\
-The filename must begin with the argument string.\n\
-Return #F if there are no more matching files in the directory.")
-{
- PRIMITIVE_HEADER (1);
- if (OS_directory_index < 0)
- error_external_return ();
- DIRREAD (OS_directory_read_matching (OS_directory_index, (STRING_ARG (1))));
-}
-\f
DEFINE_PRIMITIVE ("NEW-DIRECTORY-OPEN", Prim_new_directory_open, 1, 1,
"Open the directory NAME for reading, returning a directory number.")
{
/* -*-C-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxfs.c,v 1.8 1992/07/06 23:42:07 jinx Exp $
+$Id: uxfs.c,v 1.9 1992/10/21 00:26:46 jinx Exp $
Copyright (c) 1990-1992 Massachusetts Institute of Technology
STD_VOID_SYSTEM_CALL (syscall_rmdir, (UX_rmdir (name)));
}
\f
-int OS_directory_index;
-
#if defined(HAVE_DIRENT) || defined(HAVE_DIR)
static DIR ** directory_pointers;
{
directory_pointers = 0;
n_directory_pointers = 0;
- OS_directory_index = (-1);
+ return;
}
static unsigned int
void
DEFUN_VOID (UX_initialize_directory_reader)
{
- OS_directory_index = (-1);
+ return;
}
int
DEFUN (OS_directory_open, (name), CONST char * name)
{
error_unimplemented_primitive ();
- return (0);
+ /*NOTREACHED*/
}
#ifndef HAVE_DIRENT
DEFUN (OS_directory_read, (index), unsigned int index)
{
error_unimplemented_primitive ();
- return (0);
+ /*NOTREACHED*/
}
CONST char *
CONST char * prefix)
{
error_unimplemented_primitive ();
- return (0);
+ /*NOTREACHED*/
}
void
DEFUN (OS_directory_close, (index), unsigned int index)
{
error_unimplemented_primitive ();
+ /*NOTREACHED*/
}
#endif /* HAVE_DIRENT */