Mercurial > hg
comparison tests/test-help.t @ 29176:8c8442523eef
merge with stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 17 May 2016 11:28:46 -0500 |
parents | 5a3197cbe415 aaabed77791a |
children | 31d3ab7985b8 |
comparison
equal
deleted
inserted
replaced
29175:7bcfb9090c86 | 29176:8c8442523eef |
---|---|
1537 | 1537 |
1538 $ hg help template.files | 1538 $ hg help template.files |
1539 files List of strings. All files modified, added, or removed by | 1539 files List of strings. All files modified, added, or removed by |
1540 this changeset. | 1540 this changeset. |
1541 | 1541 |
1542 Test section lookup by translated message | |
1543 | |
1544 str.lower() instead of encoding.lower(str) on translated message might | |
1545 make message meaningless, because some encoding uses 0x41(A) - 0x5a(Z) | |
1546 as the second or later byte of multi-byte character. | |
1547 | |
1548 For example, "\x8bL\x98^" (translation of "record" in ja_JP.cp932) | |
1549 contains 0x4c (L). str.lower() replaces 0x4c(L) by 0x6c(l) and this | |
1550 replacement makes message meaningless. | |
1551 | |
1552 This tests that section lookup by translated string isn't broken by | |
1553 such str.lower(). | |
1554 | |
1555 $ python <<EOF | |
1556 > def escape(s): | |
1557 > return ''.join('\u%x' % ord(uc) for uc in s.decode('cp932')) | |
1558 > # translation of "record" in ja_JP.cp932 | |
1559 > upper = "\x8bL\x98^" | |
1560 > # str.lower()-ed section name should be treated as different one | |
1561 > lower = "\x8bl\x98^" | |
1562 > with open('ambiguous.py', 'w') as fp: | |
1563 > fp.write("""# ambiguous section names in ja_JP.cp932 | |
1564 > u'''summary of extension | |
1565 > | |
1566 > %s | |
1567 > ---- | |
1568 > | |
1569 > Upper name should show only this message | |
1570 > | |
1571 > %s | |
1572 > ---- | |
1573 > | |
1574 > Lower name should show only this message | |
1575 > | |
1576 > subsequent section | |
1577 > ------------------ | |
1578 > | |
1579 > This should be hidden at "hg help ambiguous" with section name. | |
1580 > ''' | |
1581 > """ % (escape(upper), escape(lower))) | |
1582 > EOF | |
1583 | |
1584 $ cat >> $HGRCPATH <<EOF | |
1585 > [extensions] | |
1586 > ambiguous = ./ambiguous.py | |
1587 > EOF | |
1588 | |
1589 $ python <<EOF | sh | |
1590 > upper = "\x8bL\x98^" | |
1591 > print "hg --encoding cp932 help -e ambiguous.%s" % upper | |
1592 > EOF | |
1593 \x8bL\x98^ (esc) | |
1594 ---- | |
1595 | |
1596 Upper name should show only this message | |
1597 | |
1598 | |
1599 $ python <<EOF | sh | |
1600 > lower = "\x8bl\x98^" | |
1601 > print "hg --encoding cp932 help -e ambiguous.%s" % lower | |
1602 > EOF | |
1603 \x8bl\x98^ (esc) | |
1604 ---- | |
1605 | |
1606 Lower name should show only this message | |
1607 | |
1608 | |
1609 $ cat >> $HGRCPATH <<EOF | |
1610 > [extensions] | |
1611 > ambiguous = ! | |
1612 > EOF | |
1613 | |
1542 Test dynamic list of merge tools only shows up once | 1614 Test dynamic list of merge tools only shows up once |
1543 $ hg help merge-tools | 1615 $ hg help merge-tools |
1544 Merge Tools | 1616 Merge Tools |
1545 """"""""""" | 1617 """"""""""" |
1546 | 1618 |