Mercurial > hg > octave-lyh
diff src/file-io.cc @ 1426:29f274b42cb1
[project @ 1995-09-19 03:41:32 by jwe]
author | jwe |
---|---|
date | Tue, 19 Sep 1995 03:48:06 +0000 |
parents | 209ec8f4db00 |
children | 8fc8679401bf |
line wrap: on
line diff
--- a/src/file-io.cc +++ b/src/file-io.cc @@ -54,6 +54,7 @@ #include "defun.h" #include "error.h" +#include "file-info.h" #include "file-io.h" #include "help.h" #include "input.h" @@ -81,75 +82,6 @@ // double linked list containing relevant information about open files static DLList <file_info> file_list; -file_info::file_info (void) -{ - file_number = -1; - file_name = 0; - file_fptr = 0; - file_mode = 0; -} - -file_info::file_info (int n, const char *nm, FILE *t, const char *md) -{ - file_number = n; - file_name = strsave (nm); - file_fptr = t; - file_mode = strsave (md); -} - -file_info::file_info (const file_info& f) -{ - file_number = f.file_number; - file_name = strsave (f.file_name); - file_fptr = f.file_fptr; - file_mode = strsave (f.file_mode); -} - -file_info& -file_info::operator = (const file_info& f) -{ - if (this != & f) - { - file_number = f.file_number; - delete [] file_name; - file_name = strsave (f.file_name); - file_fptr = f.file_fptr; - delete [] file_mode; - file_mode = strsave (f.file_mode); - } - return *this; -} - -file_info::~file_info (void) -{ - delete [] file_name; - delete [] file_mode; -} - -int -file_info::number (void) const -{ - return file_number; -} - -const char * -file_info::name (void) const -{ - return file_name; -} - -FILE * -file_info::fptr (void) const -{ - return file_fptr; -} - -const char * -file_info::mode (void) const -{ - return file_mode; -} - void initialize_file_io (void) { @@ -177,7 +109,7 @@ { const char *file_name = arg.string_value (); file = file_list (p); - if (strcmp (file.name (), file_name) == 0) + if (file.name () == file_name) return p; file_list.next (p); } @@ -230,7 +162,7 @@ for (int i = 0; i < file_count; i++) { file_from_list = file_list (p); - if (strcmp (file_from_list.name (), name) == 0) + if (file_from_list.name () == name) return p; file_list.next (p); } @@ -334,7 +266,7 @@ file_info file = file_list (p); - if (strcmp (file.mode (), "r") == 0) + if (file.mode () == "r") { warning ("can't flush an input stream"); return retval; @@ -613,8 +545,8 @@ for (int i = 0; i < file_count; i++) { file_info file = file_list (p); - output_buf.form ("%7d%6s %s\n", file.number (), file.mode (), - file.name ()); + output_buf.form ("%7d%6s %s\n", file.number (), + file.mode ().data (), file.name ().data ()); file_list.next (p); } @@ -822,7 +754,7 @@ { int success = fclose (file.fptr ()); if (success != 0) - error ("closing %s", file.name ()); + error ("closing %s", file.name ().data ()); } file_list.del (p); @@ -1395,7 +1327,7 @@ file = file_list (p); - if (strcmp (file.mode (), "w") == 0 || strcmp (file.mode (), "a") == 0) + if (file.mode () == "w" || file.mode () == "a") { error ("%s: this file is opened for writing only", type); return retval;