diff -u ../eblook-1.6.1.orig/codeconv.c ../eblook-1.6.1/codeconv.c
--- ../eblook-1.6.1.orig/codeconv.c 2003-03-08 23:29:47.000000000 +0900
+++ ../eblook-1.6.1/codeconv.c 2010-08-15 08:33:21.218750000 +0900
@@ -564,7 +564,7 @@
char *
xfgets(str, size, fp)
char *str;
- int size;
+ size_t size;
FILE *fp;
{
char *ibuf, *ibuf0;
@@ -595,7 +595,7 @@
ibuf[ilen]=0;
ilen=strlen(ibuf);
- status = current_to_euc(&ibuf,&ilen,&str,(size_t *)&size);
+ status = current_to_euc(&ibuf,&ilen,&str,&size);
str0[size0-size]=0;
#ifndef HAVE_ALLOCA
free(ibuf0);
@@ -652,7 +652,6 @@
char **in_buf, **out_buf;
size_t *in_len,*out_len;
{
- static int output_left = -1;
int c1, c2;
size_t count = 0;
@@ -661,6 +660,7 @@
size_t ret;
if (cur_to_euc == (iconv_t) -1)
return CODECONV_ERROR;
+ iconv(cur_to_euc,NULL,NULL,NULL,NULL);
ret = iconv(cur_to_euc,in_buf,in_len,out_buf,out_len);
if (ret != ((size_t)-1))
ret = iconv(cur_to_euc, NULL, in_len, out_buf, out_len);
@@ -675,17 +675,6 @@
}
#endif /* HAVE_ICONV */
- if (output_left >= 0) {
- if (*out_len > 0) {
- *((*in_buf)++) = output_left;
- (*out_len)--;
- count++;
- output_left = -1;
- } else {
- /* Output Buffer Overflow */
- return CODECONV_BUFFER_OVERFLOW;
- }
- }
if (conv_mode == IO_SJIS) {
while(*in_len>0) {
if (*out_len<=0) break;
@@ -724,10 +713,8 @@
*((*out_buf)++) = c1 | 0x80;
(*out_len)--;
count++;
- if (*out_len <= 0) {
- output_left = c2;
+ if (*out_len <= 0)
return CODECONV_BUFFER_OVERFLOW;
- }
*((*out_buf)++) = c2;
(*out_len)--;
count++;
@@ -761,7 +748,6 @@
char **in_buf, **out_buf;
size_t *in_len,*out_len;
{
- static int output_left = -1;
int c1, c2;
size_t count = 0;
@@ -770,6 +756,7 @@
size_t ret;
if (euc_to_cur == (iconv_t) -1)
return CODECONV_ERROR;
+ iconv(euc_to_cur,NULL,NULL,NULL,NULL);
ret = iconv(euc_to_cur,in_buf,in_len,out_buf,out_len);
if (ret != ((size_t)-1))
ret = iconv(euc_to_cur,NULL,in_len,out_buf,out_len);
@@ -784,17 +771,6 @@
}
#endif /* HAVE_ICONV */
- if (output_left >= 0) {
- if (*out_len > 0) {
- *((*in_buf)++) = output_left;
- (*out_len)--;
- count++;
- output_left = -1;
- } else {
- /* Output Buffer Overflow */
- return CODECONV_BUFFER_OVERFLOW;
- }
- }
if (conv_mode == IO_SJIS) {
while(*in_len>0) {
if (*out_len<=0) break;
@@ -829,10 +805,8 @@
*((*out_buf)++) = c1;
(*out_len)--;
count++;
- if (*out_len <= 0) {
- output_left = c2;
+ if (*out_len <= 0)
return CODECONV_BUFFER_OVERFLOW;
- }
*((*out_buf)++) = c2;
(*out_len)--;
count++;
diff -u ../eblook-1.6.1.orig/codeconv.h ../eblook-1.6.1/codeconv.h
--- ../eblook-1.6.1.orig/codeconv.h 2003-03-08 23:29:47.000000000 +0900
+++ ../eblook-1.6.1/codeconv.h 2010-08-14 18:44:09.390625000 +0900
@@ -50,7 +50,7 @@
extern int xprintf PROTO((const char *fmt, ...));
extern int xfputs PROTO((const char *str, FILE *fp));
extern int xputs PROTO((const char *str));
-extern char *xfgets PROTO((char *str, int size, FILE *fp));
+extern char *xfgets PROTO((char *str, size_t size, FILE *fp));
extern char *euc_to_jis PROTO((char *jis, const char *euc, int len));
extern char *jis_to_euc PROTO((char *euc, const char *jis, int len));
diff -u ../eblook-1.6.1.orig/eblook.c ../eblook-1.6.1/eblook.c
--- ../eblook-1.6.1.orig/eblook.c 2004-06-18 01:09:01.000000000 +0900
+++ ../eblook-1.6.1/eblook.c 2010-08-14 18:50:40.406250000 +0900
@@ -133,7 +133,7 @@
int pclose_pager (FILE *);
#endif
-char *read_command (char *, int, FILE *);
+char *read_command (char *, size_t, FILE *);
int excute_command (char *);
int parse_command_line (char *, char *[]);
#ifdef USE_READLINE
@@ -650,7 +650,7 @@
char *
read_command (command_line, size, stream)
char *command_line;
- int size;
+ size_t size;
FILE *stream;
{
char *p;