Subject: Corrected patch

From: Tino Calancha <[email-masked]>
Date: Tue, 1 Sep 2015 11:39:15 +0900 (JST)

My previous patch would not work. I attach a corrected version which 
fix the issue.
--- data.c	2015-09-01 10:27:31.000000000 +0900
+++ data_patched.c	2015-09-01 11:31:41.000000000 +0900
@@ -458,6 +458,15 @@
   return Qnil;
 }
 
+DEFUN ("buffer-or-string-p", Fbuffer_or_string_p, Sbuffer_or_string_p, 1, 1, 0,
+       doc: /* Return t if OBJECT is an an editor buffer or a string.*/)
+  (Lisp_Object object)
+{
+  if ( BUFFERP (object) || STRINGP (object))
+    return Qt;
+  return Qnil;
+}
+
 DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0,
        doc: /* Return t if OBJECT is a marker (editor pointer).  */)
   (Lisp_Object object)
@@ -3595,6 +3604,7 @@
   defsubr (&Sarrayp);
   defsubr (&Ssequencep);
   defsubr (&Sbufferp);
+  defsubr (&Sbuffer_or_string_p);
   defsubr (&Smarkerp);
   defsubr (&Ssubrp);
   defsubr (&Sbyte_code_function_p);