Attachment "stringprep.diff" to
ticket [2890065fff]
added by
teopetuk
2009-11-01 03:07:50.
? stringprep.diff
Index: modules/stringprep/stringprep.tcl
===================================================================
RCS file: /cvsroot/tcllib/tcllib/modules/stringprep/stringprep.tcl,v
retrieving revision 1.1
diff -u -r1.1 stringprep.tcl
--- modules/stringprep/stringprep.tcl 29 Jan 2008 02:18:10 -0000 1.1
+++ modules/stringprep/stringprep.tcl 31 Oct 2009 19:52:03 -0000
@@ -25,7 +25,7 @@
array set props [list -mapping "" \
-normalization "" \
- -prohibited "" \
+ -prohibited 0 \
-prohibitedList {} \
-prohibitedCommand "" \
-prohibitedBidi 0]
@@ -253,6 +253,8 @@
return 0
}
+ set info [data::GetUniCharInfo [lindex $uclist 0]]
+ set first_ral [expr {$info & $data::D1Mask}]
set last_ral 0
set have_ral 0
set have_l 0
@@ -260,7 +262,7 @@
set info [data::GetUniCharInfo $uc]
set last_ral [expr {$info & $data::D1Mask}]
set have_ral [expr {$have_ral || $last_ral}]
- set have_l [expr {$info & $data::D2Mask}]
+ set have_l [expr {$have_l || ($info & $data::D2Mask)}]
}
if {$have_ral && (!$first_ral || !$last_ral || $have_l)} {
return 1
Index: modules/stringprep/stringprep.test
===================================================================
RCS file: /cvsroot/tcllib/tcllib/modules/stringprep/stringprep.test,v
retrieving revision 1.2
diff -u -r1.2 stringprep.test
--- modules/stringprep/stringprep.test 7 Mar 2008 05:45:10 -0000 1.2
+++ modules/stringprep/stringprep.test 31 Oct 2009 19:52:03 -0000
@@ -86,10 +86,10 @@
set result
} {prohibited_character}
-test stringprep-2.3 {stringprep: prohibited bidi} knownBug {
+test stringprep-2.3 {stringprep: prohibited bidi} {
catch {::stringprep::stringprep nameprep "\u0627\u0031"} result
set result
-} {invalid_bidi}
+} {prohibited_bidi}
# -------------------------------------------------------------------------
@@ -106,11 +106,14 @@
{ "Case folding 8bit U+00DF (german sharp s)" "\xC3\x9F" "ss" }
{ "Case folding U+0130 (turkish capital I with dot)" "\xC4\xB0" "i\xcc\x87" }
{ "Case folding multibyte U+0143 U+037A" "\xC5\x83\xCD\xBA" "\xC5\x84 \xCE\xB9" }
- { "Case folding U+2121 U+33C6 U+1D7BB" "\xE2\x84\xA1\xE3\x8F\x86\xF0\x9D\x9E\xBB"
+ { "Case folding U+2121 U+33C6 U+1D7BB (Tcl cannot represent U+1D7BB)"
+ "\xE2\x84\xA1\xE3\x8F\x86\xF0\x9D\x9E\xBB"
"telc\xE2\x88\x95kg\xCF\x83" }
{ "Normalization of U+006a U+030c U+00A0 U+00AA" "\x6A\xCC\x8C\xC2\xA0\xC2\xAA"
"\xC7\xB0 a" }
{ "Case folding U+1FB7 and normalization" "\xE1\xBE\xB7" "\xE1\xBE\xB6\xCE\xB9" }
+ { "Case folding U+2121 U+33C6" "\xE2\x84\xA1\xE3\x8F\x86"
+ "telc\xE2\x88\x95kg" }
}
set id 0
@@ -147,17 +150,11 @@
4 "\u00AA" {0 a} "output is NFKC, input in ISO 8859-1"
5 "\u2168" {0 IX} "output is NFKC, will match #1"
6 "\u0007" {1 prohibited_character} "Error - prohibited character"
- 7 "\u0627\u0031" {1 invalid_bidi} "Error - bidirectional check"
+ 7 "\u0627\u0031" {1 prohibited_bidi} "Error - bidirectional check"
} {
- if {$n == 7} {
- test saslprep-1.$n $title knownBug {
- list [catch {::stringprep::stringprep saslprep $input} res] $res
- } $result
- } else {
- test saslprep-1.$n $title {
- list [catch {::stringprep::stringprep saslprep $input} res] $res
- } $result
- }
+ test saslprep-1.$n $title {
+ list [catch {::stringprep::stringprep saslprep $input} res] $res
+ } $result
}
# -------------------------------------------------------------------------
Index: modules/stringprep/stringprep_data.tcl
===================================================================
RCS file: /cvsroot/tcllib/tcllib/modules/stringprep/stringprep_data.tcl,v
retrieving revision 1.1
diff -u -r1.1 stringprep_data.tcl
--- modules/stringprep/stringprep_data.tcl 29 Jan 2008 02:18:10 -0000 1.1
+++ modules/stringprep/stringprep_data.tcl 31 Oct 2009 19:52:05 -0000
@@ -6,12 +6,9 @@
#
# Copyright (c) 1998 Scriptics Corporation.
# Copyright (c) 2007 Alexey Shchepin
-# Copyright (c) 2007 Sergei Golovan
+# Copyright (c) 2008 Sergei Golovan
#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# RCS: @(#) $Id: stringprep_data.tcl,v 1.1 2008/01/29 02:18:10 patthoyts Exp $
+# RCS: @(#) $Id$
#
package provide stringprep::data 1.0.0
@@ -571,8 +568,8 @@
34 4 4 4 4 4 193 194 195 196 197 198 199 200 4 4 201 202 203 4 4 4 \
204 205 206 207 208 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 209 210 \
211 212 4 4 4 4 4 4 4 213 214 215 216 217 218 219 220 221 222 223 224 \
- 225 226 4 227 4 4 4 228 229 230 4 231 4 232 233 4 4 4 4 4 4 4 4 234 \
- 4 235 236 4 237 238 34 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
+ 225 226 4 227 4 4 228 229 230 231 4 232 4 233 234 4 4 4 4 4 4 4 4 235 \
+ 4 236 237 4 238 239 34 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
4 4 4 4 4 4 4 4 4 4 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 34 \
34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 \
@@ -604,8 +601,8 @@
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 34 34 4 4 4 \
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 34 34 34 34 34 34 34 34 \
- 34 34 34 34 34 34 34 34 34 34 34 34 34 239 240 241 242 243 244 245 \
- 34 34 34 34 34 34 34 34 34 34 34 34 246 247 248 249 250 34 34 34 34 \
+ 34 34 34 34 34 34 34 34 34 34 34 34 34 240 241 242 243 244 245 246 \
+ 34 34 34 34 34 34 34 34 34 34 34 34 247 248 249 250 251 34 34 34 34 \
34 59 2 59 59 59 59 59 59 59 59 59 59 2 59 59 59 59 59 59 59 59 59 \
59 59 59 59 34 59 59 59 59 59 34 59 34 59 59 34 59 59 34 59 59 59 59 \
59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 \
@@ -655,9 +652,9 @@
34 34 34 34 34 34 34 34 34 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
4 4 4 4 4 4 4 4 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 \
34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 \
- 34 34 34 34 34 34 34 34 34 34 34 34 34 251 251 251 251 251 251 251 \
- 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 \
- 251 251 251 251 251 251 251 251 251 251 251 251 251 251 34 34 4 4 4 \
+ 34 34 34 34 34 34 34 34 34 34 34 34 34 252 252 252 252 252 252 252 \
+ 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 \
+ 252 252 252 252 252 252 252 252 252 252 252 252 252 252 34 34 4 4 4 \
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
4 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 \
34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 \
@@ -673,48 +670,48 @@
4 4 4 4 4 4 4 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 34 34 34 34 34 34 \
34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 \
- 34 34 34 34 34 252 252 252 252 252 252 252 252 252 252 252 252 252 \
- 252 252 252 252 252 252 252 252 252 252 252 252 252 4 4 4 4 4 4 4 4 \
- 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 253 253 253 253 253 253 253 253 \
- 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 \
- 253 4 4 4 4 4 4 4 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 254 254 254 \
+ 34 34 34 34 34 253 253 253 253 253 253 253 253 253 253 253 253 253 \
+ 253 253 253 253 253 253 253 253 253 253 253 253 253 4 4 4 4 4 4 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 254 254 254 254 254 254 254 254 \
254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 \
- 254 254 254 254 254 254 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
- 4 4 4 4 255 34 255 255 34 34 255 34 34 255 255 34 34 255 255 255 255 \
- 34 255 255 255 255 255 255 255 255 4 4 4 4 34 4 34 4 4 4 4 34 4 4 34 \
- 4 4 4 4 4 4 4 4 4 4 4 256 256 256 256 256 256 256 256 256 256 256 256 \
- 256 256 256 256 256 256 256 256 256 256 256 256 256 256 4 4 4 4 4 4 \
- 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 257 257 34 257 257 257 257 \
- 34 34 257 257 257 257 257 257 257 257 34 257 257 257 257 257 257 257 \
- 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 258 258 34 258 \
- 258 258 258 34 258 258 258 258 258 34 258 34 34 34 258 258 258 258 \
- 258 258 258 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
- 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 \
- 259 259 259 259 259 259 259 259 259 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
- 4 4 4 4 4 4 4 4 4 4 260 260 260 260 260 260 260 260 260 260 260 260 \
- 260 260 260 260 260 260 260 260 260 260 260 260 260 260 4 4 4 4 4 4 \
- 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 261 261 261 261 261 261 261 \
- 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 \
- 261 261 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 262 262 \
+ 254 4 4 4 4 4 4 4 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 255 255 255 \
+ 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 \
+ 255 255 255 255 255 255 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
+ 4 4 4 4 256 34 256 256 34 34 256 34 34 256 256 34 34 256 256 256 256 \
+ 34 256 256 256 256 256 256 256 256 4 4 4 4 34 4 34 4 4 4 4 34 4 4 34 \
+ 4 4 4 4 4 4 4 4 4 4 4 257 257 257 257 257 257 257 257 257 257 257 257 \
+ 257 257 257 257 257 257 257 257 257 257 257 257 257 257 4 4 4 4 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 258 258 34 258 258 258 258 \
+ 34 34 258 258 258 258 258 258 258 258 34 258 258 258 258 258 258 258 \
+ 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 259 259 34 259 \
+ 259 259 259 34 259 259 259 259 259 34 259 34 34 34 259 259 259 259 \
+ 259 259 259 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
+ 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 \
+ 260 260 260 260 260 260 260 260 260 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 261 261 261 261 261 261 261 261 261 261 261 261 \
+ 261 261 261 261 261 261 261 261 261 261 261 261 261 261 4 4 4 4 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 262 262 262 262 262 262 262 \
262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 \
- 262 262 262 262 262 262 262 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
- 4 4 4 4 4 4 263 263 263 263 263 263 263 263 263 263 263 263 263 263 \
- 263 263 263 263 263 263 263 263 263 263 263 263 4 4 4 4 4 4 4 4 4 4 \
- 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 264 264 264 264 264 264 264 264 264 \
- 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 \
- 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 34 34 34 34 265 \
- 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 266 \
- 265 265 265 265 265 265 265 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 267 \
- 4 4 4 4 4 4 4 4 4 4 4 4 4 4 268 268 268 268 268 268 268 268 268 268 \
- 268 268 268 268 268 268 268 269 268 268 268 268 268 268 268 4 4 4 4 \
- 4 4 4 4 4 4 4 4 4 4 4 4 4 4 270 4 4 4 4 4 4 4 4 4 4 4 4 4 4 271 271 \
- 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 272 271 \
- 271 271 271 271 271 271 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 273 4 4 \
- 4 4 4 4 4 4 4 4 4 4 4 4 274 274 274 274 274 274 274 274 274 274 274 \
- 274 274 274 274 274 274 275 274 274 274 274 274 274 274 4 4 4 4 4 4 \
- 4 4 4 4 4 4 4 4 4 4 4 4 276 4 4 4 4 4 4 4 4 4 4 4 4 4 4 277 277 277 \
- 277 277 277 277 277 277 277 277 277 277 277 277 277 277 278 277 277 \
- 277 277 277 277 277 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 279 4 4 4 4 \
+ 262 262 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 263 263 \
+ 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 \
+ 263 263 263 263 263 263 263 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 \
+ 4 4 4 4 4 4 264 264 264 264 264 264 264 264 264 264 264 264 264 264 \
+ 264 264 264 264 264 264 264 264 264 264 264 264 4 4 4 4 4 4 4 4 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 265 265 265 265 265 265 265 265 265 \
+ 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 34 34 34 34 266 \
+ 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 267 \
+ 266 266 266 266 266 266 266 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 268 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 269 269 269 269 269 269 269 269 269 269 \
+ 269 269 269 269 269 269 269 270 269 269 269 269 269 269 269 4 4 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 271 4 4 4 4 4 4 4 4 4 4 4 4 4 4 272 272 \
+ 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 273 272 \
+ 272 272 272 272 272 272 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 274 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 275 275 275 275 275 275 275 275 275 275 275 \
+ 275 275 275 275 275 275 276 275 275 275 275 275 275 275 4 4 4 4 4 4 \
+ 4 4 4 4 4 4 4 4 4 4 4 4 277 4 4 4 4 4 4 4 4 4 4 4 4 4 4 278 278 278 \
+ 278 278 278 278 278 278 278 278 278 278 278 278 278 278 279 278 278 \
+ 278 278 278 278 278 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 280 4 4 4 4 \
4 4 4 4 4 4 4 4 4 4 34 34 34 34 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 \
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 34 \
34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 \
@@ -803,13 +800,13 @@
247296 249344 251392 253440 255488 257536 259584 261632 263680 \
265728 267776 269824 271872 273920 275968 278016 280064 282112 \
284160 286208 288256 290304 292352 294400 296448 298496 300544 \
- 302592 304644 306692 308740 310788 312836 314884 316932 318980 \
- 321028 323076 325124 327172 82436 -245167616 -245274112 -245380608 \
- -245487104 -245593600 -245700096 -245806592 -245913088 -246019584 \
- -246126080 -246232576 -246339072 -246445568 -244823552 -244844032 \
- -244874752 -244942336 -244962816 -244993536 -245061120 -245081600 \
- -245112320 -245179904 -245200384 -245231104 -245298688 -245319168 \
- -245349888]
+ 302592 304640 306692 308740 310788 312836 314884 316932 318980 \
+ 321028 323076 325124 327172 329220 82436 -245167616 -245274112 \
+ -245380608 -245487104 -245593600 -245700096 -245806592 -245913088 \
+ -246019584 -246126080 -246232576 -246339072 -246445568 -244823552 \
+ -244844032 -244874752 -244942336 -244962816 -244993536 -245061120 \
+ -245081600 -245112320 -245179904 -245200384 -245231104 -245298688 \
+ -245319168 -245349888]
#
# Table for characters that lowercased to multiple ones
@@ -953,6 +950,7 @@
{107 969} \
{109 969} \
{98 113} \
+ {99 8725 107 103} \
{99 111 46} \
{100 98} \
{103 121} \
Index: modules/stringprep/tools/gen_stringprep_data.tcl
===================================================================
RCS file: /cvsroot/tcllib/tcllib/modules/stringprep/tools/gen_stringprep_data.tcl,v
retrieving revision 1.1
diff -u -r1.1 gen_stringprep_data.tcl
--- modules/stringprep/tools/gen_stringprep_data.tcl 29 Jan 2008 02:18:10 -0000 1.1
+++ modules/stringprep/tools/gen_stringprep_data.tcl 31 Oct 2009 19:52:06 -0000
@@ -203,6 +203,19 @@
set casemap2($from) [llength $multicasemap]
lappend multicasemap [list $to1 $to2 $to3]
}
+ } elseif {[regexp {^ ([[:xdigit:]]+); ([[:xdigit:]]+) ([[:xdigit:]]+) ([[:xdigit:]]+) ([[:xdigit:]]+);} $line \
+ temp from to1 to2 to3 to4]} {
+ scan $from %x from
+ scan $to1 %x to1
+ scan $to2 %x to2
+ scan $to3 %x to3
+ scan $to4 %x to4
+ if {$from <= 0x10ffff && \
+ $to1 <= 0x10ffff && $to2 <= 0x10ffff && \
+ $to3 <= 0x10ffff && $to4 <= 0x10ffff} {
+ set casemap2($from) [llength $multicasemap]
+ lappend multicasemap [list $to1 $to2 $to3 $to4]
+ }
} else {
#puts "missed: $line"
}