annotate dwt/dwthelper/XmlTranscode.d @ 224:ac1c09c92858

missing imports
author Frank Benoit <benoit@tionex.de>
date Thu, 10 Apr 2008 09:15:48 +0200
parents d0081b1505da
children 380bad9f6852
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
223
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 module dwt.dwthelper.XmlTranscode;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2
224
ac1c09c92858 missing imports
Frank Benoit <benoit@tionex.de>
parents: 223
diff changeset
3 import dwt.dwthelper.utils;
ac1c09c92858 missing imports
Frank Benoit <benoit@tionex.de>
parents: 223
diff changeset
4 import tango.core.Exception;
ac1c09c92858 missing imports
Frank Benoit <benoit@tionex.de>
parents: 223
diff changeset
5
223
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 /++
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 + Decode XML entities into UTF8 string.
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 + Eg. "&amp;" -> "&", "&#38;" -> "&", "&#x26;" -> "&"
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 + Throws TextException on failure
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 + The given string is modified.
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 +/
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 char[] xmlUnescape( char[] str ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 void error(){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 throw new TextException( "xmlUnescape" );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 // &lt; ...
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 // &#1234;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 // &#x12AF;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 char[] src = str;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 char[] trg = str;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 while( src.length ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 if( src[0] !is '&' ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 trg[0] = src[0];
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 trg = trg[1..$];
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 src = src[1..$];
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 else{
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 src = src[1..$]; // go past '&'
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 if( src.length < 2 ) error();
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 // search semi
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 int len = Math.min( src.length, 10 ); // limit semi search to possible longest entityname
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 int semi = tango.text.Util.locate( src[0 .. len ], ';' );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 if( semi is len ) error(); // no semi found
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 char[] entityName = src[ 0 .. semi ]; // name without semi
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 dchar entityValue = 0;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 switch( entityName ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 case "lt": entityValue = '<'; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 case "gt": entityValue = '>'; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 case "amp": entityValue = '&'; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 case "quot": entityValue = '\"'; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 case "apos": entityValue = '\''; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 default:
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 if( entityName[0] is 'x' ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 if( semi < 2 ) error();
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 if( semi > 9 ) error();
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 foreach( hex; entityName[1..$] ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 entityValue <<= 4;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 if( hex >= '0' && hex <= '9' ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 entityValue |= ( hex - '0' );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 else if( hex >= 'a' && hex <= 'f' ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 entityValue |= ( hex - 'a' );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 else if( hex >= 'A' && hex <= 'F' ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 entityValue |= ( hex - 'A' );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 else{
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 error();
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 else{
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 if( semi < 1 ) error();
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 if( semi > 9 ) error();
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 foreach( dec; entityName[1..$] ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 if( dec >= '0' && dec <= '9' ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 entityValue *= 10;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 entityValue += ( dec - '0' );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 else{
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 error();
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 dchar[1] arr;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 arr[0] = entityValue;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 uint ate = 0;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 char[] res = tango.text.convert.Utf.toString( arr, trg, &ate );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 trg = trg[ res.length .. $ ];
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 src = src[ semi +1 .. $ ]; // go past semi
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 return str[ 0 .. trg.ptr-str.ptr ];
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 /++
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 + Encode XML entities into UTF8 string.
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 + First checks if processing is needed.
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 + If not, the original string is returned.
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 + If processing is needed, a new string is allocated.
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 +/
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 char[] xmlEscape( char[] xml ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 bool needsReplacement( dchar c ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 switch( c ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 case '<':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 case '>':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 case '&':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 case '\"':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 case '\'':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 case '\r':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 case '\n':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 case '\u0009':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 return true;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 default:
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 return c > 0x7F;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 // Check if processing is needed
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 foreach( char c; xml ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 if( needsReplacement( c )){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 goto Lprocess;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 return xml;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 Lprocess:
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 // yes, do a new string, start with +20 chars
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 char[] res = new char[ xml.length + 20 ];
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 res.length = 0;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 foreach( dchar c; xml ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 if( !needsReplacement( c )){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 res ~= c;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 else{
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 res ~= '&';
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 switch( c ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 case '<': res ~= "lt"; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 case '>': res ~= "gt"; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 case '&': res ~= "amp"; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 case '\"': res ~= "quot"; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 case '\'': res ~= "apos"; break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 case '\r': case '\n': case '\u0009':
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 default:
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 char toHexDigit( int i ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 if( i < 10 ) return '0'+i;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 return 'A'+i-10;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 res ~= "#x";
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 if( c <= 0xFF ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 res ~= toHexDigit(( c >> 4 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 res ~= toHexDigit(( c >> 0 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 else if( c <= 0xFFFF ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 res ~= toHexDigit(( c >> 12 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 res ~= toHexDigit(( c >> 8 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 res ~= toHexDigit(( c >> 4 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 res ~= toHexDigit(( c >> 0 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 else if( c <= 0xFFFFFF ){
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 res ~= toHexDigit(( c >> 20 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 res ~= toHexDigit(( c >> 16 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 res ~= toHexDigit(( c >> 12 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 res ~= toHexDigit(( c >> 8 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 res ~= toHexDigit(( c >> 4 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 res ~= toHexDigit(( c >> 0 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 else {
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 res ~= toHexDigit(( c >> 28 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 res ~= toHexDigit(( c >> 24 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 res ~= toHexDigit(( c >> 20 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 res ~= toHexDigit(( c >> 16 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 res ~= toHexDigit(( c >> 12 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 res ~= toHexDigit(( c >> 8 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 res ~= toHexDigit(( c >> 4 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 res ~= toHexDigit(( c >> 0 ) & 0x0F );
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 break;
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 res ~= ';';
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 }
d0081b1505da dwt.dwthelper restructure
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181