added automake.mk files in src/language
[pspp] / src / case.c
index a1c65d6b68362322c038a0e62026b0e6aabb31d6..1384791c82665c359eb3755e37516641c41f788d 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 "case.h"
@@ -92,7 +92,7 @@ void
 case_create (struct ccase *c, size_t value_cnt) 
 {
   if (!case_try_create (c, value_cnt))
-    out_of_memory ();
+    xalloc_die ();
 }
 
 #ifdef GLOBAL_DEBUGGING
@@ -356,32 +356,9 @@ int
 case_compare (const struct ccase *a, const struct ccase *b,
               struct variable *const *vp, size_t var_cnt)
 {
-  for (; var_cnt-- > 0; vp++) 
-    {
-      struct variable *v = *vp;
-
-      if (v->width == 0) 
-        {
-          double af = case_num (a, v->fv);
-          double bf = case_num (b, v->fv);
-
-          if (af != bf) 
-            return af > bf ? 1 : -1;
-        }
-      else 
-        {
-          const char *as = case_str (a, v->fv);
-          const char *bs = case_str (b, v->fv);
-          int cmp = memcmp (as, bs, v->width);
-
-          if (cmp != 0)
-            return cmp;
-        }
-    }
-  return 0;
+  return case_compare_2dict (a, b, vp, vp, var_cnt);
 }
 
-
 /* Compares the values of the VAR_CNT variables in VAP in case CA
    to the values of the VAR_CNT variables in VBP in CB
    and returns a strcmp()-type result. */