diff -uNr -x '*~' unrar.orig/Makefile unrar/Makefile
--- unrar.orig/Makefile	1970-01-01 09:00:00.000000000 +0900
+++ unrar/Makefile	2005-09-14 23:39:13.000000000 +0900
@@ -0,0 +1,126 @@
+#
+# Makefile for UNIX - unrar
+#
+# Note: you have to 'make clean' before you can build
+#	the sfx module
+#
+
+# Linux using GCC
+CXX=g++-3.3
+CXXFLAGS=-O -g
+LIBS=-liconv
+DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DOSXJP
+STRIP=strip
+
+# Linux using GCC
+#CXX=g++
+#CXXFLAGS=-O2
+#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+#STRIP=strip
+
+# Linux using LCC
+#CXX=lcc
+#CXXFLAGS=-O2
+#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+#STRIP=strip
+
+# HP UX using aCC
+#CXX=aCC
+#CXXFLAGS=-AA +O2 +Onolimit
+#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+#STRIP=strip
+
+# IRIX using GCC
+#CXX=g++
+#CXXFLAGS=-O2 
+#DEFINES=-DBIG_ENDIAN -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_BSD_COMPAT -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1
+#STRIP=strip
+
+# IRIX using MIPSPro (experimental)
+#CXX=CC
+#CXXFLAGS=-O2 -mips3 -woff 1234,1156,3284 -LANG:std
+#DEFINES=-DBIG_ENDIAN -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_BSD_COMPAT -DNATIVE_INT64 -DInt64=int64_t
+#STRIP=strip
+
+# AIX using xlC (IBM VisualAge C++ 5.0)
+#CXX=xlC
+#CXXFLAGS=-O -qinline -qro -qroconst -qmaxmem=16384 -qcpluscmt
+#DEFINES=-D_LARGE_FILES -D_LARGE_FILE_API
+#LIBS=-lbsd
+#STRIP=strip
+
+# Solaris using CC (SUN Forte Developer 7 C++)
+#CXX=CC
+#CXXFLAGS=-xO2 -xbuiltin=%all -xinline=%auto
+#DEFINES=-DBIG_ENDIAN -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+#STRIP=strip
+
+# Solaris using GCC (optimized for UltraSPARC 1 CPU)
+#CXX=g++
+#CXXFLAGS=-O3 -mcpu=v9 -mtune=ultrasparc -m32
+#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+#STRIP=/usr/ccs/bin/strip
+
+# Tru64 5.1B using GCC3
+#CXX=g++
+#CXXFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_XOPEN_SOURCE=500
+#STRIP=strip
+#LDFLAGS=-rpath /usr/local/gcc/lib
+
+# Tru64 5.1B using DEC C++
+#CXX=cxx
+#CXXFLAGS=-O4 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNATIVE_INT64 -DInt64=long
+#STRIP=strip
+#LDFLAGS=
+
+# QNX 6.x using GCC
+#CXX=g++
+#CXXFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fexceptions
+#STRIP=strip
+#LDFLAGS=-fexceptions
+
+# Cross-compile
+# Linux using arm-linux-g++
+#CXX=arm-linux-g++
+#CXXFLAGS=-O2
+#DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+#STRIP=arm-linux-strip
+#LDFLAGS=-static
+
+##########################
+
+COMPILE=$(CXX) $(CXXFLAGS) $(DEFINES)
+LINK=$(CXX)
+
+UNRAR_OBJ=filestr.o recvol.o rs.o scantree.o
+LIB_OBJ=filestr.o scantree.o dll.o
+
+OBJECTS=rar.o strlist.o strfn.o pathfn.o int64.o savepos.o global.o file.o filefn.o filcreat.o \
+	archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o \
+	resource.o match.o timefn.o rdwrfn.o consio.o options.o ulinks.o errhnd.o rarvm.o \
+	rijndael.o getbits.o sha1.o extinfo.o extract.o volume.o list.o find.o unpack.o cmddata.o
+
+.cpp.o:
+	$(COMPILE) -D$(WHAT) -c $<
+
+all:	unrar
+
+clean:
+	@rm -f *.o *.bak *~
+
+unrar:	WHAT=UNRAR
+unrar:	$(OBJECTS) $(UNRAR_OBJ)
+	@rm -f unrar
+	$(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS)	
+	$(STRIP) unrar
+
+sfx:	WHAT=SFX_MODULE
+sfx:	$(OBJECTS)
+	@rm -f default.sfx
+	$(LINK) -o default.sfx $(LDFLAGS) $(OBJECTS)
+	$(STRIP) default.sfx
+
+lib:	WHAT=RARDLL
+lib:	$(OBJECTS) $(LIB_OBJ)
+	@rm -f libunrar.so
+	$(LINK) -shared -o libunrar.so $(LDFLAGS) $(OBJECTS) $(LIB_OBJ)
diff -uNr -x '*~' unrar.orig/arcread.cpp unrar/arcread.cpp
--- unrar.orig/arcread.cpp	2005-08-04 01:34:30.000000000 +0900
+++ unrar/arcread.cpp	2005-09-14 23:39:04.000000000 +0900
@@ -1,5 +1,32 @@
 #include "rar.hpp"
 
+#ifdef OSXJP
+#include <iconv.h>
+
+void OSXJP_Convert(int buflen, char *name)
+{
+  iconv_t cd = (iconv_t)-1;
+  size_t il = strlen(name), ol = buflen;
+  char buf[buflen];
+  const char *ib = name;
+  char *ob = buf;
+
+  cd = iconv_open("UTF-8-MAC", "SJIS");
+  if (cd < 0) goto passthru;
+  do {
+    if ((signed int)iconv(cd, &ib, &il, &ob, &ol) < 0) goto passthru;
+  } while (il > 0);
+  if (buf + buflen > ob) *ob = 0;
+  iconv_close(cd);
+  strncpy(name, buf, buflen);
+  return;
+
+ passthru:
+  if (cd >= 0) iconv_close(cd);
+  return;
+}
+#endif
+
 int Archive::SearchBlock(int BlockType)
 {
   int Size,Count=0;
@@ -256,6 +283,9 @@
           Alarm();
 #endif
         }
+#ifdef OSXJP
+	OSXJP_Convert(sizeof(hd->FileName), hd->FileName);
+#endif	
       }
       break;
 #ifndef SFX_MODULE
diff -uNr -x '*~' unrar.orig/loclang.hpp unrar/loclang.hpp
--- unrar.orig/loclang.hpp	2005-08-04 01:34:30.000000000 +0900
+++ unrar/loclang.hpp	2005-09-14 22:30:46.000000000 +0900
@@ -6,7 +6,11 @@
 #define   MCopyright         "\nRAR %s   Copyright (c) 1993-%d Alexander Roshal   %d %s %d"
 #define   MRegTo             "\nRegistered to %s\n"
 #define   MShare             "\nShareware version         Type RAR -? for help\n"
+#ifdef OSXJP
+#define   MUCopyright        "\nUNRAR %s freeware      Copyright (c) 1993-%d Alexander Roshal\n" "\t\t\t\tOSXJP Patch by NAKAHASHI Ichiro, 2005"
+#else
 #define   MUCopyright        "\nUNRAR %s freeware      Copyright (c) 1993-%d Alexander Roshal\n"
+#endif
 #define   MBeta              "beta"
 #define   MMonthJan          "Jan"
 #define   MMonthFeb          "Feb"

