You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by hi...@apache.org on 2007/02/20 11:40:52 UTC

svn commit: r509502 - /harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hyfiletext.c

Author: hindessm
Date: Tue Feb 20 02:40:51 2007
New Revision: 509502

URL: http://svn.apache.org/viewvc?view=rev&rev=509502
Log:
Since the "Applied HARMONY-3026 [drlvm] Add Internationalization support
to the drlvm." change (r506992) the -DHYVM_USE_ICONV mode doesn't compile.
This should fix it so it at least compiles.  It might even work.

Modified:
    harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hyfiletext.c

Modified: harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hyfiletext.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hyfiletext.c?view=diff&rev=509502&r1=509501&r2=509502
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hyfiletext.c (original)
+++ harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hyfiletext.c Tue Feb 20 02:40:51 2007
@@ -428,7 +428,7 @@
 
 #define CDEV_CURRENT_FUNCTION buf_write_using_iconv
 #if (defined(HYVM_USE_ICONV))
-static IDATA
+static char*
 buf_write_using_iconv (struct HyPortLibrary *portLibrary,
                         const char *buf, IDATA nbytes)
 {
@@ -436,6 +436,8 @@
     iconv_t converter;
     size_t inbytesleft, outbytesleft;
     char *inbuf;
+    char *outbuf;
+    char *bufStart;
     /* iconv_open is not an a2e function, so we need to pass it honest-to-goodness EBCDIC strings */
     converter = iconv_open (nl_langinfo (CODESET), "UTF-8");
     if (converter == (iconv_t) - 1)
@@ -443,14 +445,14 @@
         /* no converter available for this code set. Just dump the UTF-8 chars */
         outbuf = portLibrary->mem_allocate_memory (portLibrary, nbytes + 1);
         memcpy(outbuf, buf, nbytes);
-        outBuf[nbytes] = '\0';
+        outbuf[nbytes] = '\0';
         return  outbuf;
     }
-    char *bufStart = portLibrary->mem_allocate_memory (portLibrary, 512);
-    char *outbuf = bufStart;
+    bufStart = portLibrary->mem_allocate_memory (portLibrary, outBufLen);
+    outbuf = bufStart;
     inbuf = (char *) buf;         /* for some reason this argument isn't const */
     inbytesleft = nbytes;
-    outbytesleft = sizeof (stackBuf);
+    outbytesleft = outBufLen;
     while ((size_t) - 1 ==
         iconv (converter, &inbuf, &inbytesleft, &outbuf, &outbytesleft))
     {
@@ -477,7 +479,7 @@
             iconv_close (converter);
             outbuf = portLibrary->mem_allocate_memory (portLibrary, nbytes + 1);
             memcpy(outbuf, buf, nbytes);
-            outBuf[nbytes] = '\0';
+            outbuf[nbytes] = '\0';
             portLibrary->mem_free_memory (portLibrary, bufStart);
             return  outbuf;
         }
@@ -485,7 +487,7 @@
     iconv_close (converter);
     outbuf = portLibrary->mem_allocate_memory (portLibrary, outbuf - bufStart + 1);
     memcpy(outbuf, buf, outbuf - bufStart);
-    outBuf[outbuf - bufStart] = '\0';
+    outbuf[outbuf - bufStart] = '\0';
     portLibrary->mem_free_memory (portLibrary, bufStart);
     return outbuf;
 }