From fc292139d2d05b7c931ce3dc9c9c7aaace2bb84a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Wed, 29 Jul 2009 13:30:16 +0000 Subject: more inline-documentation; added error-outlet (which currently only catches bytes out-of-range) svn path=/trunk/externals/iem/unicode/; revision=11885 --- utf82codenumber.pd | 272 +++++++++++++++++++++++++++++------------------------ 1 file changed, 151 insertions(+), 121 deletions(-) diff --git a/utf82codenumber.pd b/utf82codenumber.pd index 63f690c..a2a7372 100644 --- a/utf82codenumber.pd +++ b/utf82codenumber.pd @@ -1,138 +1,168 @@ #N canvas 14 0 649 526 10; #X obj 131 172 inlet byte; #X obj 131 316 outlet byte; -#N canvas 327 0 461 427 shifter 0; -#X obj 134 59 inlet; -#X obj 134 387 outlet; -#X obj 166 220 list split 1; -#X obj 166 167 until; -#X obj 166 195 list append; -#X obj 266 220 bang; -#X obj 166 246 +; -#X obj 166 299 t f f; -#X obj 166 144 t b l b; -#X msg 215 265 0; -#X obj 166 270 << 6; -#X obj 166 321 >> 6; -#X obj 134 359 f; -#X obj 134 98 t b l; -#X connect 0 0 13 0; -#X connect 2 0 6 0; -#X connect 2 1 4 1; -#X connect 2 2 5 0; -#X connect 3 0 4 0; -#X connect 4 0 2 0; -#X connect 5 0 3 1; -#X connect 6 0 10 0; -#X connect 7 0 11 0; -#X connect 7 1 6 1; -#X connect 8 0 3 0; -#X connect 8 1 4 1; -#X connect 8 2 9 0; -#X connect 9 0 6 1; -#X connect 10 0 7 0; -#X connect 11 0 12 1; -#X connect 12 0 1 0; -#X connect 13 0 12 0; -#X connect 13 1 8 0; +#N canvas 327 0 739 602 shifter 0; +#X obj 166 330 list split 1; +#X obj 166 277 until; +#X obj 166 305 list append; +#X obj 266 330 bang; +#X obj 166 356 +; +#X obj 166 409 t f f; +#X obj 166 254 t b l b; +#X msg 215 375 0; +#X obj 166 380 << 6; +#X obj 166 431 >> 6; +#X obj 134 469 f; +#X obj 134 208 t b l; +#X obj 134 169 inlet multibytelist; +#X obj 134 497 outlet bytestream; +#X text 74 60 converts a correctly-sized multi-byte list into a single +code-point \, by shifting and adding the elements appropriately.; +#X text 77 108 header-bits (e.g. bits not carrying any pay-load) MUST +be stripped off beforehand.; +#X connect 0 0 4 0; +#X connect 0 1 2 1; +#X connect 0 2 3 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 1 1; +#X connect 4 0 8 0; +#X connect 5 0 9 0; +#X connect 5 1 4 1; +#X connect 6 0 1 0; +#X connect 6 1 2 1; +#X connect 6 2 7 0; +#X connect 7 0 4 1; +#X connect 8 0 5 0; +#X connect 9 0 10 1; +#X connect 10 0 13 0; +#X connect 11 0 10 0; +#X connect 11 1 6 0; +#X connect 12 0 11 0; #X restore 131 283 pd shifter; #X text 222 316 unicode code number; #X text 215 170 UTF-8 multibyte; -#N canvas 431 13 593 499 stream2multibytelist 1; -#X text 259 108 aux; -#X text 323 111 2byte; -#X text 386 113 3byte; -#X text 446 113 4byte; -#X text 180 112 1byte; -#X obj 181 129 & 127; -#X obj 321 129 & 31; -#X obj 251 129 & 63; -#X obj 390 129 & 15; -#X obj 450 129 & 7; -#X obj 251 150 t f b; -#X msg 207 175 1; -#X obj 181 268 ==; -#X text 220 284 expectedbytes; -#X obj 181 226 i; -#X obj 226 266 t f b; -#X msg 238 203 0; -#X obj 204 371 t l l; -#X obj 181 310 select 1; -#X obj 181 393 list prepend; -#X msg 353 174 2; -#X obj 181 198 t b f; -#X obj 181 151 t f b; -#X obj 321 150 t f b; -#X obj 212 226 + 1; -#X obj 390 153 t f b; -#X msg 422 177 3; -#X obj 450 151 t f b; -#X msg 482 175 4; -#X obj 203 345 list prepend; -#X obj 181 87 moses 128; -#X obj 251 87 moses 192; -#X obj 321 87 moses 224; -#X obj 390 87 moses 240; -#X obj 181 61 t f; -#X obj 181 34 inlet; -#X obj 181 429 outlet; -#X obj 283 318 t b b; -#X obj 340 274 print nuchar; -#X obj 339 251 print cuchar; -#X connect 5 0 22 0; -#X connect 6 0 23 0; +#N canvas 1194 0 977 874 stream2multibytelist 1; +#X text 259 228 aux; +#X text 323 231 2byte; +#X text 386 233 3byte; +#X text 456 233 4byte; +#X text 180 232 1byte; +#X obj 181 249 & 127; +#X obj 321 249 & 31; +#X obj 251 249 & 63; +#X obj 390 249 & 15; +#X obj 460 249 & 7; +#X obj 251 270 t f b; +#X msg 213 292 1; +#X text 220 404 expectedbytes; +#X obj 181 346 i; +#X msg 238 323 0; +#X obj 204 591 t l l; +#X obj 181 613 list prepend; +#X msg 353 294 2; +#X obj 181 318 t b f; +#X obj 181 271 t f b; +#X obj 321 270 t f b; +#X obj 212 346 + 1; +#X obj 390 273 t f b; +#X msg 422 297 3; +#X obj 460 271 t f b; +#X msg 492 295 4; +#X obj 204 565 list prepend; +#X obj 181 207 moses 128; +#X obj 251 207 moses 192; +#X obj 321 207 moses 224; +#X obj 390 207 moses 240; +#X obj 285 544 t b b; +#X obj 181 689 outlet multibytelist; +#X obj 181 154 inlet bytestream; +#X obj 456 683 outlet error; +#X text 58 35 converts a bytestream into atomic multibyte representations +(aka "list"s) of characters.; +#X text 63 69 header-bits (used for describing the multibyte-nature +in the incoming stream) are stripped of the lists); +#X obj 227 373 t f b b; +#X text 521 479 errors:; +#X text 550 502 a continuation-byte at the beginning; +#X text 550 518 a continuation-byte after the last byte; +#X text 550 542 a start-byte within a sequence; +#X text 555 597 192-193: overlong encoding; +#X text 555 618 245-253: restricted by RFC-3629; +#X text 556 637 254-255: not defined; +#X obj 460 207 moses 245; +#X obj 548 238 t b; +#X text 583 243 5byte \, 6byte; +#X text 583 229 codepoint > 0x10FFFF; +#X text 583 259 undefined; +#X obj 524 614 t b; +#X obj 180 376 t f f; +#X obj 344 383 print current; +#X obj 181 460 select -1; +#X obj 181 181 t f f; +#X obj 353 179 print newbyte; +#X obj 181 643 t l b; +#X connect 5 0 19 0; +#X connect 6 0 20 0; #X connect 7 0 10 0; -#X connect 8 0 25 0; -#X connect 9 0 27 0; -#X connect 10 0 21 0; -#X connect 11 0 15 0; -#X connect 12 0 18 0; -#X connect 14 0 12 0; -#X connect 14 0 24 0; -#X connect 14 0 39 0; -#X connect 15 0 12 1; -#X connect 15 0 38 0; -#X connect 15 1 16 0; -#X connect 15 1 37 0; -#X connect 16 0 24 0; -#X connect 17 0 19 1; -#X connect 17 1 29 1; -#X connect 18 0 19 0; -#X connect 19 0 36 0; -#X connect 20 0 15 0; -#X connect 21 0 14 0; -#X connect 21 1 29 0; -#X connect 22 0 21 0; -#X connect 22 1 11 0; -#X connect 23 0 21 0; -#X connect 23 1 20 0; -#X connect 24 0 14 1; -#X connect 25 0 21 0; -#X connect 25 1 26 0; +#X connect 8 0 22 0; +#X connect 9 0 24 0; +#X connect 10 0 18 0; +#X connect 11 0 37 0; +#X connect 13 0 21 0; +#X connect 13 0 51 0; +#X connect 14 0 21 0; +#X connect 15 0 16 1; +#X connect 15 1 26 1; +#X connect 16 0 56 0; +#X connect 17 0 37 0; +#X connect 18 0 13 0; +#X connect 18 1 26 0; +#X connect 19 0 18 0; +#X connect 19 1 11 0; +#X connect 20 0 18 0; +#X connect 20 1 17 0; +#X connect 21 0 13 1; +#X connect 22 0 18 0; +#X connect 22 1 23 0; +#X connect 23 0 37 0; +#X connect 24 0 18 0; +#X connect 24 1 25 0; +#X connect 25 0 37 0; #X connect 26 0 15 0; -#X connect 27 0 21 0; +#X connect 27 0 5 0; #X connect 27 1 28 0; -#X connect 28 0 15 0; -#X connect 29 0 17 0; -#X connect 30 0 5 0; -#X connect 30 1 31 0; -#X connect 31 0 7 0; -#X connect 31 1 32 0; -#X connect 32 0 6 0; -#X connect 32 1 33 0; -#X connect 33 0 8 0; -#X connect 33 1 9 0; -#X connect 34 0 30 0; -#X connect 35 0 34 0; -#X connect 37 0 29 1; -#X connect 37 1 19 1; +#X connect 28 0 7 0; +#X connect 28 1 29 0; +#X connect 29 0 6 0; +#X connect 29 1 30 0; +#X connect 30 0 8 0; +#X connect 30 1 45 0; +#X connect 31 0 26 1; +#X connect 31 1 16 1; +#X connect 33 0 54 0; +#X connect 37 0 53 1; +#X connect 37 1 14 0; +#X connect 37 2 31 0; +#X connect 45 0 9 0; +#X connect 45 1 46 0; +#X connect 46 0 50 0; +#X connect 50 0 34 0; +#X connect 51 0 53 0; +#X connect 51 1 52 0; +#X connect 53 0 16 0; +#X connect 54 0 27 0; +#X connect 54 1 55 0; +#X connect 56 0 32 0; #X restore 131 241 pd stream2multibytelist; #X text 47 43 converts a stream of UTF-8 bytes into a stream of Unicode code numbers; #X text 53 95 multibyte characters are not output before the last byte has been received; -#X obj 244 277 print xxx; +#X obj 400 306 outlet error; +#X text 104 378 if the bytestream is invalid \, a message is sent to +the output; #X connect 0 0 5 0; #X connect 2 0 1 0; #X connect 5 0 2 0; -#X connect 5 0 8 0; +#X connect 5 1 8 0; -- cgit v1.2.1