guile string conversion functions
[bpt/emacs.git] / src / fns.c
index fc5d044..01a1ea7 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -1074,6 +1074,23 @@ an error is signaled.  */)
   return string;
 }
 
+DEFUN ("string-to-scheme", Fstring_to_scheme, Sstring_to_scheme, 1, 1, 0, 0)
+  (Lisp_Object string)
+{
+  CHECK_STRING (string);
+  return scm_from_utf8_stringn (SSDATA (string), SBYTES (string));
+}
+
+DEFUN ("string-from-scheme", Fstring_from_scheme, Sstring_from_scheme, 1, 1, 0, 0)
+  (Lisp_Object string)
+{
+  char *s;
+  size_t lenp;
+
+  CHECK_STRING (string);
+  s = scm_to_utf8_stringn (string, &lenp);
+  return make_string (s, lenp);
+}
 \f
 DEFUN ("copy-alist", Fcopy_alist, Scopy_alist, 1, 1, 0,
        doc: /* Return a copy of ALIST.
@@ -2042,10 +2059,10 @@ of strings.  (`equal' ignores text properties.)  */)
 {
   Lisp_Object tem;
 
-  scm_dynwind_begin (0);
+  dynwind_begin ();
   scm_dynwind_fluid (compare_text_properties, SCM_BOOL_T);
   tem = Fequal (o1, o2);
-  scm_dynwind_end ();
+  dynwind_end ();
   return tem;
 }