From 23225357ebadd2f376559a6443d4b1a262ff5ddb Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Wed, 21 Oct 1992 00:27:22 +0000 Subject: [PATCH] Eliminate fossil primitives. --- v7/src/microcode/dosfs.c | 33 +++++++++--------- v7/src/microcode/osfs.h | 3 +- v7/src/microcode/prosfs.c | 70 +-------------------------------------- v7/src/microcode/uxfs.c | 15 ++++----- 4 files changed, 26 insertions(+), 95 deletions(-) diff --git a/v7/src/microcode/dosfs.c b/v7/src/microcode/dosfs.c index 2ae4f1cfd..1605ee64f 100644 --- a/v7/src/microcode/dosfs.c +++ b/v7/src/microcode/dosfs.c @@ -1,6 +1,6 @@ /* -*-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 @@ -79,7 +79,7 @@ DEFUN (OS_file_remove, (name), CONST char * name) { STD_VOID_SYSTEM_CALL (syscall_unlink, (DOS_unlink (name))); } - + void DEFUN (OS_file_remove_link, (name), CONST char * name) { @@ -107,7 +107,7 @@ DEFUN (OS_file_link_soft, (from_name, to_name), error_unimplemented_primitive (); /*NOTREACHED*/ } - + void DEFUN (OS_file_rename, (from_name, to_name), CONST char * from_name AND @@ -130,15 +130,15 @@ DEFUN (OS_directory_delete, (name), CONST char * name) } /* 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; @@ -148,7 +148,7 @@ DEFUN_VOID (DOS_initialize_directory_reader) { directory_pointers = 0; n_directory_pointers = 0; - OS_directory_index = (-1); + return; } static unsigned int @@ -219,15 +219,15 @@ DEFUN (OS_directory_open, (name), CONST char * name) { 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); @@ -238,12 +238,13 @@ DEFUN (OS_directory_open, (name), CONST char * name) 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); } @@ -260,7 +261,7 @@ void DEFUN (OS_directory_close, (index), unsigned int index) { DIR * pointer = REFERENCE_DIRECTORY (index); - free(pointer); + free (pointer); DEALLOCATE_DIRECTORY (index); } diff --git a/v7/src/microcode/osfs.h b/v7/src/microcode/osfs.h index 0d38ff0ae..c34615553 100644 --- a/v7/src/microcode/osfs.h +++ b/v7/src/microcode/osfs.h @@ -1,6 +1,6 @@ /* -*-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 @@ -59,6 +59,5 @@ extern void EXFUN (OS_directory_close, (unsigned int index)); 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 */ diff --git a/v7/src/microcode/prosfs.c b/v7/src/microcode/prosfs.c index ded924454..8bb7b8309 100644 --- a/v7/src/microcode/prosfs.c +++ b/v7/src/microcode/prosfs.c @@ -1,6 +1,6 @@ /* -*-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 @@ -249,74 +249,6 @@ DEFINE_PRIMITIVE ("DIRECTORY-DELETE", Prim_directory_delete, 1, 1, PRIMITIVE_RETURN (UNSPECIFIC); } -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)))); -} - DEFINE_PRIMITIVE ("NEW-DIRECTORY-OPEN", Prim_new_directory_open, 1, 1, "Open the directory NAME for reading, returning a directory number.") { diff --git a/v7/src/microcode/uxfs.c b/v7/src/microcode/uxfs.c index dc38968ad..160e28140 100644 --- a/v7/src/microcode/uxfs.c +++ b/v7/src/microcode/uxfs.c @@ -1,6 +1,6 @@ /* -*-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 @@ -186,8 +186,6 @@ DEFUN (OS_directory_delete, (name), CONST char * name) STD_VOID_SYSTEM_CALL (syscall_rmdir, (UX_rmdir (name))); } -int OS_directory_index; - #if defined(HAVE_DIRENT) || defined(HAVE_DIR) static DIR ** directory_pointers; @@ -198,7 +196,7 @@ DEFUN_VOID (UX_initialize_directory_reader) { directory_pointers = 0; n_directory_pointers = 0; - OS_directory_index = (-1); + return; } static unsigned int @@ -314,7 +312,7 @@ DEFUN (OS_directory_close, (index), unsigned int index) void DEFUN_VOID (UX_initialize_directory_reader) { - OS_directory_index = (-1); + return; } int @@ -327,7 +325,7 @@ unsigned int DEFUN (OS_directory_open, (name), CONST char * name) { error_unimplemented_primitive (); - return (0); + /*NOTREACHED*/ } #ifndef HAVE_DIRENT @@ -338,7 +336,7 @@ CONST char * DEFUN (OS_directory_read, (index), unsigned int index) { error_unimplemented_primitive (); - return (0); + /*NOTREACHED*/ } CONST char * @@ -347,13 +345,14 @@ DEFUN (OS_directory_read_matching, (index, prefix), 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 */ -- 2.25.1