diff src/file-io.cc @ 3737:b736f8b8f0a1

[project @ 2000-11-16 18:01:08 by jwe]
author jwe
date Thu, 16 Nov 2000 18:01:10 +0000
parents 3796444c54a3
children 13905c3a24af
line wrap: on
line diff
--- a/src/file-io.cc	Thu Nov 16 17:25:35 2000 +0000
+++ b/src/file-io.cc	Thu Nov 16 18:01:10 2000 +0000
@@ -630,7 +630,7 @@
   return retval;
 }
 
-DEFUN (fprintf, args, ,
+DEFUN (fprintf, args, nargout,
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} fprintf (@var{fid}, @var{template}, @dots{})\n\
 This function is just like @code{printf}, except that the output is\n\
@@ -638,6 +638,7 @@
 @end deftypefn")
 {
   double retval = -1.0;
+  bool return_char_count = true;
 
   int nargin = args.length ();
 
@@ -646,8 +647,16 @@
       octave_stream os;
       int fmt_n = 0;
 
-      if (args(0).is_string ())
-	os = octave_stream_list::lookup (1, "fprintf");
+      if (args(0).is_string ()) 
+	{
+	  os = octave_stream_list::lookup (1, "fprintf");
+
+	  // For compatibility with Matlab, which does not return the
+	  // character count when behaving like printf (no file id
+	  // parameter).
+
+	  return_char_count = (nargout != 0);
+	}
       else
 	{
 	  fmt_n = 1;
@@ -679,7 +688,10 @@
   else
     print_usage ("fprintf");
 
-  return retval;
+  if (return_char_count)
+    return retval;
+  else
+    return octave_value();
 }
 
 DEFUN (fputs, args, ,