From 61a8a28f9ff10aed41b1ee5c58df827db6b87d7c Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Mon, 13 Oct 2014 13:51:43 +0100 Subject: [PATCH] Include the Unicode version used to generate `src/libunicode/tables.rs`. --- src/etc/unicode.py | 9 +++++++++ src/libunicode/lib.rs | 1 + src/libunicode/tables.rs | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/src/etc/unicode.py b/src/etc/unicode.py index 0b128686690f0..d3de1d2b64e0a 100755 --- a/src/etc/unicode.py +++ b/src/etc/unicode.py @@ -604,6 +604,15 @@ def optimize_width_table(wtable): rf.write(preamble) # download and parse all the data + fetch("ReadMe.txt") + with open("ReadMe.txt") as readme: + pattern = "for Version (\d+)\.(\d+)\.(\d+) of the Unicode" + unicode_version = re.search(pattern, readme.read()).groups() + rf.write(""" +/// The version of [Unicode](http://www.unicode.org/) +/// that the `UnicodeChar` and `UnicodeStrSlice` traits are based on. +pub const UNICODE_VERSION: (uint, uint, uint) = (%s, %s, %s); +""" % unicode_version) (canon_decomp, compat_decomp, gencats, combines, lowerupper, upperlower) = load_unicode_data("UnicodeData.txt") want_derived = ["XID_Start", "XID_Continue", "Alphabetic", "Lowercase", "Uppercase"] diff --git a/src/libunicode/lib.rs b/src/libunicode/lib.rs index 2918bad03df29..b84aec77a09c3 100644 --- a/src/libunicode/lib.rs +++ b/src/libunicode/lib.rs @@ -64,6 +64,7 @@ pub mod char { pub use normalize::{decompose_canonical, decompose_compatible, compose}; pub use tables::normalization::canonical_combining_class; + pub use tables::UNICODE_VERSION; pub use u_char::{is_alphabetic, is_XID_start, is_XID_continue}; pub use u_char::{is_lowercase, is_uppercase, is_whitespace}; diff --git a/src/libunicode/tables.rs b/src/libunicode/tables.rs index e359883295f42..3f15abcad6dcd 100644 --- a/src/libunicode/tables.rs +++ b/src/libunicode/tables.rs @@ -12,6 +12,10 @@ #![allow(missing_doc, non_uppercase_statics, non_snake_case)] +/// The version of [Unicode](http://www.unicode.org/) +/// that the `UnicodeChar` and `UnicodeStrSlice` traits are based on. +pub const UNICODE_VERSION: (uint, uint, uint) = (7, 0, 0); + fn bsearch_range_table(c: char, r: &'static [(char,char)]) -> bool { use core::cmp::{Equal, Less, Greater}; use core::slice::ImmutableSlice;