* \e$B8=:_!"\e(Bnkf \e$B$O\e(B SorceForge \e$B$K$F%a%s%F%J%s%9$,B3$1$i$l$F$$$^$9!#\e(B
* http://sourceforge.jp/projects/nkf/
***********************************************************************/
-#define NKF_IDENT "$Id: nkf.c,v 1.177 2008/02/08 12:08:50 naruse Exp $"
+#define NKF_IDENT "$Id: nkf.c,v 1.178 2008/05/21 20:41:06 naruse Exp $"
#define NKF_VERSION "2.0.8"
#define NKF_RELEASE_DATE "2008-02-08"
#define COPY_RIGHT \
nkf_char std_gc_buf[STD_GC_BUFSIZE];
nkf_char std_gc_ndx;
-static void
-nkf_str_upcase(const char *src, char *dest, size_t length)
+static int
+nkf_str_caseeql(const char *src, const char *target)
{
- int i = 0;
- for (; i < length && src[i]; i++) {
- dest[i] = nkf_toupper(src[i]);
+ int i;
+ for (i = 0; src[i] && target[i]; i++) {
+ if (nkf_toupper(src[i]) != nkf_toupper(target[i])) return FALSE;
}
- dest[i] = 0;
+ if (src[i] || target[i]) return FALSE;
+ else return TRUE;
}
static nkf_encoding*
static int
nkf_enc_find_index(const char *name)
{
- int i, index = -1;
- if (*name == 'X' && *(name+1) == '-') name += 2;
+ int i;
+ if (name[0] == 'X' && *(name+1) == '-') name += 2;
for (i = 0; encoding_name_to_id_table[i].id >= 0; i++) {
- if (strcmp(name, encoding_name_to_id_table[i].name) == 0) {
+ if (nkf_str_caseeql(encoding_name_to_id_table[i].name, name)) {
return encoding_name_to_id_table[i].id;
}
}
- return index;
+ return -1;
}
static nkf_encoding*
}
backup_filename[j] = '\0';
}else{
- j = strlen(suffix) + filename_length;
- backup_filename = malloc( + 1);
+ backup_filename = malloc(filename_length + strlen(suffix) + 1);
strcpy(backup_filename, filename);
strcat(backup_filename, suffix);
backup_filename[j] = '\0';
nkf_char i, j;
unsigned char *p;
unsigned char *cp_back = NULL;
- char codeset[32];
nkf_encoding *enc;
if (option_mode==1)
cp = (unsigned char *)long_option[i].alias;
}else{
if (strcmp(long_option[i].name, "ic=") == 0){
- nkf_str_upcase((char *)p, codeset, 32);
- enc = nkf_enc_find(codeset);
+ enc = nkf_enc_find((char *)p);
if (!enc) continue;
input_encoding = enc;
continue;
}
if (strcmp(long_option[i].name, "oc=") == 0){
- nkf_str_upcase((char *)p, codeset, 32);
- enc = nkf_enc_find(codeset);
+ enc = nkf_enc_find((char *)p);
if (enc <= 0) continue;
output_encoding = enc;
continue;
fprintf(stderr, "Can't rename %s to %s\n",
origfname, backup_filename);
}
+ free(backup_filename);
}else{
#ifdef MSDOS
if (unlink(origfname)){