view src/terminfo.c @ 611:38db05db9cb5

[xemacs-hg @ 2001-06-08 12:21:09 by ben] ------ gc-in-window-procedure fixes ------ alloc.c: Create "post-gc actions", to avoid those dreaded "GC during window procedure" problems. event-msw.c: Abort, clean and simple, when GC in window procedure. We want to flush these puppies out. glyphs-msw.c: Use a post-gc action when destroying subwindows. lisp.h: Declare register_post_gc_action(). scrollbar-msw.c: Use a post-gc action when unshowing scrollbar windows, if in gc. redisplay.c: Add comment about the utter evilness of what's going down here. ------ cygwin setitimer fixes ------ Makefile.in.in: Compile profile.c only when HAVE_SETITIMER. nt.c: Style fixes. nt.c: Move setitimer() emulation to win32.c, because Cygwin needs it too. profile.c: Make sure we don't compile if no setitimer(). Use qxe_setitimer() instead of just plain setitimer(). signal.c: Define qxe_setitimer() as an encapsulation around setitimer() -- call setitimer() directly unless Cygwin or MS Win, in which case we use our simulated version in win32.c. systime.h: Prototype mswindows_setitimer() and qxe_setitimer(). Long comment about "qxe" and the policy regarding encapsulation. win32.c: Move setitimer() emulation here, so Cygwin can use it. Rename a couple of functions and variables to be longer and more descriptive. In setitimer_helper_proc(), send the signal using either mswindows_raise() or (on Cygwin) kill(). If for some reason we are still getting lockups, we'll change the kill() to directly invoke the signal handlers. ------ windows shell fixes ------ callproc.c, ntproc.c: Comments about how these two files must die. callproc.c: On MS Windows, init shell-file-name from SHELL, then COMSPEC, not just COMSPEC. (more correct and closer to FSF.) Don't force a value for SHELL into the environment. (Comments added to explain why not.) nt.c: Don't shove a fabricated SHELL into the environment. See above. ------ misc fixes ------ glyphs-shared.c: Style correction. xemacs-faq.texi: Merge in the rest of Hrvoje's Windows FAQ. Redo section 7 to update current reality and add condensed versions of new changes for 21.1 and 21.4. (Not quite done for 21.4.) Lots more Windows updates. process.el: Need to quote a null argument, too. From Dan Holmsand. startup.el: startup.el: Call MS Windows init function. win32-native.el: Correct comments at top. Correctly handle passing arguments to Cygwin programs and to bash. Fix quoting of zero-length arguments (from Dan Holmsand). Set shell-command-switch based on shell-file-name, which in turn comes from env var SHELL.
author ben
date Fri, 08 Jun 2001 12:21:27 +0000
parents 610e4ba94a4d
children 04bc9d2f42c7
line wrap: on
line source

/* Interface from Emacs to terminfo.
   Copyright (C) 1985, 1986, 1993 Free Software Foundation, Inc.

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 2, 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; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

/* Synched up with: FSF 19.30. */

#include <config.h>

#include <string.h>

/* Every little bit of this God-damned file has caused all manner
   of headaches due to inconsistent and incorrect header files
   on one system or other, and we don't currently need anything here,
   so just comment the whole damn lot out!!! */

#ifndef HAVE_TERMIOS

#ifdef AIX
#include <termio.h>
#endif /* AIX */

/* Interface to curses/terminfo library.
   Turns out that all of the terminfo-level routines look
   like their termcap counterparts except for tparm, which replaces
   tgoto.  Not only is the calling sequence different, but the string
   format is different too.
*/

#include CURSES_H_FILE
/* Sun, in their infinite lameness, supplies (possibly) broken headers
   even under Solaris.  GCC feels it necessary to correct things by
   supplying its own headers.  Unfortunately, if you build GCC under
   one version of Solaris and then upgrade your Solaris, you may get
   screwed because Sun in their continuing lameness changes curses.h
   in such a way that the "fixed" GCC headers are now broken. (GCC
   is equally lame in that it supplies "fixed" headers for curses.h
   but not term.h.) However, it seems to work to just not include
   term.h under Solaris, so we try that.  KLUDGE! */
#if !(defined (__GNUC__) && defined (SOLARIS2))
#include TERM_H_FILE
#endif

extern void *xmalloc (int size);

#if 0 /* If this isn't declared somewhere, too bad */
extern char * tparm (const char *string, int arg1, int arg2, int arg3,
                     int arg4, int arg5, int arg6, int arg7, int arg8,
                     int arg9);
#endif
/* XEmacs: renamed this function because just tparam() conflicts with
   ncurses (We don't use this function anyway!) */
char *
emacs_tparam (const char *string, char *outstring, int len, int arg1,
	      int arg2, int arg3, int arg4, int arg5, int arg6, int arg7,
	      int arg8, int arg9)
{
  char *temp;

  temp = (char *) tparm (string, arg1, arg2, arg3, arg4, arg5, arg6, arg7,
			 arg8, arg9);
  if (outstring == 0)
    outstring = (char *) xmalloc (strlen (temp) + 1);
  strcpy (outstring, temp);
  return outstring;
}

#endif /* not HAVE_TERMIOS */