From b16b9e4656e7199c2aec74a4c8ebc7a875d3ba73 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 2 Feb 2015 15:02:49 +0100 Subject: massive reduction of unneeded files --- nx-X11/programs/xterm/resize.c | 600 ----------------------------------------- 1 file changed, 600 deletions(-) delete mode 100644 nx-X11/programs/xterm/resize.c (limited to 'nx-X11/programs/xterm/resize.c') diff --git a/nx-X11/programs/xterm/resize.c b/nx-X11/programs/xterm/resize.c deleted file mode 100644 index 67cdd6e57..000000000 --- a/nx-X11/programs/xterm/resize.c +++ /dev/null @@ -1,600 +0,0 @@ -/* $XTermId: resize.c,v 1.97 2005/11/13 23:10:36 tom Exp $ */ - -/* - * $Xorg: resize.c,v 1.3 2000/08/17 19:55:09 cpqbld Exp $ - */ - -/* $XFree86: xc/programs/xterm/resize.c,v 3.60 2005/11/13 23:10:36 dickey Exp $ */ - -/* - * Copyright 2003-2004,2005 by Thomas E. Dickey - * - * All Rights Reserved - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name(s) of the above copyright - * holders shall not be used in advertising or otherwise to promote the - * sale, use or other dealings in this Software without prior written - * authorization. - * - * - * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - * - * All Rights Reserved - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notice appear in all copies and that - * both that copyright notice and this permission notice appear in - * supporting documentation, and that the name of Digital Equipment - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software without specific, written prior permission. - * - * - * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR - * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, - * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS - * SOFTWARE. - */ - -/* resize.c */ - -#include -#include -#include -#include -#include - -#ifdef APOLLO_SR9 -#define CANT_OPEN_DEV_TTY -#endif - -#ifndef USE_TERMINFO /* avoid conflict with configure script */ -#if defined(__QNX__) || defined(__SCO__) || defined(linux) || defined(__OpenBSD__) || defined(__UNIXWARE__) -#define USE_TERMINFO -#endif -#endif - -#if defined(__QNX__) -#include -#endif - -/* - * Some OS's may want to use both, like SCO for example. We catch here anyone - * who hasn't decided what they want. - */ -#if !defined(USE_TERMCAP) && !defined(USE_TERMINFO) -#define USE_TERMINFO -#endif - -#include -#include - -#ifdef X_NOT_POSIX -#if !defined(SYSV) && !defined(i386) -extern struct passwd *getpwuid(); /* does ANYBODY need this? */ -#endif /* SYSV && i386 */ -#endif /* X_NOT_POSIX */ - -#ifndef bzero -#define bzero(s, n) memset(s, 0, n) -#endif - -#ifdef __MVS__ -#define ESCAPE(string) "\047" string -#else -#define ESCAPE(string) "\033" string -#endif - -#define EMULATIONS 2 -#define SUN 1 -#define VT100 0 - -#define TIMEOUT 10 - -#define SHELL_UNKNOWN 0 -#define SHELL_C 1 -#define SHELL_BOURNE 2 -/* *INDENT-OFF* */ -static struct { - char *name; - int type; -} shell_list[] = { - { "csh", SHELL_C }, /* vanilla cshell */ - { "tcsh", SHELL_C }, - { "jcsh", SHELL_C }, - { "sh", SHELL_BOURNE }, /* vanilla Bourne shell */ - { "ksh", SHELL_BOURNE }, /* Korn shell (from AT&T toolchest) */ - { "ksh-i", SHELL_BOURNE }, /* other name for latest Korn shell */ - { "bash", SHELL_BOURNE }, /* GNU Bourne again shell */ - { "jsh", SHELL_BOURNE }, - { NULL, SHELL_BOURNE } /* default (same as xterm's) */ -}; -/* *INDENT-ON* */ - -static char *emuname[EMULATIONS] = -{ - "VT100", - "Sun", -}; -static char *myname; -static int shell_type = SHELL_UNKNOWN; -static char *getsize[EMULATIONS] = -{ - ESCAPE("7") ESCAPE("[r") ESCAPE("[999;999H") ESCAPE("[6n"), - ESCAPE("[18t"), -}; -#if defined(USE_STRUCT_TTYSIZE) -#elif defined(USE_STRUCT_WINSIZE) -static char *getwsize[EMULATIONS] = -{ /* size in pixels */ - 0, - ESCAPE("[14t"), -}; -#endif /* USE_STRUCT_{TTYSIZE|WINSIZE} */ -static char *restore[EMULATIONS] = -{ - ESCAPE("8"), - 0, -}; -static char *setname = ""; -static char *setsize[EMULATIONS] = -{ - 0, - ESCAPE("[8;%s;%st"), -}; - -#ifdef USE_ANY_SYSV_TERMIO -static struct termio tioorig; -#elif defined(USE_TERMIOS) -static struct termios tioorig; -#else -static struct sgttyb sgorig; -#endif /* USE_ANY_SYSV_TERMIO/USE_TERMIOS */ - -static char *size[EMULATIONS] = -{ - ESCAPE("[%d;%dR"), - ESCAPE("[8;%d;%dt"), -}; -static char sunname[] = "sunsize"; -static int tty; -static FILE *ttyfp; - -#if defined(USE_STRUCT_TTYSIZE) -#elif defined(USE_STRUCT_WINSIZE) -static char *wsize[EMULATIONS] = -{ - 0, - ESCAPE("[4;%hd;%hdt"), -}; -#endif /* USE_STRUCT_{TTYSIZE|WINSIZE} */ - -static SIGNAL_T onintr(int sig); -static SIGNAL_T resize_timeout(int sig); -static int checkdigits(char *str); -static void Usage(void); -static void readstring(FILE *fp, char *buf, char *str); - -#undef US /* may conflict with curses.h */ - -#ifdef USE_TERMCAP -#ifdef HAVE_TERMCAP_H -#include -#if defined(NCURSES_VERSION) - /* The tgetent emulation function in SVr4-style curses implementations - * (e.g., ncurses) ignores the buffer, so TERMCAP can't be set from it. - * Instead, just use terminfo. - */ -#undef USE_TERMCAP -#include -#endif -#else -#undef ERR /* workaround for glibc 2.1.3 */ -#include -#ifdef NCURSES_VERSION -#ifdef HAVE_NCURSES_TERM_H -#include -#else -#include /* tgetent() */ -#endif /*CYGWIN */ -#endif -#endif /* HAVE_TERMCAP_H */ -#endif - -#define TERMCAP_SIZE 1500 /* 1023 is standard; 'screen' exceeds */ - -#ifdef USE_TERMCAP -static void -print_termcap(const char *termcap) -{ - int ch; - - putchar('\''); - while ((ch = *termcap++) != '\0') { - switch (ch & 0xff) { - case 127: /* undo bug in GNU termcap */ - printf("^?"); - break; - case '\'': /* must escape anyway (unlikely) */ - /* FALLTHRU */ - case '!': /* must escape for SunOS csh */ - putchar('\\'); - /* FALLTHRU */ - default: - putchar(ch); - break; - } - } - putchar('\''); -} -#endif /* USE_TERMCAP */ - -/* - resets termcap string to reflect current screen size - */ -int -main(int argc, char **argv ENVP_ARG) -{ - register char *ptr, *env; - register int emu = VT100; - char *shell; - struct passwd *pw; - int i; - int rows, cols; -#ifdef USE_ANY_SYSV_TERMIO - struct termio tio; -#elif defined(USE_TERMIOS) - struct termios tio; -#else - struct sgttyb sg; -#endif /* USE_ANY_SYSV_TERMIO/USE_TERMIOS */ -#ifdef USE_TERMCAP - int ok_tcap = 1; - char termcap[TERMCAP_SIZE]; - char newtc[TERMCAP_SIZE]; -#endif /* USE_TERMCAP */ - char buf[BUFSIZ]; -#ifdef TTYSIZE_STRUCT - TTYSIZE_STRUCT ts; -#endif - char *name_of_tty; -#ifdef CANT_OPEN_DEV_TTY - extern char *ttyname(); -#endif - - myname = x_basename(argv[0]); - if (strcmp(myname, sunname) == 0) - emu = SUN; - for (argv++, argc--; argc > 0 && **argv == '-'; argv++, argc--) { - switch ((*argv)[1]) { - case 's': /* Sun emulation */ - if (emu == SUN) - Usage(); /* Never returns */ - emu = SUN; - break; - case 'u': /* Bourne (Unix) shell */ - shell_type = SHELL_BOURNE; - break; - case 'c': /* C shell */ - shell_type = SHELL_C; - break; - default: - Usage(); /* Never returns */ - } - } - - if (SHELL_UNKNOWN == shell_type) { - /* Find out what kind of shell this user is running. - * This is the same algorithm that xterm uses. - */ - if (((ptr = getenv("SHELL")) == NULL || *ptr == 0) && - (((pw = getpwuid(getuid())) == NULL) || - *(ptr = pw->pw_shell) == 0)) - /* this is the same default that xterm uses */ - ptr = "/bin/sh"; - - shell = x_basename(ptr); - - /* now that we know, what kind is it? */ - for (i = 0; shell_list[i].name; i++) - if (!strcmp(shell_list[i].name, shell)) - break; - shell_type = shell_list[i].type; - } - - if (argc == 2) { - if (!setsize[emu]) { - fprintf(stderr, - "%s: Can't set window size under %s emulation\n", - myname, emuname[emu]); - exit(1); - } - if (!checkdigits(argv[0]) || !checkdigits(argv[1])) - Usage(); /* Never returns */ - } else if (argc != 0) - Usage(); /* Never returns */ - -#ifdef CANT_OPEN_DEV_TTY - if ((name_of_tty = ttyname(fileno(stderr))) == NULL) -#endif - name_of_tty = "/dev/tty"; - - if ((ttyfp = fopen(name_of_tty, "r+")) == NULL) { - fprintf(stderr, "%s: can't open terminal %s\n", - myname, name_of_tty); - exit(1); - } - tty = fileno(ttyfp); -#ifdef USE_TERMCAP - if (!(env = getenv("TERM")) || !*env) { - env = DFT_TERMTYPE; - if (SHELL_BOURNE == shell_type) - setname = "TERM=xterm;\nexport TERM;\n"; - else - setname = "setenv TERM xterm;\n"; - } - termcap[0] = 0; /* ...just in case we've accidentally gotten terminfo */ - if (tgetent(termcap, env) <= 0 || termcap[0] == 0) - ok_tcap = 0; -#endif /* USE_TERMCAP */ -#ifdef USE_TERMINFO - if (!(env = getenv("TERM")) || !*env) { - env = DFT_TERMTYPE; - if (SHELL_BOURNE == shell_type) - setname = "TERM=xterm;\nexport TERM;\n"; - else - setname = "setenv TERM xterm;\n"; - } -#endif /* USE_TERMINFO */ - -#ifdef USE_ANY_SYSV_TERMIO - ioctl(tty, TCGETA, &tioorig); - tio = tioorig; - tio.c_iflag &= ~(ICRNL | IUCLC); - tio.c_lflag &= ~(ICANON | ECHO); - tio.c_cflag |= CS8; - tio.c_cc[VMIN] = 6; - tio.c_cc[VTIME] = 1; -#elif defined(USE_TERMIOS) - tcgetattr(tty, &tioorig); - tio = tioorig; - tio.c_iflag &= ~ICRNL; - tio.c_lflag &= ~(ICANON | ECHO); - tio.c_cflag |= CS8; - tio.c_cc[VMIN] = 6; - tio.c_cc[VTIME] = 1; -#else /* not USE_TERMIOS */ - ioctl(tty, TIOCGETP, &sgorig); - sg = sgorig; - sg.sg_flags |= RAW; - sg.sg_flags &= ~ECHO; -#endif /* USE_ANY_SYSV_TERMIO/USE_TERMIOS */ - signal(SIGINT, onintr); - signal(SIGQUIT, onintr); - signal(SIGTERM, onintr); -#ifdef USE_ANY_SYSV_TERMIO - ioctl(tty, TCSETAW, &tio); -#elif defined(USE_TERMIOS) - tcsetattr(tty, TCSADRAIN, &tio); -#else /* not USE_TERMIOS */ - ioctl(tty, TIOCSETP, &sg); -#endif /* USE_ANY_SYSV_TERMIO/USE_TERMIOS */ - - if (argc == 2) { - sprintf(buf, setsize[emu], argv[0], argv[1]); - write(tty, buf, strlen(buf)); - } - write(tty, getsize[emu], strlen(getsize[emu])); - readstring(ttyfp, buf, size[emu]); - if (sscanf(buf, size[emu], &rows, &cols) != 2) { - fprintf(stderr, "%s: Can't get rows and columns\r\n", myname); - onintr(0); - } - if (restore[emu]) - write(tty, restore[emu], strlen(restore[emu])); -#if defined(USE_STRUCT_TTYSIZE) - /* finally, set the tty's window size */ - if (ioctl(tty, TIOCGSIZE, &ts) != -1) { - TTYSIZE_ROWS(ts) = rows; - TTYSIZE_COLS(ts) = cols; - SET_TTYSIZE(tty, ts); - } -#elif defined(USE_STRUCT_WINSIZE) - /* finally, set the tty's window size */ - if (getwsize[emu]) { - /* get the window size in pixels */ - write(tty, getwsize[emu], strlen(getwsize[emu])); - readstring(ttyfp, buf, wsize[emu]); - if (sscanf(buf, wsize[emu], &ts.ws_xpixel, &ts.ws_ypixel) != 2) { - fprintf(stderr, "%s: Can't get window size\r\n", myname); - onintr(0); - } - TTYSIZE_ROWS(ts) = rows; - TTYSIZE_COLS(ts) = cols; - SET_TTYSIZE(tty, ts); - } else if (ioctl(tty, TIOCGWINSZ, &ts) != -1) { - /* we don't have any way of directly finding out - the current height & width of the window in pixels. We try - our best by computing the font height and width from the "old" - window-size values, and multiplying by these ratios... */ - if (TTYSIZE_COLS(ts) != 0) - ts.ws_xpixel = cols * (ts.ws_xpixel / TTYSIZE_COLS(ts)); - if (TTYSIZE_ROWS(ts) != 0) - ts.ws_ypixel = rows * (ts.ws_ypixel / TTYSIZE_ROWS(ts)); - TTYSIZE_ROWS(ts) = rows; - TTYSIZE_COLS(ts) = cols; - SET_TTYSIZE(tty, ts); - } -#endif /* USE_STRUCT_{TTYSIZE|WINSIZE} */ - -#ifdef USE_ANY_SYSV_TERMIO - ioctl(tty, TCSETAW, &tioorig); -#elif defined(USE_TERMIOS) - tcsetattr(tty, TCSADRAIN, &tioorig); -#else /* not USE_TERMIOS */ - ioctl(tty, TIOCSETP, &sgorig); -#endif /* USE_ANY_SYSV_TERMIO/USE_TERMIOS */ - signal(SIGINT, SIG_DFL); - signal(SIGQUIT, SIG_DFL); - signal(SIGTERM, SIG_DFL); - -#ifdef USE_TERMCAP - if (ok_tcap) { - /* update termcap string */ - /* first do columns */ - if ((ptr = x_strindex(termcap, "co#")) == NULL) { - fprintf(stderr, "%s: No `co#'\n", myname); - exit(1); - } - - i = ptr - termcap + 3; - strncpy(newtc, termcap, (unsigned) i); - sprintf(newtc + i, "%d", cols); - ptr = strchr(ptr, ':'); - strcat(newtc, ptr); - - /* now do lines */ - if ((ptr = x_strindex(newtc, "li#")) == NULL) { - fprintf(stderr, "%s: No `li#'\n", myname); - exit(1); - } - - i = ptr - newtc + 3; - strncpy(termcap, newtc, (unsigned) i); - sprintf(termcap + i, "%d", rows); - ptr = strchr(ptr, ':'); - strcat(termcap, ptr); - } -#endif /* USE_TERMCAP */ - - if (SHELL_BOURNE == shell_type) { - -#ifdef USE_TERMCAP - if (ok_tcap) { - printf("%sTERMCAP=", setname); - print_termcap(termcap); - printf(";\nexport TERMCAP;\n"); - } -#endif /* USE_TERMCAP */ -#ifdef USE_TERMINFO - printf("%sCOLUMNS=%d;\nLINES=%d;\nexport COLUMNS LINES;\n", - setname, cols, rows); -#endif /* USE_TERMINFO */ - - } else { /* not Bourne shell */ - -#ifdef USE_TERMCAP - if (ok_tcap) { - printf("set noglob;\n%ssetenv TERMCAP ", setname); - print_termcap(termcap); - printf(";\nunset noglob;\n"); - } -#endif /* USE_TERMCAP */ -#ifdef USE_TERMINFO - printf("set noglob;\n%ssetenv COLUMNS '%d';\nsetenv LINES '%d';\nunset noglob;\n", - setname, cols, rows); -#endif /* USE_TERMINFO */ - } - exit(0); -} - -static int -checkdigits(register char *str) -{ - while (*str) { - if (!isdigit(CharOf(*str))) - return (0); - str++; - } - return (1); -} - -static void -readstring(register FILE *fp, register char *buf, char *str) -{ - register int last, c; -#if !defined(USG) && !defined(__UNIXOS2__) - /* What is the advantage of setitimer() over alarm()? */ - struct itimerval it; -#endif - - signal(SIGALRM, resize_timeout); -#if defined(USG) || defined(__UNIXOS2__) - alarm(TIMEOUT); -#else - bzero((char *) &it, sizeof(struct itimerval)); - it.it_value.tv_sec = TIMEOUT; - setitimer(ITIMER_REAL, &it, (struct itimerval *) NULL); -#endif - if ((c = getc(fp)) == 0233) { /* meta-escape, CSI */ - *buf++ = c = ESCAPE("")[0]; - *buf++ = '['; - } else { - *buf++ = c; - } - if (c != *str) { - fprintf(stderr, "%s: unknown character, exiting.\r\n", myname); - onintr(0); - } - last = str[strlen(str) - 1]; - while ((*buf++ = getc(fp)) != last) ; -#if defined(USG) || defined(__UNIXOS2__) - alarm(0); -#else - bzero((char *) &it, sizeof(struct itimerval)); - setitimer(ITIMER_REAL, &it, (struct itimerval *) NULL); -#endif - *buf = 0; -} - -static void -Usage(void) -{ - fprintf(stderr, strcmp(myname, sunname) == 0 ? - "Usage: %s [rows cols]\n" : - "Usage: %s [-u] [-c] [-s [rows cols]]\n", myname); - exit(1); -} - -static SIGNAL_T -resize_timeout(int sig) -{ - fprintf(stderr, "\n%s: Time out occurred\r\n", myname); - onintr(sig); -} - -/* ARGSUSED */ -static SIGNAL_T -onintr(int sig GCC_UNUSED) -{ -#ifdef USE_ANY_SYSV_TERMIO - ioctl(tty, TCSETAW, &tioorig); -#elif defined(USE_TERMIOS) - tcsetattr(tty, TCSADRAIN, &tioorig); -#else /* not USE_TERMIOS */ - ioctl(tty, TIOCSETP, &sgorig); -#endif /* USE_ANY_SYSV_TERMIO/USE_TERMIOS */ - exit(1); -} -- cgit v1.2.3