update nearly all FSF copyright year lists to include 2010
[pspp] / lib / uninorm / u-normcmp.h
index 33d1e6252b6245916e3d48cad1b8669ee2affb33..5cda5db39a2d1ba64edf16a7449ab01300ee9060 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization insensitive comparison of Unicode strings.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009-2010 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -17,7 +17,7 @@
 
 int
 FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
-      uninorm_t nf, int *result)
+      uninorm_t nf, int *resultp)
 {
   UNIT buf1[2048 / sizeof (UNIT)];
   UNIT buf2[2048 / sizeof (UNIT)];
@@ -31,29 +31,26 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
   norms1_length = sizeof (buf1) / sizeof (UNIT);
   norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length);
   if (norms1 == NULL)
-    return errno;
+    /* errno is set here.  */
+    return -1;
 
   /* Normalize S2.  */
   norms2_length = sizeof (buf2) / sizeof (UNIT);
   norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length);
   if (norms2 == NULL)
     {
-      int saved_errno = errno;
       if (norms1 != buf1)
-       free (norms1);
-      return saved_errno;
+        {
+          int saved_errno = errno;
+          free (norms1);
+          errno = saved_errno;
+        }
+      return -1;
     }
 
   /* Compare the normalized strings.  */
-  cmp = U_CMP (norms1, norms2, MIN (norms1_length, norms2_length));
-  if (cmp == 0)
-    {
-      if (norms1_length < norms2_length)
-       cmp = -1;
-      else if (norms1_length > norms2_length)
-       cmp = 1;
-    }
-  else if (cmp > 0)
+  cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
+  if (cmp > 0)
     cmp = 1;
   else if (cmp < 0)
     cmp = -1;
@@ -62,6 +59,6 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
     free (norms2);
   if (norms1 != buf1)
     free (norms1);
-  *result = cmp;
+  *resultp = cmp;
   return 0;
 }