From 31aaa483440276470ac409bdbac07c4e805079cf Mon Sep 17 00:00:00 2001 From: Marcin Cieslak Date: Mon, 13 Aug 2012 17:57:16 +0200 Subject: [PATCH] FreeBSD port: dtsearch, dtterm, dtwidget, dthelp FreeBSD portability of dtsearch, dtterm, dtwidget, dthelp Work in progress for dtlogin and dtmail --- cde/admin/IntegTools/post_install/Imakefile | 3 +++ cde/config/cf/site.def | 4 +++- cde/databases/Imakefile | 3 +++ cde/lib/DtSearch/dtsrapi.c | 2 -- cde/lib/DtSearch/globals.c | 4 ---- cde/lib/DtSearch/raima/vista.h | 2 +- cde/lib/DtTerm/TermPrim/Imakefile | 4 ++++ cde/lib/DtTerm/TermPrim/TermPrimDebug.c | 6 +++--- cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h | 4 ++-- cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c | 6 ++++++ cde/lib/DtWidget/Imakefile | 2 +- cde/programs/dthelp/parser/canon1/parser/parser.h | 2 +- cde/programs/dthelp/parser/pass1/parser/parser.h | 2 +- cde/programs/dthelp/parser/pass2/parser/parser.h | 2 +- cde/programs/dtlogin/dm.c | 10 +++++++--- cde/programs/dtlogin/dm.h | 4 ++-- .../dtmail/libDtMail/Common/ImplConfigTable.hh | 6 +++--- cde/programs/dtmail/libDtMail/Common/Session.C | 2 +- cde/programs/dtmail/libDtMail/RFC/RFCBodyPart.C | 2 +- 19 files changed, 43 insertions(+), 27 deletions(-) diff --git a/cde/admin/IntegTools/post_install/Imakefile b/cde/admin/IntegTools/post_install/Imakefile index f8e3d8dc8..0120a40c7 100644 --- a/cde/admin/IntegTools/post_install/Imakefile +++ b/cde/admin/IntegTools/post_install/Imakefile @@ -22,6 +22,9 @@ SUBDIRS = linux #ifdef OpenBSDArchitecture PLATFORM = openbsd #endif +#ifdef FreeBSDArchitecture +PLATFORM = freebsd +#endif #ifdef RsArchitecture PLATFORM = aix SUBDIRS = ibm diff --git a/cde/config/cf/site.def b/cde/config/cf/site.def index 9404bd935..e18d4afda 100644 --- a/cde/config/cf/site.def +++ b/cde/config/cf/site.def @@ -67,8 +67,10 @@ XCOMM site: $TOG: site.def /main/23 1998/03/19 18:43:26 mgreess $ #ifdef AfterVendorCF #ifndef X11ProjectRoot -# if defined(LinuxArchitecture) || defined(FreeBSDArchitecture) +# if defined(LinuxArchitecture) # define X11ProjectRoot /usr +#elif defined(FreeBSDArchitecture) +# define X11ProjectRoot /usr/local # else # define X11ProjectRoot /X11 # endif diff --git a/cde/databases/Imakefile b/cde/databases/Imakefile index 2db62e42e..0f6537acb 100644 --- a/cde/databases/Imakefile +++ b/cde/databases/Imakefile @@ -30,6 +30,9 @@ UDB_RELEASE_OPT = -ReleaseStream linux #ifdef OpenBSDArchitecture UDB_RELEASE_OPT = -ReleaseStream openbsd #endif +#ifdef FreeBSDArchitecture +UDB_RELEASE_OPT = -ReleaseStream freebsd +#endif /* * Insure that symbols used in the .udb files are undefined for diff --git a/cde/lib/DtSearch/dtsrapi.c b/cde/lib/DtSearch/dtsrapi.c index b62b87166..c17982675 100644 --- a/cde/lib/DtSearch/dtsrapi.c +++ b/cde/lib/DtSearch/dtsrapi.c @@ -314,10 +314,8 @@ int DtSearchInit ( aa_argv0 = argv0; if (err_file) aa_stderr = err_file; -#if defined(linux) || defined(CSRG_BASED) else aa_stderr = stderr; -#endif sprintbuf = austext_malloc (SPRINTBUFSZ, PROGNAME "135", NULL); diff --git a/cde/lib/DtSearch/globals.c b/cde/lib/DtSearch/globals.c index 093645d41..4fa4f7888 100644 --- a/cde/lib/DtSearch/globals.c +++ b/cde/lib/DtSearch/globals.c @@ -60,11 +60,7 @@ #include #include -#if defined(linux) FILE *aa_stderr = NULL; -#else -FILE *aa_stderr = stderr; -#endif char *aa_argv0 = ""; nl_catd dtsearch_catd = (nl_catd) -1; nl_catd austools_catd = (nl_catd) -1; diff --git a/cde/lib/DtSearch/raima/vista.h b/cde/lib/DtSearch/raima/vista.h index ee29579e5..704e9955c 100644 --- a/cde/lib/DtSearch/raima/vista.h +++ b/cde/lib/DtSearch/raima/vista.h @@ -86,7 +86,7 @@ # define __SVR4_I386_ABI_L1__ #endif #include /* pickup WORD_BIT, LONG_BIT */ -#if defined(linux) +#if defined(linux) || defined(__FreeBSD__) # undef __SVR4_I386_ABI_L1__ # ifndef WORD_BIT # define WORD_BIT 32 diff --git a/cde/lib/DtTerm/TermPrim/Imakefile b/cde/lib/DtTerm/TermPrim/Imakefile index 286bcd8ee..a0a3b0eda 100644 --- a/cde/lib/DtTerm/TermPrim/Imakefile +++ b/cde/lib/DtTerm/TermPrim/Imakefile @@ -109,6 +109,10 @@ LinkFile(TermPrimGetPty.c,TermPrimGetPty-svr4.c) LinkFile(TermPrimGetPty.c,TermPrimGetPty-svr4.c) #endif +#ifdef FreeBSDArchitecture +LinkFile(TermPrimGetPty.c,TermPrimGetPty-bsd.c) +#endif + #ifdef OpenBSDArchitecture LinkFile(TermPrimGetPty.c,TermPrimGetPty-bsd.c) #endif diff --git a/cde/lib/DtTerm/TermPrim/TermPrimDebug.c b/cde/lib/DtTerm/TermPrim/TermPrimDebug.c index 6f8e17008..f0a96ddac 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimDebug.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimDebug.c @@ -39,10 +39,10 @@ static char rcs_id[] = "$XConsortium: TermPrimDebug.c /main/4 1996/11/21 19:58:1 #include #include #include -#if !defined(linux) -# include -#else +#if defined(linux) || defined(CSRG_BASED) # include +#else +# include #endif #include "TermHeader.h" #include "TermPrimDebug.h" diff --git a/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h b/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h index e5a7b7767..eac6b471a 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h +++ b/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h @@ -96,11 +96,11 @@ # define USE_TCSENDBREAK /* use tiocbreak() */ #endif /* LINUX_ARCHITECTURE */ -#ifdef OPENBSD_ARCHITECTURE +#ifdef CSRG_BASED # define HAS_SETEUID /* seteuid available */ # define HAS_SETREUID /* setreuid available */ # define USE_TCSENDBREAK /* use tiocbreak() */ -#endif /* OPENBSD_ARCHITECTURE */ +#endif /* CSRG_BASED */ #ifdef SUN_ARCHITECTURE # define XOR_CAPS_LOCK /* xor caps lock and shift */ diff --git a/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c b/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c index 4328bd25a..35cc72693 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c @@ -60,6 +60,12 @@ static char rcs_id[] = "$TOG: TermPrimSetUtmp.c /main/10 1998/04/03 17:11:42 mgr #define UT_NO_pututline #endif /* sun */ +#ifdef __FreeBSD__ +#define UT_UTMPX +#define UT_HOST ut_host +#define UT_NO_pututline +#endif + #ifdef sun #define UT_UTMPX #define UT_HOST ut_host diff --git a/cde/lib/DtWidget/Imakefile b/cde/lib/DtWidget/Imakefile index 9c1a80f41..f167e35ab 100644 --- a/cde/lib/DtWidget/Imakefile +++ b/cde/lib/DtWidget/Imakefile @@ -15,7 +15,7 @@ XCOMM $XConsortium: Imakefile /main/8 1996/04/21 19:11:16 drk $ DEFINES = DtWidgetDefines #if defined(LinuxArchitecture) INCLUDES = -I. -I/usr/include/freetype2 -#elif defined(OpenBSDArchitecture) +#elif defined(OpenBSDArchitecture) || defined(FreeBSDArchitecture) INCLUDES = -I. -I$(XPROJECTROOT)/include/freetype2 #else INCLUDES = -I. diff --git a/cde/programs/dthelp/parser/canon1/parser/parser.h b/cde/programs/dthelp/parser/canon1/parser/parser.h index b7e7eb696..6584c8c93 100644 --- a/cde/programs/dthelp/parser/canon1/parser/parser.h +++ b/cde/programs/dthelp/parser/canon1/parser/parser.h @@ -439,7 +439,7 @@ M_PAREXTERN int m_argc ; M_PAREXTERN char **m_argv ; /* PARSER output file */ -#if defined(linux) +#if defined(linux) || defined(CSRG_BASED) M_PAREXTERN FILE *m_outfile; M_PAREXTERN FILE *m_errfile; #else diff --git a/cde/programs/dthelp/parser/pass1/parser/parser.h b/cde/programs/dthelp/parser/pass1/parser/parser.h index 06e4ce7b2..839381fd1 100644 --- a/cde/programs/dthelp/parser/pass1/parser/parser.h +++ b/cde/programs/dthelp/parser/pass1/parser/parser.h @@ -437,7 +437,7 @@ M_PAREXTERN int m_argc ; M_PAREXTERN char **m_argv ; /* PARSER output file */ -#if defined(linux) +#if defined(linux) || defined(CSRG_BASED) M_PAREXTERN FILE *m_outfile; M_PAREXTERN FILE *m_errfile; #else diff --git a/cde/programs/dthelp/parser/pass2/parser/parser.h b/cde/programs/dthelp/parser/pass2/parser/parser.h index e47dd77b1..b9a3300c1 100644 --- a/cde/programs/dthelp/parser/pass2/parser/parser.h +++ b/cde/programs/dthelp/parser/pass2/parser/parser.h @@ -437,7 +437,7 @@ M_PAREXTERN int m_argc ; M_PAREXTERN char **m_argv ; /* PARSER output file */ -#if defined(linux) +#if defined(linux) || defined(CSRG_BASED) M_PAREXTERN FILE *m_outfile; M_PAREXTERN FILE *m_errfile; #else diff --git a/cde/programs/dtlogin/dm.c b/cde/programs/dtlogin/dm.c index 136d0bda8..31635dcd4 100644 --- a/cde/programs/dtlogin/dm.c +++ b/cde/programs/dtlogin/dm.c @@ -53,11 +53,15 @@ # include # include +#if defined(__FreeBSD__) +# include +#else # include +#endif # include # include # include -#if defined(linux) +#if defined(linux) || defined(__FreeBSD__) # include #else # include @@ -936,9 +940,9 @@ StartDisplay( else { strncpy(&(d->utmpId[strlen(d->utmpId)]), t++, 1); } - } while (*t != NULL); + } while (*t != '\0'); - if (*t == NULL) { + if (*t == '\0') { Debug ("All DT utmp IDs already in use. Removing display %s\n", d->name); LogError ((unsigned char *)"All DT utmp IDs already in use. Removing display %s\n", diff --git a/cde/programs/dtlogin/dm.h b/cde/programs/dtlogin/dm.h index 9da55bfda..032a21d3d 100644 --- a/cde/programs/dtlogin/dm.h +++ b/cde/programs/dtlogin/dm.h @@ -202,7 +202,7 @@ ***************************************************************************/ /*#if defined(SYSV) && !defined(hpux)*/ -#if defined(SYSV) || defined(SVR4) || defined(linux) +#if defined(SYSV) || defined(SVR4) || defined(linux) || defined(__FreeBSD__) # include # define waitCode(w) WEXITSTATUS(w) # define waitSig(w) WTERMSIG(w) @@ -477,7 +477,7 @@ struct verify_info { * ***************************************************************************/ -#if !defined(linux) +#if !defined(linux) && !defined(CSRG_BASED) extern char *sys_errlist[]; /* system error msgs */ extern int sys_nerr; /* system error msgs */ #endif diff --git a/cde/programs/dtmail/libDtMail/Common/ImplConfigTable.hh b/cde/programs/dtmail/libDtMail/Common/ImplConfigTable.hh index 090359098..bfc801110 100644 --- a/cde/programs/dtmail/libDtMail/Common/ImplConfigTable.hh +++ b/cde/programs/dtmail/libDtMail/Common/ImplConfigTable.hh @@ -25,9 +25,9 @@ #include struct ImplConfigTable { - char *impl_name; - char *lib_name; - char *meta_entry_point; + const char *impl_name; + const char *lib_name; + const char *meta_entry_point; }; static const ImplConfigTable initial_impls[] = { diff --git a/cde/programs/dtmail/libDtMail/Common/Session.C b/cde/programs/dtmail/libDtMail/Common/Session.C index d81434c5a..0c664cca3 100644 --- a/cde/programs/dtmail/libDtMail/Common/Session.C +++ b/cde/programs/dtmail/libDtMail/Common/Session.C @@ -1618,7 +1618,7 @@ char *from_cs, char *to_cs) DtMailEnv error; iconv_t cd; size_t ileft = (size_t) bp_len, oleft = (size_t) bp_len, ret = 0; -#if defined(_AIX) || defined(sun) +#if defined(_AIX) || defined(sun) | defined(CSRG_BASED) const char *ip = (const char *) *bp; #else char *ip = *bp; diff --git a/cde/programs/dtmail/libDtMail/RFC/RFCBodyPart.C b/cde/programs/dtmail/libDtMail/RFC/RFCBodyPart.C index cd1923d61..172b844ef 100644 --- a/cde/programs/dtmail/libDtMail/RFC/RFCBodyPart.C +++ b/cde/programs/dtmail/libDtMail/RFC/RFCBodyPart.C @@ -1030,7 +1030,7 @@ char *from_cs, char *to_cs) DtMailEnv error; iconv_t cd; size_t ileft = (size_t) bp_len, oleft = (size_t) bp_len, ret = 0; -#if defined(_aix) || defined(sun) +#if defined(_aix) || defined(sun) || defined(CSRG_BASED) const char *ip = (const char *) *bp; #else char *ip = *bp;