guile-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile/guile-core/srfi ChangeLog srfi-14.c srfi-...


From: Gary Houston
Subject: guile/guile-core/srfi ChangeLog srfi-14.c srfi-...
Date: Wed, 11 Jul 2001 13:47:07 -0700

CVSROOT:        /cvs
Module name:    guile
Changes by:     Gary Houston <address@hidden>   01/07/11 13:47:07

Modified files:
        guile-core/srfi: ChangeLog srfi-14.c srfi-14.h 

Log message:
        * srfi-14.c (s_scm_char_set_eq): bug fix: (char-set=) should
        return #t instead of giving wrong-number-of-arguments . take a
        single "rest" argument.  use memcmp instead of a loop to compare
        the values.
        srfi-14.h: update the declaration.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/srfi/ChangeLog.diff?cvsroot=OldCVS&tr1=1.45&tr2=1.46&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/srfi/srfi-14.c.diff?cvsroot=OldCVS&tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/srfi/srfi-14.h.diff?cvsroot=OldCVS&tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: guile/guile-core/srfi/ChangeLog
diff -u guile/guile-core/srfi/ChangeLog:1.45 
guile/guile-core/srfi/ChangeLog:1.46
--- guile/guile-core/srfi/ChangeLog:1.45        Mon Jul  9 12:12:27 2001
+++ guile/guile-core/srfi/ChangeLog     Wed Jul 11 13:47:07 2001
@@ -1,3 +1,11 @@
+2001-07-11  Gary Houston  <address@hidden>
+
+       * srfi-14.c (s_scm_char_set_eq): bug fix: (char-set=) should
+       return #t instead of giving wrong-number-of-arguments . take a
+       single "rest" argument.  use memcmp instead of a loop to compare
+       the values.
+       srfi-14.h: update the declaration.
+
 2001-07-09  Martin Grabmueller  <address@hidden>
 
        * README: Cleanup.
Index: guile/guile-core/srfi/srfi-14.c
diff -u guile/guile-core/srfi/srfi-14.c:1.9 guile/guile-core/srfi/srfi-14.c:1.10
--- guile/guile-core/srfi/srfi-14.c:1.9 Thu Jun 28 09:39:00 2001
+++ guile/guile-core/srfi/srfi-14.c     Wed Jul 11 13:47:07 2001
@@ -111,33 +111,28 @@
 #undef FUNC_NAME
 
 
-SCM_DEFINE (scm_char_set_eq, "char-set=", 1, 0, 1,
-           (SCM cs1, SCM csr),
+SCM_DEFINE (scm_char_set_eq, "char-set=", 0, 0, 1,
+           (SCM char_sets),
            "Return @code{#t} if all given character sets are equal.")
 #define FUNC_NAME s_scm_char_set_eq
 {
-  int argnum = 2;
+  int argnum = 1;
+  long *cs1_data = NULL;
 
-  SCM_VALIDATE_SMOB (1, cs1, charset);
-  SCM_VALIDATE_REST_ARGUMENT (csr);
+  SCM_VALIDATE_REST_ARGUMENT (char_sets);
 
-  while (!SCM_NULLP (csr))
+  while (!SCM_NULLP (char_sets))
     {
-      long * p1, * p2;
-      SCM cs2 = SCM_CAR (csr);
-      int k;
+      SCM csn = SCM_CAR (char_sets);
+      long *csn_data;
 
-      SCM_VALIDATE_SMOB (argnum++, cs2, charset);
-      p1 = (long *) SCM_SMOB_DATA (cs1);
-      p2 = (long *) SCM_SMOB_DATA (cs2);
-      for (k = 0; k < SCM_CHARSET_SIZE / sizeof (long); k++)
-       {
-         if (p1[k] != p2[k])
-           return SCM_BOOL_F;
-       }
-
-      csr = SCM_CDR (csr);
-      cs1 = cs2;
+      SCM_VALIDATE_SMOB (argnum++, csn, charset);
+      csn_data = (long *) SCM_SMOB_DATA (csn);
+      if (cs1_data == NULL)
+       cs1_data = csn_data;
+      else if (memcmp (cs1_data, csn_data, SCM_CHARSET_SIZE) != 0)
+       return SCM_BOOL_F;
+      char_sets = SCM_CDR (char_sets);
     }
   return SCM_BOOL_T;
 }
Index: guile/guile-core/srfi/srfi-14.h
diff -u guile/guile-core/srfi/srfi-14.h:1.3 guile/guile-core/srfi/srfi-14.h:1.4
--- guile/guile-core/srfi/srfi-14.h:1.3 Fri May 18 17:17:05 2001
+++ guile/guile-core/srfi/srfi-14.h     Wed Jul 11 13:47:07 2001
@@ -60,7 +60,7 @@
 void scm_init_srfi_14 (void);
 
 SCM scm_char_set_p (SCM obj);
-SCM scm_char_set_eq (SCM cs1, SCM csr);
+SCM scm_char_set_eq (SCM char_sets);
 SCM scm_char_set_leq (SCM cs1, SCM csr);
 SCM scm_char_set_hash (SCM cs, SCM bound);
 SCM scm_char_set_cursor (SCM cs);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]