/* nkf32.dll nfk32dll.c */
-// e-mail:tkaneto@nifty.com
-// URL: http://www1.ttcn.ne.jp/~kaneto
+/* e-mail:tkaneto@nifty.com */
+/* URL: http://www1.ttcn.ne.jp/~kaneto */
/*WIN32DLL*/
/* \82±\82¿\82ç\82Ì\83o\81[\83W\83\87\83\93\82à\8dX\90V\82µ\82Ä\82\82¾\82³\82¢\81B */
-#define NKF_VERSIONW L"2.0.4"
+#define NKF_VERSIONW L"2.0.8"
/* NKF_VERSION \82Ì\83\8f\83C\83h\95¶\8e\9a */
-#define DLL_VERSION "2.0.4.1 1"
+#define DLL_VERSION "2.0.8.0 1"
/* DLL\82ª\95Ô\82· */
-#define DLL_VERSIONW L"2.0.4.1 1"
+#define DLL_VERSIONW L"2.0.8.0 1"
/* DLL\82ª\95Ô\82· DLL_VERSION \82Ì\83\8f\83C\83h\95¶\8e\9a */
/* nkf32.dll main */
#include <windows.h>
#include <tchar.h>
#include <stdarg.h>
-#include "nkf.h"
#ifdef DLLDBG /* DLLDBG @@*/
+#include "nkf.h"
+
void dumpn(unsigned char *buff,unsigned n)
{
int i;
#define GUESS 64
#endif /*GUESS*/
-char guessbuffA[MAX_PATH + GUESS];
+char *guessbuffA = NULL;
#ifdef UNICODESUPPORT
-wchar_t guessbuffW[MAX_PATH + GUESS];
+wchar_t *guessbuffW = NULL;
UINT guessCodePage = CP_OEMCP;
DWORD guessdwFlags = MB_PRECOMPOSED;
-wchar_t *tounicode(char *p)
+wchar_t *tounicode(const char *p)
{
static wchar_t buff[GUESS];
int sts;
return EOF;
}
-static FILE *fout = stdout;
+static FILE *fout = NULL;
static unsigned char *cout = NULL;
static int nout = -1;
static int noutmax = -1;
print_guessed_code (filename)
char *filename;
{
- char *codename = "BINARY";
- if (!is_inputcode_mixed) {
- if (strcmp(input_codename, "") == 0) {
- codename = "ASCII";
- } else {
- codename = input_codename;
- }
- }
+ const char *codename = get_guessed_code();
if (filename != NULL) {
+ guessbuffA = realloc(guessbuffA,(strlen(filename) + GUESS + 1) * sizeof (char) );
sprintf(guessbuffA,"%s:%s", filename,codename);
-#ifdef UNICODESUPPORT
- swprintf(guessbuffW,L"%s:%s",filename,tounicode(codename));
-#endif /*UNICODESUPPORT*/
} else {
+ guessbuffA = realloc(guessbuffA,(GUESS + 1) * sizeof (char) );
sprintf(guessbuffA,"%s", codename);
+ }
+}
+
#ifdef UNICODESUPPORT
- swprintf(guessbuffW,L"%s",tounicode(codename));
-#endif /*UNICODESUPPORT*/
+void
+print_guessed_codeW (filename)
+ wchar_t *filename;
+{
+ const char *codename = get_guessed_code();
+ size_t size;
+ if (filename != NULL) {
+ size = (wcslen(filename) + GUESS + 1) * sizeof (wchar_t);
+ guessbuffW = realloc(guessbuffW, size);
+ _snwprintf(guessbuffW, size, L"%s:%s", filename, tounicode(codename));
+ } else {
+ size = (GUESS + 1) * sizeof (wchar_t);
+ guessbuffW = realloc(guessbuffW, size);
+ _snwprintf(guessbuffW, size, L"%s", tounicode(codename));
}
}
+#endif /*UNICODESUPPORT*/
/**
** \83p\83b\83`\90§\8dì\8eÒ
**
**/
-void
-reinitdll()
+void
+reinitdll(void)
{
cin = NULL;
nin = -1;
nout = -1;
noutmax = -1;
std_putc_mode = 1;
+ if ( guessbuffA ) {
+ free(guessbuffA);
+ guessbuffA = NULL;
+ }
+#ifdef UNICODESUPPORT
+ if ( guessbuffW ) {
+ free(guessbuffW);
+ guessbuffW = NULL;
+ }
+#endif /*UNICODESUPPORT*/
}
#ifndef DLLDBG /* DLLDBG @@*/
#endif /*UNICODESUPPORT*/
}
-int CALLBACK SetNkfOption(LPCSTR optStr)
+int CALLBACK SetNkfOption(LPSTR optStr)
{
LPSTR p;
int CALLBACK NkfGetKanjiCode(VOID)
{
int iCode=0;
- //if(iconv == s_iconv)iCode=0; /* 0:\83V\83t\83gJIS */
+ /* if(iconv == s_iconv)iCode=0; */ /* 0:\83V\83t\83gJIS */
if(iconv == w_iconv)iCode=3; /* UTF-8 */
else if(iconv == w_iconv16){
- if(utf16_mode == UTF16LE_INPUT)iCode=5; /* 5:UTF-16BE */
+ if(input_endian == ENDIAN_BIG)iCode=5; /* 5:UTF-16BE */
else iCode=4; /* 4:UTF-16LE */
}else if(iconv == e_iconv){
if(estab_f == FALSE)iCode=2; /* 2:ISO-2022-JP */
{
#ifdef UNICODESUPPORT
if ( outStr == NULL || nBufferLength == 0 ) return FALSE;
- print_guessed_code(NULL);
+ print_guessed_codeW(NULL);
*lpTCHARsReturned = wcslen(guessbuffW) + 1;
return wscp(outStr,guessbuffW,nBufferLength);
#else /*UNICODESUPPORT*/
#endif /*UNICODESUPPORT*/
}
-static struct NKFSUPPORTFUNCTIONS NkfSupportFunctions = {
-sizeof(struct NKFSUPPORTFUNCTIONS),
+static struct {
+DWORD size;
+LPCSTR copyrightA;
+LPCSTR versionA;
+LPCSTR dateA;
+DWORD functions;
+} NkfSupportFunctions = {
+sizeof(NkfSupportFunctions),
NULL,
NKF_VERSION,
NKF_RELEASE_DATE,
{
*lpBytesReturned = sizeof NkfSupportFunctions;
if ( outStr == NULL || nBufferLength == 0 ) return FALSE;
- NkfSupportFunctions.copyrightA = CopyRight;
+ NkfSupportFunctions.copyrightA = COPY_RIGHT;
memcpy(outStr,&NkfSupportFunctions,sizeof NkfSupportFunctions > nBufferLength ? nBufferLength : sizeof NkfSupportFunctions);
return TRUE;
}
file2(argv[2],argv[3],argv[4],buff3);
break;
case 'u':
- sts = NkfUsage(buff,sizeof buff * 0 + 2073,&len);
+ sts = NkfUsage(buff,sizeof buff,&len);
printf("strlen(buff)=%d\n",strlen(buff));
printf("NkfUsage()=%d len=%d \n%s",sts,len,buff);
break;