comparison src/text.c @ 4962:e813cf16c015

merge
author Ben Wing <ben@xemacs.org>
date Mon, 01 Feb 2010 05:29:05 -0600
parents 304aebb79cd3 6ef8256a020a
children 0d4c9d0f6a8d
comparison
equal deleted inserted replaced
4961:b90f8cf474e0 4962:e813cf16c015
1420 int 1420 int
1421 qxestrcasecmp_i18n (const Ibyte *s1, const Ibyte *s2) 1421 qxestrcasecmp_i18n (const Ibyte *s1, const Ibyte *s2)
1422 { 1422 {
1423 while (*s1 && *s2) 1423 while (*s1 && *s2)
1424 { 1424 {
1425 if (DOWNCASE (0, itext_ichar (s1)) != 1425 if (CANONCASE (0, itext_ichar (s1)) !=
1426 DOWNCASE (0, itext_ichar (s2))) 1426 CANONCASE (0, itext_ichar (s2)))
1427 break; 1427 break;
1428 INC_IBYTEPTR (s1); 1428 INC_IBYTEPTR (s1);
1429 INC_IBYTEPTR (s2); 1429 INC_IBYTEPTR (s2);
1430 } 1430 }
1431 1431
1432 return (DOWNCASE (0, itext_ichar (s1)) - 1432 return (CANONCASE (0, itext_ichar (s1)) -
1433 DOWNCASE (0, itext_ichar (s2))); 1433 CANONCASE (0, itext_ichar (s2)));
1434 } 1434 }
1435 1435
1436 /* The only difference between these next two and 1436 /* The only difference between these next two and
1437 qxememcasecmp()/qxememcasecmp_i18n() is that these two will stop if 1437 qxememcasecmp()/qxememcasecmp_i18n() is that these two will stop if
1438 both strings are equal and less than LEN in length, while 1438 both strings are equal and less than LEN in length, while
1479 Bytecount len_from_s1) 1479 Bytecount len_from_s1)
1480 { 1480 {
1481 while (len_from_s1 > 0) 1481 while (len_from_s1 > 0)
1482 { 1482 {
1483 const Ibyte *old_s1 = s1; 1483 const Ibyte *old_s1 = s1;
1484 int diff = (DOWNCASE (0, itext_ichar (s1)) - 1484 int diff = (CANONCASE (0, itext_ichar (s1)) -
1485 DOWNCASE (0, itext_ichar (s2))); 1485 CANONCASE (0, itext_ichar (s2)));
1486 if (diff != 0) 1486 if (diff != 0)
1487 return diff; 1487 return diff;
1488 if (!*s1) 1488 if (!*s1)
1489 return 0; 1489 return 0;
1490 INC_IBYTEPTR (s1); 1490 INC_IBYTEPTR (s1);
1602 { 1602 {
1603 while (len1 > 0 && len2 > 0) 1603 while (len1 > 0 && len2 > 0)
1604 { 1604 {
1605 const Ibyte *old_s1 = s1; 1605 const Ibyte *old_s1 = s1;
1606 const Ibyte *old_s2 = s2; 1606 const Ibyte *old_s2 = s2;
1607 int diff = (DOWNCASE (0, itext_ichar (s1)) - 1607 int diff = (CANONCASE (0, itext_ichar (s1)) -
1608 DOWNCASE (0, itext_ichar (s2))); 1608 CANONCASE (0, itext_ichar (s2)));
1609 if (diff != 0) 1609 if (diff != 0)
1610 return diff; 1610 return diff;
1611 INC_IBYTEPTR (s1); 1611 INC_IBYTEPTR (s1);
1612 INC_IBYTEPTR (s2); 1612 INC_IBYTEPTR (s2);
1613 len1 -= s1 - old_s1; 1613 len1 -= s1 - old_s1;
1629 *matching = 0; 1629 *matching = 0;
1630 while (len1 > 0 && len2 > 0) 1630 while (len1 > 0 && len2 > 0)
1631 { 1631 {
1632 const Ibyte *old_s1 = s1; 1632 const Ibyte *old_s1 = s1;
1633 const Ibyte *old_s2 = s2; 1633 const Ibyte *old_s2 = s2;
1634 int diff = (DOWNCASE (0, itext_ichar (s1)) - 1634 int diff = (CANONCASE (0, itext_ichar (s1)) -
1635 DOWNCASE (0, itext_ichar (s2))); 1635 CANONCASE (0, itext_ichar (s2)));
1636 if (diff != 0) 1636 if (diff != 0)
1637 return diff; 1637 return diff;
1638 INC_IBYTEPTR (s1); 1638 INC_IBYTEPTR (s1);
1639 INC_IBYTEPTR (s2); 1639 INC_IBYTEPTR (s2);
1640 len1 -= s1 - old_s1; 1640 len1 -= s1 - old_s1;
1645 assert (len1 >= 0 && len2 >= 0); 1645 assert (len1 >= 0 && len2 >= 0);
1646 return len1 - len2; 1646 return len1 - len2;
1647 } 1647 }
1648 1648
1649 int 1649 int
1650 lisp_strcasecmp (Lisp_Object s1, Lisp_Object s2) 1650 lisp_strcasecmp_ascii (Lisp_Object s1, Lisp_Object s2)
1651 { 1651 {
1652 Ibyte *cm = strcasecmp_charmap; 1652 Ibyte *cm = strcasecmp_charmap;
1653 Ibyte *p1 = XSTRING_DATA (s1); 1653 Ibyte *p1 = XSTRING_DATA (s1);
1654 Ibyte *p2 = XSTRING_DATA (s2); 1654 Ibyte *p2 = XSTRING_DATA (s2);
1655 Ibyte *e1 = p1 + XSTRING_LENGTH (s1); 1655 Ibyte *e1 = p1 + XSTRING_LENGTH (s1);