diff base/src/java/lang/util.d @ 112:9f4c18c268b2

Update to compile and execute with dmd 2.052.
author kntroh
date Wed, 16 Mar 2011 21:53:53 +0900
parents 8939451abc39
children fb3aa8075988
line wrap: on
line diff
--- a/base/src/java/lang/util.d	Sat Nov 13 14:15:51 2010 +0100
+++ b/base/src/java/lang/util.d	Wed Mar 16 21:53:53 2011 +0900
@@ -16,6 +16,9 @@
     static import core.exception;
     static import std.c.stdlib;
     static import std.stdio;
+    static import std.array;
+    static import std.format;
+    static import std.exception;
     alias std.c.stdlib.exit exit;
 }
 
@@ -121,14 +124,25 @@
 } else { // Phobos
     class Format{
         static String opCall( String fmt, ... ){
-            implMissing(__FILE__,__LINE__);
-            return null;
+            fmt = std.array.replace(fmt, "%", "%%");
+            fmt = std.array.replace(fmt, "{}", "%s");
+            char[] buf;
+            void putc(dchar c) {
+                if (c <= 0x7F) {
+                   buf ~= cast(char)c;
+                } else {
+                    char[4] buf2;
+                    buf ~= std.utf.toUTF8(buf2, c);
+                }
+            }
+            std.format.doFormat(&putc, _arguments, _argptr);
+            return std.exception.assumeUnique(buf);
         }
     }
 }
 
 version( D_Version2 ){
-    mixin("invariant(T)[] _idup(T)( T[] str ){ return str.idup; }");
+    mixin("immutable(T)[] _idup(T)( T[] str ){ return str.idup; }");
 } else { // D1
     String16 _idup( String16 str ){
         return str.dup;