view src/console-stream-impl.h @ 5884:5a93f519accc

If not waiting for C-x #, don't memorise the device, #'gnuserv-edit-files lisp/ChangeLog addition: 2015-04-03 Aidan Kehoe <kehoea@parhasard.net> * gnuserv.el (gnuserv-edit-files): No need to memorise the device created for the sake of C-x #, if the client is not waiting for us. Fixes a bug in the following situation: -- Start gnuserv from an XEmacs within screen -- Call gnuclient with an X11 display available, connecting successfully to that XEmacs and creating an X11 frame -- Then call gnuclient file-name.txt, save the file, then type C-x #; this deletes all the frames on the device, which it shouldn't.
author Aidan Kehoe <kehoea@parhasard.net>
date Fri, 03 Apr 2015 00:27:59 +0100
parents 308d34e9f07d
children
line wrap: on
line source

/* Define stream specific console, device, and frame object for XEmacs.
   Copyright (C) 1995 Board of Trustees, University of Illinois.
   Copyright (C) 1995 Free Software Foundation, Inc.
   Copyright (C) 2002 Ben Wing.

This file is part of XEmacs.

XEmacs is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.

XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with XEmacs.  If not, see <http://www.gnu.org/licenses/>. */

/* Synched up with: Not in FSF. */

/* Written by Ben Wing. */

#ifndef INCLUDED_console_stream_impl_h_
#define INCLUDED_console_stream_impl_h_

#include "console-impl.h"
#include "console-stream.h"

DECLARE_CONSOLE_TYPE (stream);

struct stream_console
{
#ifdef NEW_GC
  NORMAL_LISP_OBJECT_HEADER header;
#endif /* NEW_GC */
  FILE *in;
  FILE *out;
  FILE *err;
  int needs_newline;
  Lisp_Object instream;
};

#ifdef NEW_GC
typedef struct stream_console Lisp_Stream_Console;

DECLARE_LISP_OBJECT (stream_console, Lisp_Stream_Console);

#define XSTREAM_CONSOLE(x) \
  XRECORD (x, stream_console, Lisp_Stream_Console)
#define wrap_stream_console(p) wrap_record (p, stream_console)
#define STREAM_CONSOLE_P(x) RECORDP (x, stream_console)
#endif /* NEW_GC */

#define CONSOLE_STREAM_DATA(con) CONSOLE_TYPE_DATA (con, stream)

#endif /* INCLUDED_console_stream_impl_h_ */