Skip to content

Instantly share code, notes, and snippets.

@YujiSODE
Last active September 1, 2017 13:14
Show Gist options
  • Save YujiSODE/c47df3cf12a6448c8097628951ace4d4 to your computer and use it in GitHub Desktop.
Save YujiSODE/c47df3cf12a6448c8097628951ace4d4 to your computer and use it in GitHub Desktop.
It returns Unicode character table in hexadecimals. It requires Tcl 8.6+.
#unicodeHexTable
#unicodeHexTable.tcl
##===================================================================
# Copyright (c) 2017 Yuji SODE <yuji.sode@gmail.com>
#
# This software is released under the MIT License.
##===================================================================
#It returns Unicode character table in hexadecimals, based on the Unicode Standard Version 10.0.0.
#It requires Tcl 8.6+.
#== Parameters ==
# - hex: hexadecimal number without "0x"
# - hex0: default value is 0; hexadecimal number without "0x"
#== Returned value ==
# - list of {U+hh ... :[character]}
##===================================================================
proc getHexTable {hex {hex0 0}} {
set table {};
set v0_1 [subst "0x$hex0"];
set v0_2 [subst "0x$hex"];
#$v1<=$v2
set v1 [expr {$v0_1>$v0_2?$v0_2:$v0_1}];
set v2 [expr {$v0_1>$v0_2?$v0_1:$v0_2}];
while {$v1<[expr {$v2+1}]} {
set h [format %x $v1];
lappend table "U+$h:\[[subst "\\U$h"]\]";
incr v1 1;
};
#returned value is list of {U+hh ... :[character]}
return $table;
};
# MIT License
#
# Copyright (c) 2017 Yuji Sode
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment