Subject: bug#21390: 24.5; Missing definition for predicate `buffer-or-string-p'

From: Tino Calancha <[email-masked]>
Date: Tue, 1 Sep 2015 10:47:03 +0900 (JST)

Predicate `buffer-or-string-p' is declared but definition is missing in:
emacs-24.5/src/data.c

In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.23)
  of 2015-08-30 on calancha-ilc.kek.jp
System Description:	Scientific Linux release 6.7 (Carbon)

Configured using:
  `configure --with-gif=no'

Important settings:
   value of $LANG: en_US.utf8
   value of $XMODIFIERS: @im=none
   locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
   tooltip-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils xterm time-date tooltip electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 75908 4118)
  (symbols 48 17587 0)
  (miscs 40 31 88)
  (strings 32 9018 4405)
  (string-bytes 1 248942)
  (vectors 16 7095)
  (vector-slots 8 341333 33198)
  (floats 8 65 260)
  (intervals 56 156 0)
  (buffers 960 11)
  (heap 1024 22077 2012))

--- data.c	2015-09-01 10:27:31.000000000 +0900
+++ data_patched.c	2015-09-01 10:27:48.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)