diff src/file-io.cc @ 240:a99f28f5e351

[project @ 1993-11-30 20:24:36 by jwe]
author jwe
date Tue, 30 Nov 1993 20:24:36 +0000
parents d981cdce52d9
children 6a81b9fb7957
line wrap: on
line diff
--- a/src/file-io.cc	Tue Nov 30 20:24:36 1993 +0000
+++ b/src/file-io.cc	Tue Nov 30 20:24:36 1993 +0000
@@ -23,8 +23,8 @@
 
 // Written by John C. Campbell <jcc@che.utexas.edu>.
 
-#ifdef __GNUG__
-#pragma implementation
+#ifdef HAVE_CONFIG_H
+#include "config.h"
 #endif
 
 #include <DLList.h>
@@ -50,21 +50,21 @@
 // keeps a count of args sent to printf or scanf
 static int fmt_arg_count = 0;
 
-class File_info
+class file_info
 {
  public:
-  File_info (void);
-  File_info (int num, const char *nm, FILE *t, const char *md);
-  File_info (const File_info& f);
+  file_info (void);
+  file_info (int num, const char *nm, FILE *t, const char *md);
+  file_info (const file_info& f);
 
-  File_info& operator = (const File_info& f);
+  file_info& operator = (const file_info& f);
 
-  ~File_info (void);
+  ~file_info (void);
 
   int number (void) const;
-  char *name (void) const;
+  const char *name (void) const;
   FILE *fptr (void) const;
-  char *mode (void) const;
+  const char *mode (void) const;
 
  private:
   int _number;
@@ -73,7 +73,7 @@
   char *_mode;
 };
 
-File_info::File_info (void)
+file_info::file_info (void)
 {
   _number = -1;
   _name = (char *) NULL;
@@ -81,7 +81,15 @@
   _mode = (char *) NULL;
 }
 
-File_info::File_info (const File_info& f)
+file_info::file_info (int n, const char *nm, FILE *t, const char *md)
+{
+  _number = n;
+  _name = strsave (nm);
+  _fptr = t;
+  _mode = strsave (md);
+}
+
+file_info::file_info (const file_info& f)
 {
   _number = f._number;
   _name = strsave (f._name);
@@ -89,65 +97,61 @@
   _mode = strsave (f._mode);
 }
 
-File_info&
-File_info::operator = (const File_info& f)
+file_info&
+file_info::operator = (const file_info& f)
 {
-  _number = f._number;
-  _name = strsave (f._name);
-  _fptr = f._fptr;
-  _mode = strsave (f._mode);
-
+  if (this != & f)
+    {
+      _number = f._number;
+      delete [] _name;
+      _name = strsave (f._name);
+      _fptr = f._fptr;
+      delete [] _mode;
+      _mode = strsave (f._mode);
+    }
   return *this;
 }
 
-File_info::~File_info (void)
+file_info::~file_info (void)
 {
   delete [] _name;
   delete [] _mode;
 }
 
-File_info::File_info (int n, const char *nm, FILE *t, const char *md)
-{
-  _number = n;
-  _name = strsave (nm);
-  _fptr = t;
-  _mode = strsave (md);
-}
-
 int
-File_info::number (void) const
+file_info::number (void) const
 {
   return _number;
 }
 
-char *
-File_info::name (void) const
+const char *
+file_info::name (void) const
 {
   return _name;
 }
 
 FILE *
-File_info::fptr (void) const
+file_info::fptr (void) const
 {
   return _fptr;
 }
 
-char *
-File_info::mode (void) const
+const char *
+file_info::mode (void) const
 {
   return _mode;
 }
 
 
 // double linked list containing relevant information about open files
