Changed all the licence notices in all the files.
[pspp-builds.git] / src / expressions / evaluate.c
index c2868429b246b6f9dc06d5d739b0629ce80c01e3..b7f665d49bc461ff2366700516fd43e88315d415 100644 (file)
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA. */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA. */
 
 #include <config.h>
 #include "private.h"
@@ -127,7 +127,7 @@ cmd_debug_evaluate (void)
         dump_postfix = 1;
       else if (lex_match ('('))
         {
-          char name[MAX_VAR_NAME_LEN + 1];
+          char name[LONG_NAME_LEN + 1];
           struct variable *v;
           size_t old_value_cnt;
           int width;
@@ -140,7 +140,7 @@ cmd_debug_evaluate (void)
           if (!lex_force_match ('='))
             goto done;
 
-          if (token == T_NUM) 
+          if (lex_is_number ())
             {
               width = 0;
               fprintf (stderr, "(%s = %.2f)", name, tokval); 
@@ -174,7 +174,7 @@ cmd_debug_evaluate (void)
             }
           case_resize (c, old_value_cnt, dict_get_next_value_idx (d));
 
-          if (token == T_NUM)
+          if (lex_is_number ())
             case_data_rw (c, v->fv)->f = tokval;
           else
             memcpy (case_data_rw (c, v->fv)->s, ds_data (&tokstr),
@@ -198,7 +198,7 @@ cmd_debug_evaluate (void)
   lex_get ();
 
   expr = expr_parse_any (d, optimize);
-  if (!expr || token != '.') 
+  if (!expr || lex_end_of_command () != CMD_SUCCESS)
     {
       if (expr != NULL)
         expr_free (expr);
@@ -248,8 +248,12 @@ cmd_debug_evaluate (void)
   retval = CMD_SUCCESS;
 
  done:
-  if (c != NULL)
-    case_destroy (c);
+  if (c != NULL) 
+    {
+      case_destroy (c);
+      free (c); 
+    }
+  dict_destroy (d);
   return retval;
 }