Skip to content
Snippets Groups Projects
Commit b74c8b0d authored by George Nachman's avatar George Nachman
Browse files

Use unicode.org's list of IDN characters instead of alphaNumeric characters as...

Use unicode.org's list of IDN characters instead of alphaNumeric characters as the list of legal URL haracters, plus those in settings for various punctuation marks like / which can occur in a URL
parent 90af03c6
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -10,6 +10,454 @@
#import "iTermAdvancedSettingsModel.h"
 
@implementation NSCharacterSet (iTerm)
// Ranges are generated list list_to_range.py and range_to_range.py scripts in the tools folder.
// http://unicode.org/reports/tr36/idn-chars.html
+ (instancetype)idnCharacters {
static dispatch_once_t onceToken;
static NSCharacterSet *idnCharacters;
dispatch_once(&onceToken, ^{
NSMutableCharacterSet *set = [[[NSMutableCharacterSet alloc] init] autorelease];
[set addCharactersInRange:NSMakeRange(0x61, 1)];
[set addCharactersInRange:NSMakeRange(0x27, 1)];
[set addCharactersInRange:NSMakeRange(0x2d, 2)];
[set addCharactersInRange:NSMakeRange(0x30, 11)];
[set addCharactersInRange:NSMakeRange(0x41, 26)];
[set addCharactersInRange:NSMakeRange(0x62, 25)];
[set addCharactersInRange:NSMakeRange(0xa1, 7)];
[set addCharactersInRange:NSMakeRange(0xa9, 6)];
[set addCharactersInRange:NSMakeRange(0xb0, 4)];
[set addCharactersInRange:NSMakeRange(0xb5, 3)];
[set addCharactersInRange:NSMakeRange(0xb9, 360)];
[set addCharactersInRange:NSMakeRange(0x222, 18)];
[set addCharactersInRange:NSMakeRange(0x250, 94)];
[set addCharactersInRange:NSMakeRange(0x2b0, 40)];
[set addCharactersInRange:NSMakeRange(0x2de, 114)];
[set addCharactersInRange:NSMakeRange(0x360, 16)];
[set addCharactersInRange:NSMakeRange(0x374, 2)];
[set addCharactersInRange:NSMakeRange(0x386, 5)];
[set addCharactersInRange:NSMakeRange(0x38c, 1)];
[set addCharactersInRange:NSMakeRange(0x38e, 20)];
[set addCharactersInRange:NSMakeRange(0x3a3, 44)];
[set addCharactersInRange:NSMakeRange(0x3d0, 39)];
[set addCharactersInRange:NSMakeRange(0x400, 135)];
[set addCharactersInRange:NSMakeRange(0x488, 71)];
[set addCharactersInRange:NSMakeRange(0x4d0, 38)];
[set addCharactersInRange:NSMakeRange(0x4f8, 2)];
[set addCharactersInRange:NSMakeRange(0x500, 16)];
[set addCharactersInRange:NSMakeRange(0x531, 38)];
[set addCharactersInRange:NSMakeRange(0x559, 7)];
[set addCharactersInRange:NSMakeRange(0x561, 39)];
[set addCharactersInRange:NSMakeRange(0x589, 2)];
[set addCharactersInRange:NSMakeRange(0x591, 17)];
[set addCharactersInRange:NSMakeRange(0x5a3, 23)];
[set addCharactersInRange:NSMakeRange(0x5bb, 10)];
[set addCharactersInRange:NSMakeRange(0x5d0, 27)];
[set addCharactersInRange:NSMakeRange(0x5f0, 5)];
[set addCharactersInRange:NSMakeRange(0x60c, 1)];
[set addCharactersInRange:NSMakeRange(0x61b, 1)];
[set addCharactersInRange:NSMakeRange(0x61f, 1)];
[set addCharactersInRange:NSMakeRange(0x621, 26)];
[set addCharactersInRange:NSMakeRange(0x640, 22)];
[set addCharactersInRange:NSMakeRange(0x660, 125)];
[set addCharactersInRange:NSMakeRange(0x6de, 16)];
[set addCharactersInRange:NSMakeRange(0x6f0, 15)];
[set addCharactersInRange:NSMakeRange(0x700, 14)];
[set addCharactersInRange:NSMakeRange(0x710, 29)];
[set addCharactersInRange:NSMakeRange(0x730, 27)];
[set addCharactersInRange:NSMakeRange(0x780, 50)];
[set addCharactersInRange:NSMakeRange(0x901, 3)];
[set addCharactersInRange:NSMakeRange(0x905, 53)];
[set addCharactersInRange:NSMakeRange(0x93c, 18)];
[set addCharactersInRange:NSMakeRange(0x950, 5)];
[set addCharactersInRange:NSMakeRange(0x958, 25)];
[set addCharactersInRange:NSMakeRange(0x981, 3)];
[set addCharactersInRange:NSMakeRange(0x985, 8)];
[set addCharactersInRange:NSMakeRange(0x98f, 2)];
[set addCharactersInRange:NSMakeRange(0x993, 22)];
[set addCharactersInRange:NSMakeRange(0x9aa, 7)];
[set addCharactersInRange:NSMakeRange(0x9b2, 1)];
[set addCharactersInRange:NSMakeRange(0x9b6, 4)];
[set addCharactersInRange:NSMakeRange(0x9bc, 1)];
[set addCharactersInRange:NSMakeRange(0x9be, 7)];
[set addCharactersInRange:NSMakeRange(0x9c7, 2)];
[set addCharactersInRange:NSMakeRange(0x9cb, 3)];
[set addCharactersInRange:NSMakeRange(0x9d7, 1)];
[set addCharactersInRange:NSMakeRange(0x9dc, 2)];
[set addCharactersInRange:NSMakeRange(0x9df, 5)];
[set addCharactersInRange:NSMakeRange(0x9e6, 21)];
[set addCharactersInRange:NSMakeRange(0xa02, 1)];
[set addCharactersInRange:NSMakeRange(0xa05, 6)];
[set addCharactersInRange:NSMakeRange(0xa0f, 2)];
[set addCharactersInRange:NSMakeRange(0xa13, 22)];
[set addCharactersInRange:NSMakeRange(0xa2a, 7)];
[set addCharactersInRange:NSMakeRange(0xa32, 2)];
[set addCharactersInRange:NSMakeRange(0xa35, 2)];
[set addCharactersInRange:NSMakeRange(0xa38, 2)];
[set addCharactersInRange:NSMakeRange(0xa3c, 1)];
[set addCharactersInRange:NSMakeRange(0xa3e, 5)];
[set addCharactersInRange:NSMakeRange(0xa47, 2)];
[set addCharactersInRange:NSMakeRange(0xa4b, 3)];
[set addCharactersInRange:NSMakeRange(0xa59, 4)];
[set addCharactersInRange:NSMakeRange(0xa5e, 1)];
[set addCharactersInRange:NSMakeRange(0xa66, 15)];
[set addCharactersInRange:NSMakeRange(0xa81, 3)];
[set addCharactersInRange:NSMakeRange(0xa85, 7)];
[set addCharactersInRange:NSMakeRange(0xa8d, 1)];
[set addCharactersInRange:NSMakeRange(0xa8f, 3)];
[set addCharactersInRange:NSMakeRange(0xa93, 22)];
[set addCharactersInRange:NSMakeRange(0xaaa, 7)];
[set addCharactersInRange:NSMakeRange(0xab2, 2)];
[set addCharactersInRange:NSMakeRange(0xab5, 5)];
[set addCharactersInRange:NSMakeRange(0xabc, 10)];
[set addCharactersInRange:NSMakeRange(0xac7, 3)];
[set addCharactersInRange:NSMakeRange(0xacb, 3)];
[set addCharactersInRange:NSMakeRange(0xad0, 1)];
[set addCharactersInRange:NSMakeRange(0xae0, 1)];
[set addCharactersInRange:NSMakeRange(0xae6, 10)];
[set addCharactersInRange:NSMakeRange(0xb01, 3)];
[set addCharactersInRange:NSMakeRange(0xb05, 8)];
[set addCharactersInRange:NSMakeRange(0xb0f, 2)];
[set addCharactersInRange:NSMakeRange(0xb13, 22)];
[set addCharactersInRange:NSMakeRange(0xb2a, 7)];
[set addCharactersInRange:NSMakeRange(0xb32, 2)];
[set addCharactersInRange:NSMakeRange(0xb36, 4)];
[set addCharactersInRange:NSMakeRange(0xb3c, 8)];
[set addCharactersInRange:NSMakeRange(0xb47, 2)];
[set addCharactersInRange:NSMakeRange(0xb4b, 3)];
[set addCharactersInRange:NSMakeRange(0xb56, 2)];
[set addCharactersInRange:NSMakeRange(0xb5c, 2)];
[set addCharactersInRange:NSMakeRange(0xb5f, 3)];
[set addCharactersInRange:NSMakeRange(0xb66, 11)];
[set addCharactersInRange:NSMakeRange(0xb82, 2)];
[set addCharactersInRange:NSMakeRange(0xb85, 6)];
[set addCharactersInRange:NSMakeRange(0xb8e, 3)];
[set addCharactersInRange:NSMakeRange(0xb92, 4)];
[set addCharactersInRange:NSMakeRange(0xb99, 2)];
[set addCharactersInRange:NSMakeRange(0xb9c, 1)];
[set addCharactersInRange:NSMakeRange(0xb9e, 2)];
[set addCharactersInRange:NSMakeRange(0xba3, 2)];
[set addCharactersInRange:NSMakeRange(0xba8, 3)];
[set addCharactersInRange:NSMakeRange(0xbae, 8)];
[set addCharactersInRange:NSMakeRange(0xbb7, 3)];
[set addCharactersInRange:NSMakeRange(0xbbe, 5)];
[set addCharactersInRange:NSMakeRange(0xbc6, 3)];
[set addCharactersInRange:NSMakeRange(0xbca, 4)];
[set addCharactersInRange:NSMakeRange(0xbd7, 1)];
[set addCharactersInRange:NSMakeRange(0xbe7, 12)];
[set addCharactersInRange:NSMakeRange(0xc01, 3)];
[set addCharactersInRange:NSMakeRange(0xc05, 8)];
[set addCharactersInRange:NSMakeRange(0xc0e, 3)];
[set addCharactersInRange:NSMakeRange(0xc12, 23)];
[set addCharactersInRange:NSMakeRange(0xc2a, 10)];
[set addCharactersInRange:NSMakeRange(0xc35, 5)];
[set addCharactersInRange:NSMakeRange(0xc3e, 7)];
[set addCharactersInRange:NSMakeRange(0xc46, 3)];
[set addCharactersInRange:NSMakeRange(0xc4a, 4)];
[set addCharactersInRange:NSMakeRange(0xc55, 2)];
[set addCharactersInRange:NSMakeRange(0xc60, 2)];
[set addCharactersInRange:NSMakeRange(0xc66, 10)];
[set addCharactersInRange:NSMakeRange(0xc82, 2)];
[set addCharactersInRange:NSMakeRange(0xc85, 8)];
[set addCharactersInRange:NSMakeRange(0xc8e, 3)];
[set addCharactersInRange:NSMakeRange(0xc92, 23)];
[set addCharactersInRange:NSMakeRange(0xcaa, 10)];
[set addCharactersInRange:NSMakeRange(0xcb5, 5)];
[set addCharactersInRange:NSMakeRange(0xcbe, 7)];
[set addCharactersInRange:NSMakeRange(0xcc6, 3)];
[set addCharactersInRange:NSMakeRange(0xcca, 4)];
[set addCharactersInRange:NSMakeRange(0xcd5, 2)];
[set addCharactersInRange:NSMakeRange(0xcde, 1)];
[set addCharactersInRange:NSMakeRange(0xce0, 2)];
[set addCharactersInRange:NSMakeRange(0xce6, 10)];
[set addCharactersInRange:NSMakeRange(0xd02, 2)];
[set addCharactersInRange:NSMakeRange(0xd05, 8)];
[set addCharactersInRange:NSMakeRange(0xd0e, 3)];
[set addCharactersInRange:NSMakeRange(0xd12, 23)];
[set addCharactersInRange:NSMakeRange(0xd2a, 16)];
[set addCharactersInRange:NSMakeRange(0xd3e, 6)];
[set addCharactersInRange:NSMakeRange(0xd46, 3)];
[set addCharactersInRange:NSMakeRange(0xd4a, 4)];
[set addCharactersInRange:NSMakeRange(0xd57, 1)];
[set addCharactersInRange:NSMakeRange(0xd60, 2)];
[set addCharactersInRange:NSMakeRange(0xd66, 10)];
[set addCharactersInRange:NSMakeRange(0xd82, 2)];
[set addCharactersInRange:NSMakeRange(0xd85, 18)];
[set addCharactersInRange:NSMakeRange(0xd9a, 24)];
[set addCharactersInRange:NSMakeRange(0xdb3, 9)];
[set addCharactersInRange:NSMakeRange(0xdbd, 1)];
[set addCharactersInRange:NSMakeRange(0xdc0, 7)];
[set addCharactersInRange:NSMakeRange(0xdca, 1)];
[set addCharactersInRange:NSMakeRange(0xdcf, 6)];
[set addCharactersInRange:NSMakeRange(0xdd6, 1)];
[set addCharactersInRange:NSMakeRange(0xdd8, 8)];
[set addCharactersInRange:NSMakeRange(0xdf2, 3)];
[set addCharactersInRange:NSMakeRange(0xe01, 58)];
[set addCharactersInRange:NSMakeRange(0xe3f, 29)];
[set addCharactersInRange:NSMakeRange(0xe81, 2)];
[set addCharactersInRange:NSMakeRange(0xe84, 1)];
[set addCharactersInRange:NSMakeRange(0xe87, 2)];
[set addCharactersInRange:NSMakeRange(0xe8a, 1)];
[set addCharactersInRange:NSMakeRange(0xe8d, 1)];
[set addCharactersInRange:NSMakeRange(0xe94, 4)];
[set addCharactersInRange:NSMakeRange(0xe99, 7)];
[set addCharactersInRange:NSMakeRange(0xea1, 3)];
[set addCharactersInRange:NSMakeRange(0xea5, 1)];
[set addCharactersInRange:NSMakeRange(0xea7, 1)];
[set addCharactersInRange:NSMakeRange(0xeaa, 2)];
[set addCharactersInRange:NSMakeRange(0xead, 13)];
[set addCharactersInRange:NSMakeRange(0xebb, 3)];
[set addCharactersInRange:NSMakeRange(0xec0, 5)];
[set addCharactersInRange:NSMakeRange(0xec6, 1)];
[set addCharactersInRange:NSMakeRange(0xec8, 6)];
[set addCharactersInRange:NSMakeRange(0xed0, 10)];
[set addCharactersInRange:NSMakeRange(0xedc, 2)];
[set addCharactersInRange:NSMakeRange(0xf00, 72)];
[set addCharactersInRange:NSMakeRange(0xf49, 34)];
[set addCharactersInRange:NSMakeRange(0xf71, 27)];
[set addCharactersInRange:NSMakeRange(0xf90, 8)];
[set addCharactersInRange:NSMakeRange(0xf99, 36)];
[set addCharactersInRange:NSMakeRange(0xfbe, 15)];
[set addCharactersInRange:NSMakeRange(0xfcf, 1)];
[set addCharactersInRange:NSMakeRange(0x1000, 34)];
[set addCharactersInRange:NSMakeRange(0x1023, 5)];
[set addCharactersInRange:NSMakeRange(0x1029, 2)];
[set addCharactersInRange:NSMakeRange(0x102c, 7)];
[set addCharactersInRange:NSMakeRange(0x1036, 4)];
[set addCharactersInRange:NSMakeRange(0x1040, 26)];
[set addCharactersInRange:NSMakeRange(0x10a0, 38)];
[set addCharactersInRange:NSMakeRange(0x10d0, 41)];
[set addCharactersInRange:NSMakeRange(0x10fb, 1)];
[set addCharactersInRange:NSMakeRange(0x1200, 7)];
[set addCharactersInRange:NSMakeRange(0x1208, 63)];
[set addCharactersInRange:NSMakeRange(0x1248, 1)];
[set addCharactersInRange:NSMakeRange(0x124a, 4)];
[set addCharactersInRange:NSMakeRange(0x1250, 7)];
[set addCharactersInRange:NSMakeRange(0x1258, 1)];
[set addCharactersInRange:NSMakeRange(0x125a, 4)];
[set addCharactersInRange:NSMakeRange(0x1260, 39)];
[set addCharactersInRange:NSMakeRange(0x1288, 1)];
[set addCharactersInRange:NSMakeRange(0x128a, 4)];
[set addCharactersInRange:NSMakeRange(0x1290, 31)];
[set addCharactersInRange:NSMakeRange(0x12b0, 1)];
[set addCharactersInRange:NSMakeRange(0x12b2, 4)];
[set addCharactersInRange:NSMakeRange(0x12b8, 7)];
[set addCharactersInRange:NSMakeRange(0x12c0, 1)];
[set addCharactersInRange:NSMakeRange(0x12c2, 4)];
[set addCharactersInRange:NSMakeRange(0x12c8, 7)];
[set addCharactersInRange:NSMakeRange(0x12d0, 7)];
[set addCharactersInRange:NSMakeRange(0x12d8, 23)];
[set addCharactersInRange:NSMakeRange(0x12f0, 31)];
[set addCharactersInRange:NSMakeRange(0x1310, 1)];
[set addCharactersInRange:NSMakeRange(0x1312, 4)];
[set addCharactersInRange:NSMakeRange(0x1318, 7)];
[set addCharactersInRange:NSMakeRange(0x1320, 39)];
[set addCharactersInRange:NSMakeRange(0x1348, 19)];
[set addCharactersInRange:NSMakeRange(0x1361, 28)];
[set addCharactersInRange:NSMakeRange(0x13a0, 85)];
[set addCharactersInRange:NSMakeRange(0x1401, 630)];
[set addCharactersInRange:NSMakeRange(0x1681, 28)];
[set addCharactersInRange:NSMakeRange(0x16a0, 81)];
[set addCharactersInRange:NSMakeRange(0x1700, 13)];
[set addCharactersInRange:NSMakeRange(0x170e, 7)];
[set addCharactersInRange:NSMakeRange(0x1720, 23)];
[set addCharactersInRange:NSMakeRange(0x1740, 20)];
[set addCharactersInRange:NSMakeRange(0x1760, 13)];
[set addCharactersInRange:NSMakeRange(0x176e, 3)];
[set addCharactersInRange:NSMakeRange(0x1772, 2)];
[set addCharactersInRange:NSMakeRange(0x1780, 93)];
[set addCharactersInRange:NSMakeRange(0x17e0, 10)];
[set addCharactersInRange:NSMakeRange(0x1800, 14)];
[set addCharactersInRange:NSMakeRange(0x1810, 10)];
[set addCharactersInRange:NSMakeRange(0x1820, 88)];
[set addCharactersInRange:NSMakeRange(0x1880, 42)];
[set addCharactersInRange:NSMakeRange(0x1e00, 156)];
[set addCharactersInRange:NSMakeRange(0x1ea0, 90)];
[set addCharactersInRange:NSMakeRange(0x1f00, 22)];
[set addCharactersInRange:NSMakeRange(0x1f18, 6)];
[set addCharactersInRange:NSMakeRange(0x1f20, 38)];
[set addCharactersInRange:NSMakeRange(0x1f48, 6)];
[set addCharactersInRange:NSMakeRange(0x1f50, 8)];
[set addCharactersInRange:NSMakeRange(0x1f59, 1)];
[set addCharactersInRange:NSMakeRange(0x1f5b, 1)];
[set addCharactersInRange:NSMakeRange(0x1f5d, 1)];
[set addCharactersInRange:NSMakeRange(0x1f5f, 31)];
[set addCharactersInRange:NSMakeRange(0x1f80, 53)];
[set addCharactersInRange:NSMakeRange(0x1fb6, 7)];
[set addCharactersInRange:NSMakeRange(0x1fbe, 1)];
[set addCharactersInRange:NSMakeRange(0x1fc2, 3)];
[set addCharactersInRange:NSMakeRange(0x1fc6, 7)];
[set addCharactersInRange:NSMakeRange(0x1fd0, 4)];
[set addCharactersInRange:NSMakeRange(0x1fd6, 6)];
[set addCharactersInRange:NSMakeRange(0x1fe0, 13)];
[set addCharactersInRange:NSMakeRange(0x1ff2, 3)];
[set addCharactersInRange:NSMakeRange(0x1ff6, 7)];
[set addCharactersInRange:NSMakeRange(0x200b, 3)];
[set addCharactersInRange:NSMakeRange(0x2010, 7)];
[set addCharactersInRange:NSMakeRange(0x2018, 12)];
[set addCharactersInRange:NSMakeRange(0x2027, 1)];
[set addCharactersInRange:NSMakeRange(0x2030, 12)];
[set addCharactersInRange:NSMakeRange(0x203d, 1)];
[set addCharactersInRange:NSMakeRange(0x203f, 8)];
[set addCharactersInRange:NSMakeRange(0x204a, 9)];
[set addCharactersInRange:NSMakeRange(0x2057, 1)];
[set addCharactersInRange:NSMakeRange(0x2060, 1)];
[set addCharactersInRange:NSMakeRange(0x2070, 2)];
[set addCharactersInRange:NSMakeRange(0x2074, 6)];
[set addCharactersInRange:NSMakeRange(0x207b, 1)];
[set addCharactersInRange:NSMakeRange(0x207f, 11)];
[set addCharactersInRange:NSMakeRange(0x208b, 1)];
[set addCharactersInRange:NSMakeRange(0x20a0, 18)];
[set addCharactersInRange:NSMakeRange(0x20d0, 27)];
[set addCharactersInRange:NSMakeRange(0x2100, 59)];
[set addCharactersInRange:NSMakeRange(0x213d, 15)];
[set addCharactersInRange:NSMakeRange(0x2153, 49)];
[set addCharactersInRange:NSMakeRange(0x2190, 575)];
[set addCharactersInRange:NSMakeRange(0x2400, 39)];
[set addCharactersInRange:NSMakeRange(0x2440, 11)];
[set addCharactersInRange:NSMakeRange(0x2460, 20)];
[set addCharactersInRange:NSMakeRange(0x24b6, 73)];
[set addCharactersInRange:NSMakeRange(0x2500, 276)];
[set addCharactersInRange:NSMakeRange(0x2616, 2)];
[set addCharactersInRange:NSMakeRange(0x2619, 101)];
[set addCharactersInRange:NSMakeRange(0x2680, 10)];
[set addCharactersInRange:NSMakeRange(0x2701, 4)];
[set addCharactersInRange:NSMakeRange(0x2706, 4)];
[set addCharactersInRange:NSMakeRange(0x270c, 28)];
[set addCharactersInRange:NSMakeRange(0x2729, 35)];
[set addCharactersInRange:NSMakeRange(0x274d, 1)];
[set addCharactersInRange:NSMakeRange(0x274f, 4)];
[set addCharactersInRange:NSMakeRange(0x2756, 1)];
[set addCharactersInRange:NSMakeRange(0x2758, 7)];
[set addCharactersInRange:NSMakeRange(0x2761, 52)];
[set addCharactersInRange:NSMakeRange(0x2798, 24)];
[set addCharactersInRange:NSMakeRange(0x27b1, 14)];
[set addCharactersInRange:NSMakeRange(0x27d0, 28)];
[set addCharactersInRange:NSMakeRange(0x27f0, 644)];
[set addCharactersInRange:NSMakeRange(0x2a77, 137)];
[set addCharactersInRange:NSMakeRange(0x2e80, 26)];
[set addCharactersInRange:NSMakeRange(0x2e9b, 89)];
[set addCharactersInRange:NSMakeRange(0x3001, 32)];
[set addCharactersInRange:NSMakeRange(0x302a, 14)];
[set addCharactersInRange:NSMakeRange(0x303b, 5)];
[set addCharactersInRange:NSMakeRange(0x3041, 86)];
[set addCharactersInRange:NSMakeRange(0x3099, 2)];
[set addCharactersInRange:NSMakeRange(0x309d, 99)];
[set addCharactersInRange:NSMakeRange(0x3105, 40)];
[set addCharactersInRange:NSMakeRange(0x3190, 40)];
[set addCharactersInRange:NSMakeRange(0x31f0, 16)];
[set addCharactersInRange:NSMakeRange(0x3251, 15)];
[set addCharactersInRange:NSMakeRange(0x327f, 77)];
[set addCharactersInRange:NSMakeRange(0x32d0, 47)];
[set addCharactersInRange:NSMakeRange(0x3300, 119)];
[set addCharactersInRange:NSMakeRange(0x337b, 71)];
[set addCharactersInRange:NSMakeRange(0x33c3, 4)];
[set addCharactersInRange:NSMakeRange(0x33c8, 16)];
[set addCharactersInRange:NSMakeRange(0x33d9, 5)];
[set addCharactersInRange:NSMakeRange(0x33e0, 31)];
[set addCharactersInRange:NSMakeRange(0xa000, 1165)];
[set addCharactersInRange:NSMakeRange(0xa490, 55)];
[set addCharactersInRange:NSMakeRange(0xa700, 23)];
[set addCharactersInRange:NSMakeRange(0xfa10, 3)];
[set addCharactersInRange:NSMakeRange(0xfa1f, 4)];
[set addCharactersInRange:NSMakeRange(0xfb00, 7)];
[set addCharactersInRange:NSMakeRange(0xfb13, 5)];
[set addCharactersInRange:NSMakeRange(0xfb1e, 1)];
[set addCharactersInRange:NSMakeRange(0xfb20, 9)];
[set addCharactersInRange:NSMakeRange(0xfb4f, 99)];
[set addCharactersInRange:NSMakeRange(0xfbd3, 136)];
[set addCharactersInRange:NSMakeRange(0xfc64, 44)];
[set addCharactersInRange:NSMakeRange(0xfc91, 72)];
[set addCharactersInRange:NSMakeRange(0xfcda, 24)];
[set addCharactersInRange:NSMakeRange(0xfcf5, 71)];
[set addCharactersInRange:NSMakeRange(0xfd3e, 2)];
[set addCharactersInRange:NSMakeRange(0xfd50, 64)];
[set addCharactersInRange:NSMakeRange(0xfd92, 54)];
[set addCharactersInRange:NSMakeRange(0xfdf0, 10)];
[set addCharactersInRange:NSMakeRange(0xfdfc, 1)];
[set addCharactersInRange:NSMakeRange(0xfe00, 16)];
[set addCharactersInRange:NSMakeRange(0xfe20, 4)];
[set addCharactersInRange:NSMakeRange(0xfe31, 2)];
[set addCharactersInRange:NSMakeRange(0xfe39, 14)];
[set addCharactersInRange:NSMakeRange(0xfe51, 1)];
[set addCharactersInRange:NSMakeRange(0xfe58, 1)];
[set addCharactersInRange:NSMakeRange(0xfe5d, 2)];
[set addCharactersInRange:NSMakeRange(0xfe73, 1)];
[set addCharactersInRange:NSMakeRange(0xfe80, 125)];
[set addCharactersInRange:NSMakeRange(0xfeff, 1)];
[set addCharactersInRange:NSMakeRange(0xff10, 10)];
[set addCharactersInRange:NSMakeRange(0xff21, 26)];
[set addCharactersInRange:NSMakeRange(0xff41, 26)];
[set addCharactersInRange:NSMakeRange(0xff5f, 65)];
[set addCharactersInRange:NSMakeRange(0xffe0, 3)];
[set addCharactersInRange:NSMakeRange(0xffe4, 3)];
[set addCharactersInRange:NSMakeRange(0xffe8, 7)];
[set addCharactersInRange:NSMakeRange(0x10300, 31)];
[set addCharactersInRange:NSMakeRange(0x10320, 4)];
[set addCharactersInRange:NSMakeRange(0x10330, 27)];
[set addCharactersInRange:NSMakeRange(0x10400, 38)];
[set addCharactersInRange:NSMakeRange(0x10428, 38)];
[set addCharactersInRange:NSMakeRange(0x1d000, 246)];
[set addCharactersInRange:NSMakeRange(0x1d100, 39)];
[set addCharactersInRange:NSMakeRange(0x1d12a, 73)];
[set addCharactersInRange:NSMakeRange(0x1d17b, 99)];
[set addCharactersInRange:NSMakeRange(0x1d400, 85)];
[set addCharactersInRange:NSMakeRange(0x1d456, 71)];
[set addCharactersInRange:NSMakeRange(0x1d49e, 2)];
[set addCharactersInRange:NSMakeRange(0x1d4a2, 1)];
[set addCharactersInRange:NSMakeRange(0x1d4a5, 2)];
[set addCharactersInRange:NSMakeRange(0x1d4a9, 4)];
[set addCharactersInRange:NSMakeRange(0x1d4ae, 12)];
[set addCharactersInRange:NSMakeRange(0x1d4bb, 1)];
[set addCharactersInRange:NSMakeRange(0x1d4bd, 4)];
[set addCharactersInRange:NSMakeRange(0x1d4c2, 2)];
[set addCharactersInRange:NSMakeRange(0x1d4c5, 65)];
[set addCharactersInRange:NSMakeRange(0x1d507, 4)];
[set addCharactersInRange:NSMakeRange(0x1d50d, 8)];
[set addCharactersInRange:NSMakeRange(0x1d516, 7)];
[set addCharactersInRange:NSMakeRange(0x1d51e, 28)];
[set addCharactersInRange:NSMakeRange(0x1d53b, 4)];
[set addCharactersInRange:NSMakeRange(0x1d540, 5)];
[set addCharactersInRange:NSMakeRange(0x1d546, 1)];
[set addCharactersInRange:NSMakeRange(0x1d54a, 7)];
[set addCharactersInRange:NSMakeRange(0x1d552, 338)];
[set addCharactersInRange:NSMakeRange(0x1d6a8, 290)];
[set addCharactersInRange:NSMakeRange(0x1d7ce, 50)];
[set addCharactersInRange:NSMakeRange(0x1100, 90)];
[set addCharactersInRange:NSMakeRange(0x115f, 68)];
[set addCharactersInRange:NSMakeRange(0x11a8, 82)];
[set addCharactersInRange:NSMakeRange(0xac00, 11172)];
[set addCharactersInRange:NSMakeRange(0x3131, 94)];
[set addCharactersInRange:NSMakeRange(0x3260, 28)];
[set addCharactersInRange:NSMakeRange(0xffa0, 31)];
[set addCharactersInRange:NSMakeRange(0xffc2, 6)];
[set addCharactersInRange:NSMakeRange(0xffca, 6)];
[set addCharactersInRange:NSMakeRange(0xffd2, 6)];
[set addCharactersInRange:NSMakeRange(0xffda, 3)];
[set addCharactersInRange:NSMakeRange(0x3021, 9)];
[set addCharactersInRange:NSMakeRange(0x3400, 6582)];
[set addCharactersInRange:NSMakeRange(0x4e00, 20902)];
[set addCharactersInRange:NSMakeRange(0xfa0e, 2)];
[set addCharactersInRange:NSMakeRange(0xfa13, 2)];
[set addCharactersInRange:NSMakeRange(0xfa23, 2)];
[set addCharactersInRange:NSMakeRange(0xfa27, 3)];
[set addCharactersInRange:NSMakeRange(0x20000, 42711)];
[set addCharactersInRange:NSMakeRange(0x2e80, 26)];
[set addCharactersInRange:NSMakeRange(0x2e9b, 4)];
[set addCharactersInRange:NSMakeRange(0x2ea0, 83)];
[set addCharactersInRange:NSMakeRange(0x2f00, 214)];
[set addCharactersInRange:NSMakeRange(0x3038, 3)];
[set addCharactersInRange:NSMakeRange(0xf900, 270)];
[set addCharactersInRange:NSMakeRange(0xfa15, 10)];
[set addCharactersInRange:NSMakeRange(0xfa25, 2)];
[set addCharactersInRange:NSMakeRange(0xfa2a, 4)];
[set addCharactersInRange:NSMakeRange(0xfa30, 59)];
[set addCharactersInRange:NSMakeRange(0x2f800, 542)];
idnCharacters = [set copy];
});
return idnCharacters;
}
 
