changeset 336:6757eb934b0b

Enable unicode literal in resource bundles.
author Frank Benoit <benoit@tionex.de>
date Thu, 23 Oct 2008 23:42:09 +0200
parents 7d6e1394b849
children d47095c2d585
files dwt/dwthelper/ResourceBundle.d
diffstat 1 files changed, 13 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/dwt/dwthelper/ResourceBundle.d	Mon Oct 20 21:13:53 2008 -0700
+++ b/dwt/dwthelper/ResourceBundle.d	Thu Oct 23 23:42:09 2008 +0200
@@ -93,20 +93,24 @@
                 linecontinue = false;
             }
             while( pos < line.length ){
-                char c = line[pos];
+                char[] c = line[pos .. pos +1];
                 if( esc ){
                     esc = false;
-                    switch( c ){
-                    case 't' : c = '\t'; break;
-                    case 'n' : c = '\n'; break;
-                    case '\\': c = '\\'; break;
-                    case '\"': c = '\"'; break;
-                    //case ':' : c = ':' ; break;
+                    switch( c[0] ){
+                    case 't' : c[0] = '\t'; break;
+                    case 'n' : c[0] = '\n'; break;
+                    case '\\': c[0] = '\\'; break;
+                    case '\"': c[0] = '\"'; break;
+                    case 'u' :
+                        dchar d = Integer.parseInt( line[ pos+1 .. pos+5 ], 16 );
+                        c = dcharToString(d);
+                        pos += 4;
+                       break;
                     default: break;
                     }
                 }
                 else{
-                    if( c == '\\' ){
+                    if( c == "\\" ){
                         if( pos == line.length -1 ){
                             linecontinue = true;
                             goto nextline;
@@ -115,7 +119,7 @@
                         pos++;
                         continue;
                     }
-                    else if( iskeypart && c == '=' ){
+                    else if( iskeypart && c == "=" ){
                         pos++;
                         iskeypart = false;
                         continue;