mirror of
https://git.savannah.gnu.org/git/screen.git
synced 2026-02-14 19:32:19 +02:00
So far screen could only support either sockets or fifos but not both. This proved to be a blocker for any upgrade. This adds a compatibility layer to screen v4 to support both sockets and fifos at the same time. The strategy here is to only support fifos for legacy sessions that already exist. All new sessions will use sockets by default. Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
70 lines
1.8 KiB
Bash
70 lines
1.8 KiB
Bash
#! /bin/sh
|
|
|
|
if test -z "$CPP"; then
|
|
CPP="cc -E"
|
|
fi
|
|
if test -z "$srcdir"; then
|
|
srcdir=.
|
|
fi
|
|
|
|
rm -f core*
|
|
|
|
sed < $srcdir/osdef.h.in -n -e '/^extern/s@.*[)* ][)* ]*\([^ *]*\) __P.*@/[)*, ]\1[ (]/i\\\
|
|
\\/\\[^a-zA-Z_\\]\1 __P\\/d@p' > osdef1.sed
|
|
cat << EOF > osdef0.c
|
|
#include "config.h"
|
|
#include <sys/types.h>
|
|
#include <stdio.h>
|
|
#include <signal.h>
|
|
#include <sys/stat.h>
|
|
#include <pwd.h>
|
|
#ifdef SHADOWPW
|
|
#include <shadow.h>
|
|
#endif
|
|
#ifndef sun
|
|
#include <sys/ioctl.h>
|
|
#endif
|
|
#ifdef linux
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#endif
|
|
#include <sys/socket.h>
|
|
#ifndef NOSYSLOG
|
|
#include <syslog.h>
|
|
#endif
|
|
#include "os.h"
|
|
#if defined(UTMPOK) && defined (GETTTYENT) && !defined(GETUTENT)
|
|
#include <ttyent.h>
|
|
#endif
|
|
#ifdef SVR4
|
|
# include <sys/resource.h>
|
|
#endif
|
|
EOF
|
|
cat << EOF > osdef2.sed
|
|
1i\\
|
|
/*
|
|
1i\\
|
|
* This file is automagically created from osdef.sh -- DO NOT EDIT
|
|
1i\\
|
|
*/
|
|
EOF
|
|
$CPP -I. -I$srcdir osdef0.c | sed -n -f osdef1.sed >> osdef2.sed
|
|
sed -f osdef2.sed < $srcdir/osdef.h.in > osdef.h
|
|
rm osdef0.c osdef1.sed osdef2.sed
|
|
|
|
if test -f core*; then
|
|
file core*
|
|
echo " Sorry, your sed is broken. Call the system administrator."
|
|
echo " Meanwhile, you may try to compile screen with an empty osdef.h file."
|
|
echo " But if your compiler needs to have all functions declared, you should"
|
|
echo " retry 'make' now and only remove offending lines from osdef.h later."
|
|
exit 1
|
|
fi
|
|
if eval test "`diff osdef.h $srcdir/osdef.h.in | wc -l`" -eq 4; then
|
|
echo " Hmm, sed is very pessimistic about your system header files."
|
|
echo " But it did not dump core -- strange! Let's continue carefully..."
|
|
echo " If this fails, you may want to remove offending lines from osdef.h"
|
|
echo " or try with an empty osdef.h file, if your compiler can do without"
|
|
echo " function declarations."
|
|
fi
|