summaryrefslogtreecommitdiff
path: root/os2/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'os2/config.h')
-rw-r--r--os2/config.h514
1 files changed, 514 insertions, 0 deletions
diff --git a/os2/config.h b/os2/config.h
new file mode 100644
index 0000000..f5b5cfe
--- /dev/null
+++ b/os2/config.h
@@ -0,0 +1,514 @@
+/* config.h --- configuration file for OS/2
+ Karl Fogel <kfogel@cyclic.com> --- Oct 1995 */
+
+/* This program 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.
+
+ This program 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. */
+
+/* This file lives in the os2/ subdirectory, which is only included
+ * in your header search path if you're working under IBM C++,
+ * and use os2/makefile (with GNU make for OS/2). Thus, this is the
+ * right place to put configuration information for OS/2.
+ */
+
+
+/* We need some system header files here since we evaluate values from
+ * these files below.
+ */
+#include <stdio.h>
+#include <errno.h>
+
+
+
+#ifndef __STDC__
+/* You bet! */
+#define __STDC__ 1
+#endif
+
+/* The IBM compiler uses the (non-standard) error code EACCESS instead of
+ EACCES (note: one 'S'). Define EACCESS to be EACCES and use the standard
+ name in the code. */
+#ifndef EACCES
+#define EACCES EACCESS
+#endif
+
+/* Handle some other name differences between the IBM and the Watcom
+ * compiler.
+ */
+#ifdef __WATCOMC__
+#define _setmode setmode
+#define _cwait cwait
+#endif
+
+/* Some more WATCOM stuff: The watcom compiler defines va_list as an array,
+ * not as a pointer, which will make the vasprintf code break without the
+ * following define:
+ */
+#ifdef __WATCOMC__
+#define VA_LIST_IS_ARRAY
+#endif
+
+/* Define if on AIX 3.
+ System headers sometimes define this.
+ We just want to avoid a redefinition error message. */
+#undef _ALL_SOURCE
+
+/* Define to empty if the keyword does not work. */
+/* Const is working. */
+#undef const
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* OS/2 doesn't have gid_t. It doesn't even really have group
+ numbers, I think. This will take more thought to get right, but
+ let's get it running first. */
+#define gid_t int
+
+/* Define if you support file names longer than 14 characters. */
+/* We support long file names, but not long corporate acronyms. */
+#define HAVE_LONG_FILE_NAMES 1
+
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
+/* If POSIX.1 requires this, why doesn't WNT have it? */
+/* Maybe POSIX only says that if it is present, it must behave a
+ certain way, but that it can simply be not present too. I
+ dunno. */
+/* Anyway, OS/2 ain't got it. */
+#undef HAVE_SYS_WAIT_H
+
+/* Define if utime(file, NULL) sets file's timestamp to the present. */
+/* Documentation says yup; haven't verified experimentally. */
+#define HAVE_UTIME_NULL 1
+
+/* Define if on MINIX. */
+/* Hah. */
+#undef _MINIX
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define mode_t int
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define pid_t int
+
+/* Define if the system does not provide POSIX.1 features except
+ with this defined. */
+/* This string doesn't appear anywhere in the system header files,
+ so I assume it's irrelevant. */
+#undef _POSIX_1_SOURCE
+
+/* Define if you need to in order for stat and other things to work. */
+/* Same as for _POSIX_1_SOURCE, above. */
+#undef _POSIX_SOURCE
+
+/* Define as the return type of signal handlers (int or void). */
+/* IBMCPP manual indicates they are void. */
+#define RETSIGTYPE void
+
+/* The default remote shell to use, if one does not specify the CVS_RSH
+ environment variable. */
+#define RSH_DFLT "rsh"
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+/* sys/types.h doesn't define it, but stdio.h does, which cvs.h
+ #includes, so things should be okay. */
+/* #undef size_t */
+
+/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* sys/stat.h apparently doesn't even have them; setting this will let
+ ../lib/system.h define them. */
+#define STAT_MACROS_BROKEN 1
+
+/* Define if you have the ANSI C header files. */
+/* We have at least a reasonable facsimile thereof. */
+#define STDC_HEADERS 1
+
+/* Define if you can safely include both <sys/time.h> and <time.h>. */
+/* We don't have <sys/time.h> at all. Why isn't there a definition
+ for HAVE_SYS_TIME_H anywhere in config.h.in? */
+#undef TIME_WITH_SYS_TIME
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#define uid_t int
+
+/* Define if you have MIT Kerberos version 4 available. */
+/* We don't. */
+#undef HAVE_KERBEROS
+
+/* Define if you want CVS to be able to be a remote repository client. */
+/* That's all we want. */
+#define CLIENT_SUPPORT
+
+/* Define if you want CVS to be able to serve repositories to remote
+ clients. */
+/* No server support yet. Note that you don't have to define
+ CLIENT_SUPPORT or SERVER_SUPPORT to enable the non-remote code;
+ that's always there. */
+#undef SERVER_SUPPORT
+
+/* Define if you have the connect function. */
+/* Not used? */
+/* It appears to be used in client.c now... don't know yet it OS/2 has it. */
+#define HAVE_CONNECT
+
+/* Define if you have the fchdir function. */
+#undef HAVE_FCHDIR
+
+/* Define if you have the fchmod function. */
+#undef HAVE_FCHMOD
+
+/* Define if you have the fsync function. */
+#undef HAVE_FSYNC
+
+/* Define if you have the ftime function. */
+#define HAVE_FTIME 1
+
+/* Define if you have the ftruncate function. */
+#undef HAVE_FTRUNCATE
+
+/* Define if you have the getpagesize function. */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the krb_get_err_text function. */
+#undef HAVE_KRB_GET_ERR_TEXT
+
+/* Define if you have the putenv function. */
+#define HAVE_PUTENV 1
+
+/* Define if you have the sigaction function. */
+#undef HAVE_SIGACTION
+
+/* Define if you have the sigblock function. */
+#undef HAVE_SIGBLOCK
+
+/* Define if you have the sigprocmask function. */
+#undef HAVE_SIGPROCMASK
+
+/* Define if you have the sigsetmask function. */
+#undef HAVE_SIGSETMASK
+
+/* Define if you have the sigvec function. */
+#undef HAVE_SIGVEC
+
+/* Define if you have the timezone function. */
+/* Hmm, I actually rather think it's an extern long
+ variable; that message was mechanically generated
+ by autoconf. And I don't see any actual uses of
+ this function in the code anyway, hmm. */
+#undef HAVE_TIMEZONE
+
+/* Define if you have the tzset function. */
+#define HAVE_TZSET 1
+
+/* Define if you have the vfork function. */
+#undef HAVE_VFORK
+
+/* Define if you have the vprintf function. */
+#define HAVE_VPRINTF 1
+
+/* Define if you have the <direct.h> header file. */
+#define HAVE_DIRECT_H 1
+
+/* Define if you have the <dirent.h> header file. */
+/* We have our own dirent.h and dirent.c. */
+#ifdef __WATCOMC__
+#undef HAVE_DIRENT_H
+#else
+#define HAVE_DIRENT_H 1
+#endif
+
+/* Define if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if you have the <io.h> header file. */
+/* Low-level Unix I/O routines like open, creat, etc. */
+#define HAVE_IO_H 1
+
+/* Define if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if you have the <ndbm.h> header file. */
+#undef HAVE_NDBM_H
+
+/* Define if you have the <ndir.h> header file. */
+#undef HAVE_NDIR_H
+
+/* Define if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <sys/bsdtypes.h> header file. */
+#undef HAVE_SYS_BSDTYPES_H
+
+/* Define if you have the <sys/dir.h> header file. */
+#undef HAVE_SYS_DIR_H
+
+/* Define if you have the <sys/ndir.h> header file. */
+#undef HAVE_SYS_NDIR_H
+
+/* Define if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <utime.h> header file. */
+#undef HAVE_UTIME_H
+
+/* Define if you have the <sys/utime.h> header file. */
+#define HAVE_SYS_UTIME_H 1
+
+/* Define if you have the inet library (-linet). */
+#undef HAVE_LIBINET
+
+/* Define if you have the nsl library (-lnsl). */
+/* This is not used anywhere in the source code. */
+#undef HAVE_LIBNSL
+
+/* Define if you have the nsl_s library (-lnsl_s). */
+#undef HAVE_LIBNSL_S
+
+/* Define if you have the socket library (-lsocket). */
+/* This isn't ever used either. */
+#undef HAVE_LIBSOCKET
+
+/* Under OS/2, mkdir only takes one argument. */
+#define CVS_MKDIR os2_mkdir
+extern int os2_mkdir (const char *PATH, int MODE);
+
+/* OS/2 needs a special chdir functions that handles drives */
+#define CVS_CHDIR os2_chdir
+extern int os2_chdir (const char *Dir);
+
+/* This function doesn't exist under OS/2; we provide a stub. */
+extern int readlink (char *path, char *buf, int buf_size);
+
+/* This is just a call to GetCurrentProcessID. */
+#ifndef __WATCOMC__
+extern pid_t getpid (void);
+#endif
+
+/* Under OS/2, filenames are case-insensitive, and both / and \
+ are path component separators. */
+#define FOLD_FN_CHAR(c) (OS2_filename_classes[(unsigned char) (c)])
+extern unsigned char OS2_filename_classes[];
+
+/* Is the character C a path name separator? Under OS/2, you can use
+ either / or \. */
+#define ISDIRSEP(c) (FOLD_FN_CHAR(c) == '/')
+
+/* Like strcmp, but with the appropriate tweaks for file names.
+ Under OS/2, filenames are case-insensitive but case-preserving,
+ and both \ and / are path element separators. */
+extern int fncmp (const char *n1, const char *n2);
+
+/* Fold characters in FILENAME to their canonical forms.
+ If FOLD_FN_CHAR is not #defined, the system provides a default
+ definition for this. */
+extern void fnfold (char *FILENAME);
+
+/* This is where old bits go to die under OS/2 as well as WinNT. */
+#define DEVNULL "nul"
+
+/* Make sure that we don't try to perform operations on RCS files on the
+ local machine. I think I neglected to apply some changes from
+ MHI's port in that area of code, or found some issues I didn't want
+ to deal with. */
+#define CLIENT_ONLY
+
+/* We actually do have a transparent rsh, whew. */
+#undef RSH_NOT_TRANSPARENT
+/* But it won't be transparent unless we ask it nicely! */
+#define RSH_NEEDS_BINARY_FLAG 1
+
+/* OS/2 doesn't really have user/group permissions, at least not
+ according to the C library manual pages. So we'll make decoys.
+ (This was partly introduced for an obsolete reason, now taken care
+ of by CHMOD_BROKEN, but I haven't carefully looked at every case
+ (in particular mode_to_string), so it might still be needed).
+ We do not need that for the watcom compiler since watcom already
+ all those permission bits defined. It would probably be better to
+ include the necessary system header files in system.h, and then make
+ each permission define only if it is not already defined.
+*/
+#ifndef __WATCOMC__
+#define NEED_DECOY_PERMISSIONS 1 /* see system.h */
+#endif
+
+
+
+/* For the access() function, for which IBM OS/2 compiler has no pre-defined
+ mnemonic masks. */
+#ifndef __WATCOMC__
+#define R_OK 04
+#define W_OK 02
+#define F_OK 00
+#define X_OK R_OK /* I think this is right for OS/2. */
+#endif
+
+/* For getpid() */
+#include <process.h>
+
+/* So "tcpip.h" gets included in lib/system.h: */
+#define USE_OWN_TCPIP_H 1
+/* The IBM TCP/IP library gets initialized in main(): */
+#define SYSTEM_INITIALIZE(pargc,pargv) init_sockets()
+extern void init_sockets();
+
+/* Under OS/2, we have our own popen() and pclose()... */
+#define USE_OWN_POPEN 1
+/* ... and we use popenRW to start the rsh server. */
+#define START_RSH_WITH_POPEN_RW 1
+
+/*
+ * This tells the client that it must use send()/recv() to talk to the
+ * server if it is connected to the server via a socket. Sigh.
+ * Windows 95 and VMS cannot convert sockets to file descriptors either,
+ * apparently.
+ */
+#define NO_SOCKET_TO_FD 1
+
+/* chmod() doesn't seem to work -- IBM's own example program does not
+ * behave as its documentation claims, in fact! I suspect that
+ * DosSetPathInfo is the way to go, but can't seem to make that work
+ * either. For now, we can deal with some cases by invoking the DOS
+ * "attrib" command via system(). */
+#define CHMOD_BROKEN 1
+
+/* Rule Number 1 of OS/2 Programming: If the function you're looking
+ for doesn't exist, try putting "Dos" in front of it.
+ Do not forget to include the os2 header file if we use DosSleep. */
+#ifndef sleep
+#include "os2inc.h"
+#define sleep(x) DosSleep(((long)(x))*1000L)
+#endif /* sleep */
+
+/* Set to 1 for some debugging messages. */
+#if 0
+#define KFF_DEBUG(call) printf("*** %s:%d: ", __FILE__, __LINE__); \
+ call; fflush(stdout);
+#else
+#define KFF_DEBUG(call)
+#endif
+
+/*
+ * The following configuration options used to be defined in options.h.
+ */
+
+/*
+ * When committing a permanent change, CVS and RCS make a log entry of
+ * who committed the change. If you are committing the change logged in
+ * as "root" (not under "su" or other root-priv giving program), CVS/RCS
+ * cannot determine who is actually making the change.
+ *
+ * As such, by default, CVS disallows changes to be committed by users
+ * logged in as "root". You can disable this option by commenting
+ * out the lines below.
+ *
+ * Under Windows NT, privileges are associated with groups, not users,
+ * so the case in which someone has logged in as root does not occur.
+ * Thus, there is no need for this hack.
+ *
+ * todo: I don't know about OS/2 yet. -kff
+ */
+#undef CVS_BADROOT
+
+/* This prototype is unique to OS2 */
+#ifdef AUTH_CLIENT_SUPPORT
+char *getpass (char *passbuf);
+#endif /* AUTH_CLIENT_SUPPORT */
+
+/*
+ * For portability and heterogeneity reasons, CVS is shipped by default using
+ * my own text-file version of the ndbm database library in the src/myndbm.c
+ * file. If you want better performance and are not concerned about
+ * heterogeneous hosts accessing your modules file, turn this option off.
+ */
+#ifndef MY_NDBM
+#define MY_NDBM
+#endif
+
+/* Directory used for storing temporary files, if not overridden by
+ environment variables or the -T global option. There should be little
+ need to change this (-T is a better mechanism if you need to use a
+ different directory for temporary files). */
+#ifndef TMPDIR_DFLT
+#define TMPDIR_DFLT "c:\\temp"
+#endif
+
+/*
+ * The default editor to use, if one does not specify the "-e" option to cvs,
+ * or does not have an EDITOR environment variable. I set this to just "vi",
+ * and use the shell to find where "vi" actually is. This allows sites with
+ * /usr/bin/vi or /usr/ucb/vi to work equally well (assuming that your PATH
+ * is reasonable).
+ *
+ * The notepad program seems to be Windows NT's bare-bones text editor.
+ */
+#ifndef EDITOR_DFLT
+#define EDITOR_DFLT "notepad"
+#endif
+
+/*
+ * The default umask to use when creating or otherwise setting file or
+ * directory permissions in the repository. Must be a value in the
+ * range of 0 through 0777. For example, a value of 002 allows group
+ * rwx access and world rx access; a value of 007 allows group rwx
+ * access but no world access. This value is overridden by the value
+ * of the CVSUMASK environment variable, which is interpreted as an
+ * octal number.
+ */
+#ifndef UMASK_DFLT
+#define UMASK_DFLT 002
+#endif
+
+/*
+ * The cvs admin command is restricted to the members of the group
+ * CVS_ADMIN_GROUP. If this group does not exist, all users are
+ * allowed to run cvs admin. To disable the cvs admin for all users,
+ * create an empty group CVS_ADMIN_GROUP. To disable access control for
+ * cvs admin, comment out the define below.
+ *
+ * Under Windows NT and OS/2, this must not be used because it tries
+ * to include <grp.h>.
+ */
+#ifdef CVS_ADMIN_GROUP
+/* #define CVS_ADMIN_GROUP "cvsadmin" */
+#endif
+
+/*
+ * When committing or importing files, you must enter a log message.
+ * Normally, you can do this either via the -m flag on the command line or an
+ * editor will be started for you. If you like to use logging templates (the
+ * rcsinfo file within the $CVSROOT/CVSROOT directory), you might want to
+ * force people to use the editor even if they specify a message with -m.
+ * Enabling FORCE_USE_EDITOR will cause the -m message to be appended to the
+ * temp file when the editor is started.
+ */
+#ifndef FORCE_USE_EDITOR
+/* #define FORCE_USE_EDITOR */
+#endif
+
+/*
+ * Under OS/2, we build the authenticated client by default.
+ */
+#define AUTH_CLIENT_SUPPORT 1
+
+/* End of CVS options.h section */
+
+/* FIXME: This is the same definition used for WOE32 in lib/system.h. It
+ * should be consolidated.
+ */
+#define ISABSOLUTE(s) (ISDIRSEP(s[0]) || FOLD_FN_CHAR(s[0]) >= 'a' && FOLD_FN_CHAR(s[0]) <= 'z' && s[1] == ':' && ISDIRSEP(s[2]))