+ (instancetype)fullWidthCharacterSetForUnicodeVersion:(NSInteger)version {
static NSMutableCharacterSet *sFullWidth8;
Loading
Loading
@@ -707,12 +1155,13 @@
 
+ (NSCharacterSet *)urlCharacterSet {
static NSMutableCharacterSet* urlChars;
if (!urlChars) {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *chars = [iTermAdvancedSettingsModel URLCharacterSet];
urlChars = [[NSMutableCharacterSet characterSetWithCharactersInString:chars] retain];
[urlChars formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];
[urlChars formUnionWithCharacterSet:[NSCharacterSet idnCharacters]];
[urlChars retain];
}
});
 
return urlChars;
}
Loading
Loading
#!/usr/bin/python
import itertools
def get_ranges(i):
for a, b in itertools.groupby(enumerate(i), lambda (x, y): y - x):
b = list(b)
yield b[0][1], b[-1][1]
contents = []
while True:
try:
line = raw_input("")
except EOFError:
break
contents.append(line)
numbers = map(lambda x: int(x, 16), contents)
for x in get_ranges(numbers):
print "[set addCharactersInRange:NSMakeRange(%s, %s)];" % (hex(x[0]), str(x[1] - x[0] + 1))
#!/usr/bin/python
import itertools
def get_ranges(i):
for a, b in itertools.groupby(enumerate(i), lambda (x, y): y - x):
b = list(b)
yield b[0][1], b[-1][1]
contents = []
while True:
try:
line = raw_input("").split(" ")
except EOFError:
break
contents.append(line)
for tuple in contents:
min = int(tuple[0], 16)
max = int(tuple[1], 16)
print "[set addCharactersInRange:NSMakeRange(%s, %s)];" % (hex(min), str(max - min + 1))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment