Adopt use of gnulib for portability.
[pspp-builds.git] / src / expressions / evaluate.c
index 7f066a50df025cbcc4d0a27c654a3dfc009a8559..4331d030ff65285761e1a5cf1f50287eedd156ea 100644 (file)
 
    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"
 
-#if TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#else
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#endif
-
 #include <ctype.h>
 #include "alloc.h"
 #include "error.h"
@@ -102,7 +91,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 +116,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 +237,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;
 }
 
@@ -285,7 +278,8 @@ expr_debug_print_postfix (const struct expression *e)
           break;
         case OP_string:
           fprintf (stderr, "s<%.*s>",
-                   (int) op->string.length, op->string.string);
+                   (int) op->string.length,
+                   op->string.string != NULL ? op->string.string : "");
           break;
         case OP_format:
           fprintf (stderr, "f<%s%d.%d>",