aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRobin Templeton <[email protected]>2014-06-17 22:38:51 -0400
committerRobin Templeton <[email protected]>2015-04-20 00:29:01 -0400
commit00b051c9bd0219a6bcfd1e41036d1493d0a3dc38 (patch)
treeb43c3d16710abb7af2507df0663006d67289c1c8 /src
parent5e4126bc231bb76d046898436976db3b0cc74151 (diff)
lisp_string printer
Diffstat (limited to 'src')
-rw-r--r--src/alloc.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 30f09d32fc..e64bc37fdc 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1610,12 +1610,22 @@ die (const char *msg, const char *file, int line)
/* Initialization. */
+static int
+print_lisp_string (SCM obj, SCM port, scm_print_state *pstate)
+{
+ scm_c_write (port, "#<elisp-string \"", 16);
+ scm_c_write (port, XSTRING (obj)->data, STRING_BYTES (XSTRING (obj)));
+ scm_c_write (port, "\">", 2);
+ return 0;
+}
+
void
init_alloc_once (void)
{
lisp_misc_tag = scm_make_smob_type ("elisp-misc", 0);
lisp_string_tag = scm_make_smob_type ("elisp-string",
sizeof (struct Lisp_String));
+ scm_set_smob_print (lisp_string_tag, print_lisp_string);
lisp_vectorlike_tag = scm_make_smob_type ("elisp-vectorlike", 0);
/* Used to do Vpurify_flag = Qt here, but Qt isn't set up yet! */