Mercurial > hg > xemacs-beta
diff src/window.c @ 4846:a98ca4640147
clean up object print methods
casetab.c, console.c, data.c, database.c, device-msw.c, device.c, eval.c, file-coding.c, frame.c, glyphs.c, gui.c, keymap.c, lisp.h, mule-charset.c, objects.c, print.c, process.c, tooltalk.c, ui-gtk.c, window.c:
New function printing_unreadable_lcrecord(). Automatically
prints the type name and pointer value of the object. Use it
instead of printing_unreadable_object(); make that latter
function local to print.c.
window.c: During creation, window may have Qt as its buffer. Don't
crash if trying to print such a window.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Wed, 13 Jan 2010 05:49:13 -0600 |
parents | 1d61580e0cf7 |
children | 8b63e21b0436 |
line wrap: on
line diff
--- a/src/window.c Wed Jan 13 04:25:15 2010 -0600 +++ b/src/window.c Wed Jan 13 05:49:13 2010 -0600 @@ -313,13 +313,19 @@ print_window (Lisp_Object obj, Lisp_Object printcharfun, int UNUSED (escapeflag)) { + Lisp_Object buf; + if (print_readably) - printing_unreadable_object ("#<window 0x%x>", XWINDOW (obj)->header.uid); + printing_unreadable_lcrecord (obj, 0); write_c_string (printcharfun, "#<window"); - if (!NILP (XWINDOW (obj)->buffer)) + buf = XWINDOW_BUFFER (obj); + if (EQ (buf, Qt)) + write_c_string (printcharfun, " during creation"); + else if (!NILP (buf)) { - Lisp_Object name = XBUFFER (XWINDOW (obj)->buffer)->name; + + Lisp_Object name = XBUFFER (buf)->name; write_fmt_string_lisp (printcharfun, " on %S", 1, name); } write_fmt_string (printcharfun, " 0x%x>", XWINDOW (obj)->header.uid);