X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Flread.c;h=d62b0d869864718c1c6ba4ea4f9591f812319066;hb=4578ba276d3a4d50efd91e6c10c01e35e15fccf9;hp=3e714690fa7677d095db2e98ee5535a7461ad8c5;hpb=a5812bf2ff9a9cf40f4ff78dcb83f5b4c295bd18;p=chise%2Fxemacs-chise.git.1 diff --git a/src/lread.c b/src/lread.c index 3e71469..d62b0d8 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1632,6 +1632,26 @@ START and END optionally delimit a substring of STRING from which to read; return tem; } +Lisp_Object +read_from_c_string (const unsigned char* str, size_t size) +{ + Lisp_Object tem; + Lisp_Object lispstream = Qnil; + struct gcpro gcpro1; + +#ifdef COMPILED_FUNCTION_ANNOTATION_HACK + Vcurrent_compiled_function_annotation = Qnil; +#endif + GCPRO1 (lispstream); + lispstream = make_fixed_buffer_input_stream (str, size); + + Vread_objects = Qnil; + + tem = read0 (lispstream); + Lstream_delete (XLSTREAM (lispstream)); + UNGCPRO; + return tem; +} #ifdef LISP_BACKQUOTES @@ -1940,7 +1960,7 @@ read_atom (Lisp_Object readcharfun, else if (sizeof (long) == sizeof (EMACS_INT)) number = atol (read_buffer); else - abort (); + ABORT (); return make_int (number); } #else