digitalmars.D - Submission: updated std.uni module
- =?ISO-8859-1?Q?Thomas_K=FChne?= (293/293) Feb 24 2006 boundary="------------090801030300020406000706"
- Chris Miller (3/4) Feb 24 2006 I didn't even know std.uni existed; I could use such functions it provid...
- Thomas Kuehne (27/36) Feb 24 2006 -----BEGIN PGP SIGNED MESSAGE-----
boundary="------------090801030300020406000706" This is a multi-part message in MIME format. --------------090801030300020406000706 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Attached is an updated std.uni module. publicly visible changes: 1) updated casing and isUniAlpha data to Unicode 5.0.0 2) added "dchar[] toUniLower(dchar[])" and "dchar[] toUniUpper(dchar[])" in order to handle cases like toUniUpper("\u00DF") -> "SS" internal changes: 3) use AAs instead of hardcoded IFs for upper and lower casing (I might expand the extractor to hardcode IFs, if anybody experiences serious performance degration.) Thomas --------------090801030300020406000706 Content-Type: application/octet-stream; name="std_uni.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="std_uni.zip" UEsDBBQAAgAIAG9mWDSHL6daiDgAALUCAQAFABUAdW5pLmRVVAkAA0Hz/kNB8/5DVXgEAOgD ZADMXF2P3EZ2fZZ+BaGHtSTIclfVLX7IUQKyWAUI6wABHGOBePXQ6qY0ne3pnvSHZG2w+WV5 yx9LkTPDQx6y3cbCCGIYdk+f6mKde6rIe1iX/O7ly6dJ+2/y42m5Wy8P6+Ob5KfdZrVfN4l9 vXi9SJ7/eNesNsutWx43u0/fdl+u81ePrerlafnwpVq8eOjsh82q2R2bN8lft5sP7Rfl+XSz P8S+/7TcnppDUh02n25Or5J/vdnfLo/JH//nv292zcOP/3m5OuyPb9qP3T9/evfHd8nbOMB1 PGT89runT7/rGiZuf/e16yh57l503zzRi4VNvhw2p1OzSz58HR8vNmkbpMntfr35uGnWbYvH IZwbDCF+uTkmx/3H05floUni57vD/vNmHX/xzfL47eb4zavkyyZSOp+S5e5r0vxyd2iOx2R/ SDa3d9vYc9dL/PFhuTt9fZ282yW7fdJ8bnan+MPtNjndNMnyPijJhya5abbrZLtZftg2ycfY S9vpenm7/NQcu56Wh00b/eTjYX/b/fZ8bJL9x/hxMM7Xj6P/l+ZwuzkeN/tdO/RP7RjiyE/7 ttv9rmk/tb8f/bg/7N35cLc/Nq+6nja71fa8bo+82t/eNod2IiTLu0hxtTzF/o+v4m/uu+7i vDl1fx+a9eZ4Omw+nE8xeqeuq4+Hptl+fZUczx/+vVmd2t+0RD7ut9v9l/YIMYLxJ6uu2zeP VPatFpFq1G+zmzBObs/HU4zsqY1hpHxoWh2alu73ydf9uccfJ9Nqu9y0AVyeOvjLYX9qumHc HyCS64OZvPvYtZlE6rGvOJ5lOy/W59WpDUOyXP1lt/+ybdafbludI972/NAiWe9X5/b7Lm7J l/05Kv6h7yzG9NAus1aoGLVWt5bWofmP8yZG8/VjMMo2zLHNcX8+rJrkc3NoZT7eE41BuIsE d9uvye3y8JfYLE7s43l1c68SB2MSs7b5h6bVYj4kUOR+eHGVxwN9fRTg0NzuP8de2on0MMxu vraz6n68j0fuZ0cc++v7JR2X5DlO/uNp/fq823wf1/h33yXn3Wq/W2/aZnEc57u7OMVWy2N7 1Lu7OM7j07vD5nMMWrJe3SwPP7//ufv/+/ums53EyfZbO+matp10J8l4ttnFcJ+SdugxRJvd 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 GqIYj+DG+HwKyyBsKpRBGM4LhUG4nMKGc57xy/5lELpT6AbhrEL4PnsR21PYEF6d5/S2QuhO ocPh3p9CiUN0dgpXdN6vCtPn4fB8BnIlDJGcHi7D4XIGcxLHCEyDGD8hsJEel00OwvkUdiPe vTB1w0x/f2XLOZ4FP57796jCaRBOp3B2EB6zufsXGYRZhej89r2qsD8VbDmDpOK7l2HLiahI wDklTCpc4VfKWk9hgzA6FSKe3b6HUzgNwvUUDuc8+ykJnZfjveXTl0FYVAiKt+96oWAwyEFN sYT+MNq/6+HBAmaw0ynMg1C7FDy6FNRnL6FP8G/fNWwrQYZzynlOmQahshn668D9uw7dFNH5 SecCytx/B9z5ZHj6cgrjdHikT19OYTsdlxa7D9fOw9v2r4xPm3O6Yhc/vcf+7qvnT58/vPz9 x5+evv35+bMff373+PTp7fjj64f5avv43fEG/LdvXr796cOrTfL55589f7Y13Y948f79y3cf Pj3ekb/+7lvz3eN3Xz/6n/a7z746Gr7+cTstnevxDw/72aHeTvdsbzIc+fimn+jx+cPu594a P7X+w7uthz9++qtD/esfnpp//fjTr//0xQMyo7J/e/urLx6vvxh7tf29n/OL2wW23j5jTNu5 f/dLDfee/PX5s78+P748P2F+fHyjP2iPv//7x8ft4ONHZ+v9Tz9/+PnxT6/fv/35gw7+l18+ 0uu3L9795+P9yxfvvn/1JPy4E/Dvr3/4Cn+9+fmPw1+vXv/0Sk+wKZ6Yevpjlz++vg3yofzj q9dvXj4+3Q/YONqbfnayvl1rO+xJ9fmheXzzzX7cswPQiX9rpzwMV9sPfrrIs5dv3r/sQzAc Yc8jjs7uB3zeDzg058h8dY7mMUr/+P9locBwWOlf/vJAJ7ulnlzu/787cki2kd378n/viI7L 15duHAZyvWM2E9Rr26cunQZpPvvq2bPNXt6/+vnjmx8er178x8vH71++fPt4/fY4/t55+5Qz 899QSwECFwMUAAIACABvZlg0hy+nWog4AAC1AgEABQANAAAAAAABAAAApIEAAAAAdW5pLmRV VAUAA0Hz/kNVeAAAUEsFBgAAAAABAAEAQAAAAMA4AAAAAA== --------------090801030300020406000706--
Feb 24 2006
On Fri, 24 Feb 2006 05:58:39 -0500, Thomas Kühne <thomas-dloop kuehne.cn> wrote:Attached is an updated std.uni module.I didn't even know std.uni existed; I could use such functions it provides.
Feb 24 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Thomas Kühne schrieb am 2006-02-24:Attached is an updated std.uni module. publicly visible changes: 1) updated casing and isUniAlpha data to Unicode 5.0.0 2) added "dchar[] toUniLower(dchar[])" and "dchar[] toUniUpper(dchar[])" in order to handle cases like toUniUpper("\u00DF") -> "SS" internal changes: 3) use AAs instead of hardcoded IFs for upper and lower casing (I might expand the extractor to hardcode IFs, if anybody experiences serious performance degration.)Unicode seems sometimes to be a collection of special cases ;) Forgot to add: The following characters aren't mapped correctly. format: character (condition) GREEK CAPITAL LETTER SIGMA (Final_Sigma) ==Lithuanian locale== COMBINING DOT ABOVE (After_Soft_Dotted) LATIN CAPITAL LETTER I (More_Above) LATIN CAPITAL LETTER J (More_Above) LATIN CAPITAL LETTER I WITH OGONEK (More_Above) LATIN CAPITAL LETTER I WITH GRAVE LATIN CAPITAL LETTER I WITH ACUTE LATIN CAPITAL LETTER I WITH TILDE ==Turkish and Azeri locale== LATIN CAPITAL LETTER I WITH DOT ABOVE COMBINING DOT ABOVE (After_I) LATIN CAPITAL LETTER I (Not_Before_Dot) LATIN SMALL LETTER I Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/yRl3w+/yD4P9tIRAoZMAJ9zgOksEiMjo083zSqShy98su4F8wCdGFZ/ LUq9xcrXIpRX5rs0IKXUKEg= =NEac -----END PGP SIGNATURE-----
Feb 24 2006