[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r113960: src/character.c (string_char): Improve comm
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] trunk r113960: src/character.c (string_char): Improve commentary. |
Date: |
Tue, 20 Aug 2013 14:55:54 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 113960
revision-id: address@hidden
parent: address@hidden
author: Kenichi Handa <address@hidden>
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Tue 2013-08-20 17:56:03 +0300
message:
src/character.c (string_char): Improve commentary.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/character.c
character.c-20091113204419-o5vbwnq5f7feedwu-8537
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-08-20 00:51:35 +0000
+++ b/src/ChangeLog 2013-08-20 14:56:03 +0000
@@ -1,3 +1,7 @@
+2013-08-20 Kenichi Handa <address@hidden>
+
+ * character.c (string_char): Improve commentary.
+
2013-08-20 Paul Eggert <address@hidden>
* image.c (SIGNATURE_DIGESTSIZE): Remove.
=== modified file 'src/character.c'
--- a/src/character.c 2013-04-02 01:54:56 +0000
+++ b/src/character.c 2013-08-20 14:56:03 +0000
@@ -174,11 +174,14 @@
if (*p < 0x80 || ! (*p & 0x20) || ! (*p & 0x10))
{
+ /* 1-, 2-, and 3-byte sequences can be handled by the macro. */
c = STRING_CHAR_ADVANCE (p);
}
else if (! (*p & 0x08))
{
- c = ((((p)[0] & 0xF) << 18)
+ /* A 4-byte sequence of this form:
+ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
+ c = ((((p)[0] & 0x7) << 18)
| (((p)[1] & 0x3F) << 12)
| (((p)[2] & 0x3F) << 6)
| ((p)[3] & 0x3F));
@@ -186,7 +189,14 @@
}
else
{
- c = ((((p)[1] & 0x3F) << 18)
+ /* A 5-byte sequence of this form:
+
+ 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
+
+ Note that the top 4 `x's are always 0, so shifting p[1] can
+ never exceed the maximum valid character codepoint. */
+ c = (/* (((p)[0] & 0x3) << 24) ... always 0, so no need to shift. */
+ (((p)[1] & 0x3F) << 18)
| (((p)[2] & 0x3F) << 12)
| (((p)[3] & 0x3F) << 6)
| ((p)[4] & 0x3F));
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r113960: src/character.c (string_char): Improve commentary.,
Eli Zaretskii <=