core: Remove make_char.
[mes.git] / string.c
index c02b22cc62fcfc3d6a4ba0adc512f51cba8fa90f..f3eb2b172b6f566ec13f0b904627f1f176fd1b71 100644 (file)
--- a/string.c
+++ b/string.c
@@ -48,7 +48,7 @@ SCM
 string_length (SCM x)
 {
   assert (TYPE (x) == STRING);
-  return make_number (VALUE (length (STRING (x))));
+  return MAKE_NUMBER (VALUE (length (STRING (x))));
 }
 
 SCM
@@ -57,7 +57,7 @@ string_ref (SCM x, SCM k)
   assert (TYPE (x) == STRING);
   assert (TYPE (k) == NUMBER);
   VALUE (tmp_num) = VALUE (k);
-  return make_char (VALUE (list_ref (STRING (x), tmp_num)));
+  return MAKE_CHAR (VALUE (list_ref (STRING (x), tmp_num)));
 }
 
 SCM
@@ -78,7 +78,7 @@ substring (SCM x) ///((arity . n))
   while (start--) s = cdr (s);
   SCM p = cell_nil;
   while (n-- && s != cell_nil) {
-    p = append2 (p, cons (make_char (VALUE (car (s))), cell_nil));
+    p = append2 (p, cons (MAKE_CHAR (VALUE (car (s))), cell_nil));
     s = cdr (s);
   }
   return make_string (p);
@@ -89,9 +89,9 @@ number_to_string (SCM x)
 {
   assert (TYPE (x) == NUMBER);
   int n = VALUE (x);
-  SCM p = n < 0 ? cons (make_char ('-'), cell_nil) : cell_nil;
+  SCM p = n < 0 ? cons (MAKE_CHAR ('-'), cell_nil) : cell_nil;
   do {
-    p = cons (make_char (n % 10 + '0'), p);
+    p = cons (MAKE_CHAR (n % 10 + '0'), p);
     n = n / 10;
   } while (n);
   return make_string (p);
@@ -101,7 +101,7 @@ SCM
 string_to_symbol (SCM x)
 {
   assert (TYPE (x) == STRING);
-  return make_symbol (STRING (x));
+  return STRING (x) == cell_nil ? cell_nil : make_symbol (STRING (x));
 }
 
 SCM
@@ -110,3 +110,18 @@ symbol_to_string (SCM x)
   assert (TYPE (x) == SYMBOL);
   return make_string (STRING (x));
 }
+
+SCM
+keyword_to_symbol (SCM x)
+{
+  assert (TYPE (x) == KEYWORD);
+  return make_symbol (STRING (x));
+}
+
+SCM
+symbol_to_keyword (SCM x)
+{
+  assert (TYPE (x) == SYMBOL);
+  g_cells[tmp_num].value = KEYWORD;
+  return make_cell (tmp_num, STRING (x), 0);
+}