Author: ek.kato
Date: Wed Apr 1 19:29:53 2009
New Revision: 5944
Modified:
trunk/uim/iconv.c
trunk/uim/skk.c
Log:
* uim/iconv.c (uim_ext_iconv_code_conv) : Simplify with
MAKE_STR_DIRECTLY().
* uim/skk.c
- (skk_merge_replaced_numeric_str)
- (skk_replace_numeric)
- (skk_get_nth_candidate)
- (restore_numeric)
- (skk_Remove_annotation)
- (skk_eval_candidate)
- (skk_substring)
- Ditto.
- (skk_save_personal_dictionary)
- Check error.
Modified: trunk/uim/iconv.c
==============================================================================
--- trunk/uim/iconv.c (original)
+++ trunk/uim/iconv.c Wed Apr 1 19:29:53 2009
@@ -381,17 +381,13 @@
static uim_lisp
uim_ext_iconv_code_conv(uim_lisp ic_, uim_lisp inbuf_)
{
- uim_lisp outbuf_;
char *outbuf;
outbuf = uim_iconv_code_conv(C_PTR(ic_), REFER_C_STR(inbuf_));
if (!outbuf)
return uim_scm_f();
- outbuf_ = MAKE_STR(outbuf);
- free(outbuf);
-
- return outbuf_;
+ return MAKE_STR_DIRECTLY(outbuf);
}
static uim_lisp
Modified: trunk/uim/skk.c
==============================================================================
--- trunk/uim/skk.c (original)
+++ trunk/uim/skk.c Wed Apr 1 19:29:53 2009
@@ -1480,7 +1480,6 @@
int convlen;
const char *numstr;
char *convstr;
- uim_lisp merged_str;
if (str_ == uim_scm_null())
return uim_scm_null();
@@ -1510,9 +1509,7 @@
}
}
- merged_str = MAKE_STR(str);
- free(str);
- return merged_str;
+ return MAKE_STR_DIRECTLY(str);
}
static char *
@@ -1546,12 +1543,10 @@
skk_replace_numeric(uim_lisp head_)
{
char *str;
- uim_lisp result;
-
+
str = replace_numeric(REFER_C_STR(head_));
- result = MAKE_STR(str);
- free(str);
- return result;
+
+ return MAKE_STR_DIRECTLY(str);
}
static char *
@@ -1662,7 +1657,7 @@
int n;
struct skk_cand_array *ca, *subca;
int i, j, k = 0;
- char *cands = NULL;
+ const char *cands = NULL;
char *p;
const char *numstr;
int method_place = 0;
@@ -1697,19 +1692,19 @@
if (subca) {
for (j = 0; j < subca->nr_cands; j++) {
if (k == n) {
- cands = uim_strdup(ca->cands[i]);
+ char *str;
+ str = uim_strdup(ca->cands[i]);
sublen = strlen(subca->cands[j]);
newlen = strlen(ca->cands[i]) - 2 + sublen;
mark = p - ca->cands[i];
- cands = uim_realloc(cands, newlen + 1);
- memmove(&cands[mark + sublen],
- &cands[mark + 2],
+ str = uim_realloc(str, newlen + 1);
+ memmove(&str[mark + sublen],
+ &str[mark + 2],
newlen - mark - sublen + 1);
- memcpy(&cands[mark], subca->cands[j], sublen);
+ memcpy(&str[mark], subca->cands[j], sublen);
- str_ = MAKE_STR(cands);
- free(cands);
+ str_ = MAKE_STR_DIRECTLY(str);
return skk_merge_replaced_numeric_str(str_, numlst_);
}
k++;
@@ -2019,7 +2014,6 @@
int i, j, len, newlen, numstrlen;
const char *numstr;
char *str;
- uim_lisp ret;
str = uim_strdup(s);
newlen = len = strlen(str);
@@ -2040,10 +2034,7 @@
numlst_ = CDR(numlst_);
}
}
- ret = MAKE_STR(str);
- free(str);
-
- return ret;
+ return MAKE_STR_DIRECTLY(str);
}
static uim_lisp
@@ -3214,6 +3205,12 @@
write_out_line(fp, sl);
}
+ if (fflush(fp) != 0)
+ goto error;
+
+ if (fsync(fileno(fp)) != 0)
+ goto error;
+
if (fclose(fp) != 0)
goto error;
@@ -3253,7 +3250,6 @@
skk_remove_annotation(uim_lisp str_)
{
char *str, *sep;
- uim_lisp res;
if (str_ == uim_scm_null())
return uim_scm_null();
@@ -3263,9 +3259,7 @@
if (sep && (*(sep + 1) != '\0')) {
*sep = '\0';
}
- res = MAKE_STR(str);
- free(str);
- return res;
+ return MAKE_STR_DIRECTLY(str);
}
static char *
@@ -3319,7 +3313,6 @@
{
const char *cand;
char *str;
- uim_lisp cand_;
if (str_ == uim_scm_null())
return uim_scm_null();
@@ -3331,10 +3324,7 @@
if (!str)
return str_;
- cand_ = MAKE_STR(str);
- free(str);
-
- return cand_;
+ return MAKE_STR_DIRECTLY(str);
}
/* only for siod */
@@ -3346,7 +3336,6 @@
int start;
int end;
int len;
- uim_lisp ret;
int i, j = 0;
str = REFER_C_STR(str_);
@@ -3368,10 +3357,7 @@
j++;
}
s[j] = '\0';
- ret = MAKE_STR(s);
- free(s);
-
- return ret;
+ return MAKE_STR_DIRECTLY(s);
}
static uim_lisp