-static DLList <File_info> file_list;
+static DLList <file_info> file_list;
 
 void
 initialize_file_io (void)
 {
-  File_info _stdin (0, "stdin", stdin, "r");
-  File_info _stdout (1, "stdout", stdout, "w");
-  File_info _stderr (2, "stderr", stderr, "w");
+  file_info _stdin (0, "stdin", stdin, "r");
+  file_info _stdout (1, "stdout", stdout, "w");
+  file_info _stderr (2, "stderr", stderr, "w");
 
   file_list.append (_stdin);
   file_list.append (_stdout);
@@ -162,7 +166,7 @@
   if (arg.is_string_type ())
     {
       Pix p = file_list.first ();
-      File_info file;
+      file_info file;
       for (int i = 0; i < file_count; i++)
 	{
 	  char *file_name = arg.string_value ();
@@ -180,7 +184,7 @@
       else
 	{
 	  Pix p = file_list.first ();
-	  File_info file;
+	  file_info file;
 	  for (int i = 0; i < file_count; i++)
 	    {
 	      file = file_list (p);
@@ -205,11 +209,11 @@
   FILE *file_ptr = fopen (file_name, mode);
   if (file_ptr != (FILE *) NULL)
     {
-      File_info file (++file_count, file_name, file_ptr, mode);
+      file_info file (++file_count, file_name, file_ptr, mode);
       file_list.append (file);
       
       Pix p = file_list.first ();
-      File_info file_from_list;
+      file_info file_from_list;
       
       for (int i = 0; i < file_count; i++)
 	{
@@ -221,6 +225,7 @@
     }
 
   error ("problems automatically opening file for user");
+
   return (Pix) NULL;
 }
 
@@ -235,7 +240,7 @@
   if (p == (Pix) NULL)
     return retval;
 
-  File_info file = file_list (p);
+  file_info file = file_list (p);
 
   if (file.number () < 3)
     {
@@ -269,7 +274,7 @@
   if (p == (Pix) NULL)
     return retval;
 
-  File_info file = file_list (p);
+  file_info file = file_list (p);
 
   if (strcmp (file.mode (), "r") == 0)
     {
@@ -278,6 +283,7 @@
     }
 
   int success = 0;
+
   if (file.number () == 1)
     flush_output_to_pager ();
   else
@@ -351,7 +357,7 @@
     }
 
   char string[length+1];
-  File_info file = file_list (p);
+  file_info file = file_list (p);
   char *success = fgets (string, length+1, file.fptr ());
 
   if (success == (char *) NULL)
@@ -390,7 +396,7 @@
 
   if (p != (Pix) NULL)
     {
-      File_info file = file_list (p);
+      file_info file = file_list (p);
 
       retval = new tree_constant[2];
       retval[0] = tree_constant ((double) file.number ());
@@ -430,7 +436,7 @@
 
   int number = file_count++;
 
-  File_info file (number, name, file_ptr, mode);
+  file_info file (number, name, file_ptr, mode);
   file_list.append (file);
 
   retval = new tree_constant[2];
@@ -450,7 +456,7 @@
   output_buf << "\n number  mode  name\n\n";
   for (int i = 0; i < file_count; i++)
     {
-      File_info file = file_list (p);
+      file_info file = file_list (p);
       output_buf.form ("%7d%6s  %s\n", file.number (), file.mode (),
 		       file.name ());
       file_list.next (p);
@@ -471,7 +477,7 @@
   if (p == (Pix) NULL)
     p = fopen_file_for_user (args[1], "a+");   
 
-  File_info file = file_list (p);
+  file_info file = file_list (p);
   rewind (file.fptr ());
 
   return retval;
@@ -516,7 +522,7 @@
 	}
     }
 
-  File_info file = file_list (p);
+  file_info file = file_list (p);
   int success = fseek (file.fptr (), offset, origin);
   retval = new tree_constant[2];
 
@@ -540,7 +546,7 @@
   if (p == (Pix) NULL)
     p = fopen_file_for_user (args[1], "a+");
 
-  File_info file = file_list (p);
+  file_info file = file_list (p);
   long offset = ftell (file.fptr ());
   retval = new tree_constant[2];
   retval[0] = tree_constant ((double) offset);
@@ -558,7 +564,7 @@
 
   for (int i = 0; i < file_count; i++)
     {
-      File_info file = file_list (p);
+      file_info file = file_list (p);
       if (i > 2)   // do not close stdin, stdout, stderr!
 	{
 	  int success = fclose (file.fptr ());
@@ -775,7 +781,7 @@
   tree_constant *retval = NULL_TREE_CONST;
   fmt_arg_count = 1;
   char *fmt;
-  File_info file;
+  file_info file;
 
   if (strcmp (type, "fprintf") == 0)
     {
@@ -1058,7 +1064,7 @@
   char *tmp_file = (char *) NULL;
   int tmp_file_open = 0;
   FILE *fptr = (FILE *) NULL;
-  File_info file;
+  file_info file;
 
   fmt_arg_count = 0;