From f07e82e34bd8a2cc6a76ee94e7d3d9bb52d3a774 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Thu, 29 Apr 2021 20:49:35 +0100 Subject: [PATCH] clarify the charsets of our lexicographic orderings --- proposals/1772-groups-as-rooms.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/proposals/1772-groups-as-rooms.md b/proposals/1772-groups-as-rooms.md index 480383ea..2e801d24 100644 --- a/proposals/1772-groups-as-rooms.md +++ b/proposals/1772-groups-as-rooms.md @@ -115,10 +115,11 @@ relationship can be expressed in one of two ways: The `order` key is a string which is used to provide a default ordering of siblings in the room list. (Rooms are sorted based on a lexicographic - ordering of the characters in `order` values; rooms with no `order` - come last. `order`s which are not strings, or do not consist solely of - ascii characters in the range `\x20` (space) to `\x7F` (`~`), or consist of - more than 50 characters, are forbidden and should be ignored if received.) + ordering of the Unicode codepoints of the characters in `order` values; + rooms with no `order` come last. `order`s which are not strings, or do not + consist solely of ascii characters in the range `\x20` (space) to `\x7F` + (`~`), or consist of more than 50 characters, are forbidden and should be + ignored if received.) 2. Separately, rooms can claim parents via the `m.space.parent` state event. @@ -189,8 +190,9 @@ when a client spots a loop in parent->child or child->parent relationships, it MUST ignore the cycle by cutting it such that the oldest space-room is the root (i.e. oldest parent). 'Oldest' means the room whose `m.room.create` event has the numerically smallest `origin_server_ts`. If the oldest rooms -are precisely the same age, we select the root as the room with the -lexicographically smallest `room_id`. +are precisely the same age, we select the root as the room with the smallest +`room_id` (lexicographically comparing the Unicode code-points of the +`room_id` string). ### Suggested children