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

Reply via email to