diff src/file-io.cc @ 1728:42b4f904f1af

[project @ 1996-01-09 11:36:01 by jwe]
author jwe
date Tue, 09 Jan 1996 11:41:43 +0000
parents a38bd8df9d33
children a02f140ed897
line wrap: on
line diff
--- a/src/file-io.cc
+++ b/src/file-io.cc
@@ -39,6 +39,8 @@
 #include <cstdlib>
 #include <cctype>
 
+#include <string>
+
 #include <strstream.h>
 
 #ifdef HAVE_UNISTD_H
@@ -115,7 +117,8 @@
       int file_count = file_list.length ();
       for (int i = 0; i < file_count; i++)
 	{
-	  const char *file_name = arg.string_value ();
+	  string tstr = arg.string_value ();
+	  const char *file_name = tstr.c_str ();
 	  file = file_list (p);
 	  if (file.name () == file_name)
 	    return p;
@@ -191,7 +194,8 @@
     {
       if (arg.is_string ())
 	{
-	  const char *name = arg.string_value ();
+	  string tstr = arg.string_value ();
+	  const char *name = tstr.c_str ();
 
 	  struct stat buffer;
 	  int status = stat (name, &buffer);
@@ -481,8 +485,10 @@
       return retval;
     }
 
-  const char *name = args(0).string_value ();
-  const char *mode = args(1).string_value ();
+  string tstr1 = args(0).string_value ();
+  const char *name = tstr1.c_str ();
+  string tstr2 = args(1).string_value ();
+  const char *mode = tstr2.c_str ();
 
   if (! valid_mode (mode))
     {
@@ -935,7 +941,8 @@
 
     case 's':
       {
-	const char *val = args(fmt_arg_count++).string_value ();
+	string tstr = args(fmt_arg_count++).string_value ();
+	const char *val = tstr.c_str ();
 
 	if (error_state)
 	  goto invalid_conversion;
@@ -952,7 +959,8 @@
 
     case 'c':
       {
-	const char *val = args(fmt_arg_count++).string_value ();
+	string tstr = args(fmt_arg_count++).string_value ();
+	const char *val = tstr.c_str ();
 
 	if (error_state || strlen (val) != 1)
 	  goto invalid_conversion;
@@ -988,6 +996,7 @@
   Octave_object retval;
   fmt_arg_count = 0;
   const char *fmt;
+  string fmt_str;
   file_info file;
 
   if (strcmp (type, "fprintf") == 0)
@@ -1005,7 +1014,8 @@
 	  return retval;
 	}
 
-      fmt = args(1).string_value ();
+      fmt_str = args(1).string_value ();
+      fmt = fmt_str.c_str ();
 
       if (error_state)
 	{
@@ -1017,7 +1027,8 @@
     }
   else
     {
-      fmt = args(0).string_value ();
+      fmt_str = args(0).string_value ();
+      fmt = fmt_str.c_str ();
 
       if (error_state)
 	{
@@ -1308,6 +1319,7 @@
 {
   Octave_object retval;
   const char *scanf_fmt = 0;
+  string scanf_fmt_str;
   char *tmp_file = 0;
   int tmp_file_open = 0;
   FILE *fptr = 0;
@@ -1317,7 +1329,8 @@
 
   if (strcmp (type, "scanf") != 0)
     {
-      scanf_fmt = args(1).string_value ();
+      scanf_fmt_str = args(1).string_value (); 
+      scanf_fmt = scanf_fmt_str.c_str ();
 
       if (error_state)
 	{
@@ -1349,10 +1362,14 @@
   if ((! fptr && args(0).is_string ())
       || (doing_fscanf && file.number () == 0))
     {
-      const char *string;
+      string xstring_str;
+      const char *xstring;
 
       if (strcmp (type, "scanf") == 0)
-	scanf_fmt = args(0).string_value ();
+	{
+	  scanf_fmt_str = args(0).string_value ();
+	  scanf_fmt = scanf_fmt_str.c_str ();
+	}
 
       if (strcmp (type, "scanf") == 0
 	  || (doing_fscanf && file.number () == 0))
@@ -1364,13 +1381,16 @@
 
 	  flush_output_to_pager ();
 
-	  string = gnu_readline ("");
-
-	  if (string && *string)
-	    maybe_save_history (string);
+	  xstring = gnu_readline ("");
+
+	  if (xstring && *xstring)
+	    maybe_save_history (xstring);
 	}
       else
-	string = args(0).string_value ();
+	{
+	  xstring_str = args(0).string_value ();
+	  xstring = xstring_str.c_str ();
+	}
 
       tmp_file = octave_tmp_file_name ();
 
@@ -1383,13 +1403,13 @@
       tmp_file_open = 1;
       unlink (tmp_file);
 
-      if (! string)
+      if (! xstring)
 	{
 	  error ("%s: no string to scan", type); 
 	  return retval;
 	}
 
-      int success = fputs (string, fptr);
+      int success = fputs (xstring, fptr);
       fflush (fptr);
       rewind (fptr);
 
@@ -1579,9 +1599,11 @@
   // Get type and number of bytes per element to read.
 
   const char *prec = "uchar";
+  string tstr;
   if (nargin > 2)
     {
-      prec = args(2).string_value ();
+      tstr = args(2).string_value ();
+      prec = tstr.c_str ();
 
       if (error_state)
 	{
@@ -1766,9 +1788,11 @@
   // Get type and number of bytes per element to read.
 
   const char *prec = "uchar";
+  string tstr;
   if (nargin > 2)
     {
-      prec = args(2).string_value ();
+      tstr = args(2).string_value ();
+      prec = tstr.c_str ();
 
       if (error_state)
 	{
@@ -1935,8 +1959,10 @@
       return retval;
     }
 
-  const char *name = args(0).string_value ();
-  const char *mode = args(1).string_value ();
+  string tstr1 = args(0).string_value ();
+  const char *name = tstr1.c_str ();
+  string tstr2 = args(1).string_value ();
+  const char *mode = tstr2.c_str ();
 
   if (mode[1] || (mode[0] != 'w' && mode[0] != 'r'))
     {
@@ -2058,7 +2084,8 @@
       return retval;
     }
 
-  const char *name = args(0).string_value ();
+  string tstr = args(0).string_value ();
+  const char *name = tstr.c_str ();
 
   if (pipe (stdin_pipe) || pipe (stdout_pipe)) 
     {
@@ -2150,7 +2177,8 @@
       return retval;
     }
 
-  const char *name = args(0).string_value ();
+  string tstr = args(0).string_value ();
+  const char *name = tstr.c_str ();
 
   retval (0) = (double) system (name);
   return retval;
@@ -2185,7 +2213,8 @@
       return retval;
     }
 
-  const char *name = args(0).string_value ();
+  string tstr = args(0).string_value ();
+  const char *name = tstr.c_str ();
 
   pid = fork ();
 
@@ -2318,7 +2347,8 @@
       return retval;
     }
 
-  const char *name = args(0).string_value ();
+  string tstr = args(0).string_value ();
+  const char *name = tstr.c_str ();
 
   if (! args(1).is_scalar_type ())
     {
@@ -2367,7 +2397,8 @@
       return retval;
     }
 
-  const char *name = args(0).string_value ();
+  string tstr = args(0).string_value ();
+  const char *name = tstr.c_str ();
 
   retval (0) = (double) unlink (name);
 
@@ -2454,7 +2485,8 @@
 
   if (args.length () == 1)
     {
-      const char *name = args(0).string_value ();
+      string tstr = args(0).string_value ();
+      const char *name = tstr.c_str ();
 
       static char *fname = 0;
 
@@ -2489,7 +2521,8 @@
 
   if (args.length () == 1)
     {
-      const char *name = args(0).string_value ();
+      string tstr = args(0).string_value ();
+      const char *name = tstr.c_str ();
 
       static char *fname = 0;