Handle case of a lookup table as the active file.
[pspp] / src / expressions / evaluate.c
index 7f066a50df025cbcc4d0a27c654a3dfc009a8559..1607681604357b075e92ff2397ed99ca24c95f26 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"
@@ -102,7 +102,7 @@ expr_evaluate_str (struct expression *e, const struct ccase *c, int case_idx,
   assert (e->type == OP_string);
   assert ((dst == NULL) == (dst_size == 0));
   expr_evaluate (e, c, case_idx, &s);
-  st_bare_pad_len_copy (dst, s.string, dst_size, s.length);
+  buf_copy_rpad (dst, dst_size, s.string, s.length);
 }
 \f
 #include "lexer.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;
@@ -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;
 }