diff src/qpsol.cc @ 1329:13b630c0aad3

[project @ 1995-08-24 00:58:44 by jwe]
author jwe
date Thu, 24 Aug 1995 00:58:44 +0000
parents 611d403c7f3d
children 19c10b8657d5
line wrap: on
line diff
--- a/src/qpsol.cc	Tue Aug 22 22:33:13 1995 +0000
+++ b/src/qpsol.cc	Thu Aug 24 00:58:44 1995 +0000
@@ -327,7 +327,7 @@
 }
 
 static void
-do_qpsol_option (char *keyword, double val)
+set_qpsol_option (char *keyword, double val)
 {
   QPSOL_OPTIONS *list = qpsol_option_table;
 
@@ -356,6 +356,31 @@
   warning ("qpsol_options: no match for `%s'", keyword);
 }
 
+static Octave_object
+show_qpsol_option (char *keyword)
+{
+  Octave_object retval;
+
+  QPSOL_OPTIONS *list = qpsol_option_table;
+
+  while (list->keyword != 0)
+    {
+      if (keyword_almost_match (list->kw_tok, list->min_len, keyword,
+				list->min_toks_to_match, MAX_TOKENS))
+	{
+	  if (list->d_get_fcn)
+	    return (qpsol_opts.*list->d_get_fcn) ();
+	  else
+	    return (double) (qpsol_opts.*list->i_get_fcn) ();
+	}
+      list++;
+    }
+
+  warning ("qpsol_options: no match for `%s'", keyword);
+
+  return retval;
+}
+
 #endif
 
 #if defined (QPSOL_MISSING)
@@ -386,18 +411,23 @@
       print_qpsol_option_list ();
       return retval;
     }
-  else if (nargin == 2)
+  else if (nargin == 1 || nargin == 2)
     {
       char *keyword = args(0).string_value ();
 
       if (! error_state)
 	{
-	  double val = args(1).double_value ();
+	  if (nargin == 1)
+	    return show_qpsol_option (keyword);
+	  else
+	    {
+	      double val = args(1).double_value ();
 
-	  if (! error_state)
-	    {
-	      do_qpsol_option (keyword, val);
-	      return retval;
+	      if (! error_state)
+		{
+		  set_qpsol_option (keyword, val);
+		  return retval;
+		}
 	    }
 	}
     }