diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/init.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/init.c index 43b6fe386..23b392244 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/init.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/init.c @@ -108,6 +108,12 @@ #include "national.h" #if _hdr_wchar && _lib_wctype && _lib_iswctype +/* on linux wchar.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif # include # undef isalpha # define isalpha(x) iswalpha(x) diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/macro.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/macro.c index 85b94fc52..c07b91083 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/macro.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/macro.c @@ -94,6 +94,12 @@ #endif #include "defs.h" #include +/* on linux pwd.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #include "name.h" #include "variables.h" diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h b/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h index ffe0b39ce..22496520f 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h +++ b/cde/programs/dtksh/ksh93/src/lib/libast/include/ast.h @@ -121,13 +121,7 @@ * workaround botched headers that assume */ -#if defined(linux) -#ifndef __FILE -#define __FILE FILE -#endif -#endif - -#if !defined(CSRG_BASED) +#if !defined(CSRG_BASED) && !defined(linux) #ifndef FILE #define FILE Sfio_t #endif diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h b/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h index 5394d1068..05703d4e4 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h +++ b/cde/programs/dtksh/ksh93/src/lib/libast/include/sfio.h @@ -149,7 +149,7 @@ #define _STDIO_INCLUDED 1 #endif -#if !defined(CSRG_BASED) +#if !defined(CSRG_BASED) && !defined(linux) #ifndef FILE #define FILE Sfio_t #endif @@ -161,6 +161,9 @@ #endif typedef struct _sfio_ Sfile_t, Sfio_t, SFIO; +#if defined(linux) +typedef struct _sfio_ FILE; +#endif typedef struct _sfdc_ Sfdisc_t; typedef int (*Sfread_f)_ARG_((Sfio_t*, Void_t*, int, Sfdisc_t*)); typedef int (*Sfwrite_f)_ARG_((Sfio_t*, const Void_t*, int, Sfdisc_t*)); diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/include/stdio.h b/cde/programs/dtksh/ksh93/src/lib/libast/include/stdio.h index 32e2e206c..aed9be83b 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/include/stdio.h +++ b/cde/programs/dtksh/ksh93/src/lib/libast/include/stdio.h @@ -50,10 +50,12 @@ #define stdout sfstdout #define stderr sfstderr #define BUFSIZ SF_BUFSIZE +#if !defined(linux) #ifdef FILE #undef FILE #endif #define FILE Sfio_t +#endif #include diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtfs.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtfs.c index 2b265dc68..968c9721f 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtfs.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtfs.c @@ -120,6 +120,12 @@ __STDPP__directive pragma pp:hide endmntent getmntent #define getmntent ______getmntent #endif +/* on linux mntent.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #if defined(__STDPP__directive) && defined(__STDPP__hide) diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtgid.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtgid.c index 6492401de..93f4d48d1 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtgid.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtgid.c @@ -98,6 +98,12 @@ __STDPP__directive pragma pp:hide getgrgid #include #include +/* on linux grp.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #if defined(__STDPP__directive) && defined(__STDPP__hide) diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtuid.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtuid.c index 20f454772..36ae33c67 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtuid.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/string/fmtuid.c @@ -98,6 +98,12 @@ __STDPP__directive pragma pp:hide getpwuid #include #include +/* on linux pwd.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #if defined(__STDPP__directive) && defined(__STDPP__hide) diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/strgid.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/strgid.c index 275139350..29d264880 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/string/strgid.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/string/strgid.c @@ -100,6 +100,12 @@ __STDPP__directive pragma pp:hide getgrgid getgrnam getpwnam #include #include +/* on linux pwd.h and grp.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #include diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/strmatch.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/strmatch.c index ceb679b16..e113c6876 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/string/strmatch.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/string/strmatch.c @@ -95,6 +95,12 @@ #if _hdr_wchar && _lib_wctype && _lib_iswctype +/* on linux wchar.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #undef isalnum diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/struid.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/struid.c index a4b5c5433..2bbfd5b80 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/string/struid.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/string/struid.c @@ -99,6 +99,12 @@ __STDPP__directive pragma pp:hide getpwnam getpwuid #include #include +/* on linux pwd.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #if defined(__STDPP__directive) && defined(__STDPP__hide) diff --git a/cde/programs/dtksh/ksh93/src/lib/libcmd/id.c b/cde/programs/dtksh/ksh93/src/lib/libcmd/id.c index 1f89259d9..3f296133f 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libcmd/id.c +++ b/cde/programs/dtksh/ksh93/src/lib/libcmd/id.c @@ -96,6 +96,12 @@ static const char id[] = "\n@(#)id (AT&T Bell Laboratories) 07/17/94\0\n"; #include "FEATURE/ids" +/* on linux grp.h pwd.h can include FILE without stdio.h which clashes with sfio_t */ +#if defined(linux) + #ifndef __FILE_defined + #define __FILE_defined 1 + #endif +#endif #include #include