Exemplo n.º 1
0
static void KBuffer_convertCharset(KonohaContext *kctx, KBuffer* wb, const char *targetCharset, const char *sourceCharset, const char *sourceBuf, size_t sourceSize, KTraceInfo *trace)
{
	uintptr_t conv = I18NAPI iconv_open_i(kctx, targetCharset, sourceCharset, trace);
	if(conv != ICONV_NULL) {
		KLIB KBuffer_iconv(kctx, wb, conv, sourceBuf, sourceSize, trace);
		I18NAPI iconv_close_i(kctx, conv);
	}
}
Exemplo n.º 2
0
static void kDir_close(KonohaContext *kctx, kDir *dir)
{
	if(dir->dirp != NULL) {
		closedir(dir->dirp);
		dir->dirp = NULL;
	}
	if(dir->readerIconv != ICONV_NULL) {
		PLATAPI iconv_close_i(kctx, dir->readerIconv);
		dir->readerIconv = ICONV_NULL;
	}
}
Exemplo n.º 3
0
static void kFile_close(KonohaContext *kctx, kFile *file, KTraceInfo *trace)
{
	int ret = 0;
	DBG_ASSERT(file->fp != NULL);
	if(!(file->fp == stdin || file->fp == stdout || file->fp == stderr)) {
		ret = fclose(file->fp);
	}
	if(ret != 0) {
		KTraceErrorPoint(trace, SoftwareFault|SystemFault, "fclose", LogErrno);
	}
	file->fp = NULL;
	if(file->readerIconv != ICONV_NULL) {
		I18NAPI iconv_close_i(kctx, file->readerIconv);
		file->readerIconv = ICONV_NULL;
	}
	if(file->writerIconv != ICONV_NULL) {
		I18NAPI iconv_close_i(kctx, file->writerIconv);
		file->writerIconv = ICONV_NULL;
	}
}