X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fs%2Fcygwin32.h;h=58190018211a51d2a93529f6640c71c6c78b03f4;hb=71baa1c0cbbb886ac1528500c1bda51ac70decad;hp=2e2148c48bcee2be315d216952cab16564496de1;hpb=28a3fa29bc0bd9a124b6e3379e82d62e815c22a2;p=chise%2Fxemacs-chise.git diff --git a/src/s/cygwin32.h b/src/s/cygwin32.h index 2e2148c..5819001 100644 --- a/src/s/cygwin32.h +++ b/src/s/cygwin32.h @@ -20,13 +20,14 @@ Boston, MA 02111-1307, USA. */ /* Building under cygwin * - * The approach I have taken with this port is to use primarily the UNIX - * code base adding stuff that is MS-Windows specific. This works quite - * well, and is in keeping with my perception of the cygwin philosophy. - * Note that if you make changes to this file you do NOT want to define - * WINDOWSNT, I repeat - do not define this, it will break everything - * horribly. What does get defined is HAVE_MS_WINDOWS, but this is - * done by configure and only applies to the window system. + * The approach I have taken with this port is to use primarily the + * UNIX code base adding stuff that is MS-Windows specific. This works + * quite well, and is in keeping with my perception of the cygwin + * philosophy. Note that if you make changes to this file you do NOT + * want to define WIN32_NATIVE (formerly "WINDOWSNT"), I repeat - do + * not define this, it will break everything horribly. What does get + * defined is HAVE_MS_WINDOWS, but this is done by configure and only + * applies to the window system. * * When building make sure your HOME path is unix style - i.e. without * a drive letter. @@ -38,79 +39,84 @@ Boston, MA 02111-1307, USA. */ * YMMV. I build with NT4 SP3. * * Andy Piper 8/1/98 - * http://www.parallax.co.uk/~andyp */ + * http://www.xemacs.freeserve.co.uk/ */ + +/* Identify ourselves */ +#define CYGWIN /* cheesy way to determine cygwin version */ #ifndef NOT_C_CODE -#include -#ifdef HAVE_CYGWIN_VERSION_H -#include -#else -#ifdef SIGIO -#define CYGWIN_B19 -#else -#define BROKEN_CYGWIN -#endif -#endif +# include +# ifdef HAVE_CYGWIN_VERSION_H +# include +# else +# ifdef SIGIO +# define CYGWIN_VERSION_DLL_MAJOR 19 +# define CYGWIN_VERSION_DLL_MINOR 0 +# define CYGWIN_B19 +# else +# define CYGWIN_VERSION_DLL_MAJOR 18 +# define CYGWIN_VERSION_DLL_MINOR 0 +# define BROKEN_CYGWIN +# endif +# endif + +# if CYGWIN_VERSION_DLL_MAJOR < 20 + +void cygwin32_win32_to_posix_path_list (const char*, char*); +int cygwin32_win32_to_posix_path_list_buf_size (const char*); +void cygwin32_posix_to_win32_path_list (const char*, char*); +int cygwin32_posix_to_win32_path_list_buf_size (const char*); + +#define cygwin_win32_to_posix_path_list cygwin32_win32_to_posix_path_list +#define cygwin_win32_to_posix_path_list_buf_size \ + cygwin32_win32_to_posix_path_list_buf_size +#define cygwin_posix_to_win32_path_list cygwin32_posix_to_win32_path_list +#define cygwin_posix_to_win32_path_list_buf_size \ + cygwin32_posix_to_win32_path_list_buf_size -extern void cygwin32_win32_to_posix_path_list(const char*, char*); -extern int cygwin32_win32_to_posix_path_list_buf_size(const char*); -extern void cygwin32_posix_to_win32_path_list(const char*, char*); -extern int cygwin32_posix_to_win32_path_list_buf_size(const char*); -#ifndef CYGWIN_VERSION_DLL_MAJOR struct timeval; struct timezone; struct itimerval; struct stat; -extern int gettimeofday(struct timeval *tp, struct timezone *tzp); -extern int gethostname (char* name, int namelen); -extern char* mktemp(char *); -extern double logb(double); -extern void sync(); -extern int ioctl(int, int, ...); - /* sys/stat.h */ -extern int lstat(const char *path, struct stat *buf); - /* unistd.h */ -extern int readlink(const char *path, void *buf, unsigned int bufsiz); -extern int symlink(const char *name1, const char *name2); - /* sys/time.h */ -extern int setitimer(int which, const struct itimerval *value, - struct itimerval *ovalue); -extern int utimes(char *file, struct timeval *tvp); - -extern int srandom( unsigned seed); -extern long random(); - -#define SND_ASYNC 1 -#define SND_NODEFAULT 2 -#define SND_MEMORY 4 -#define SND_FILENAME 0x2000L -#define VK_APPS 0x5D -#define SIF_TRACKPOS 0x0010 -#define ICC_BAR_CLASSES 4 -#define FW_BLACK FW_HEAVY -#define FW_ULTRABOLD FW_EXTRABOLD -#define FW_DEMIBOLD FW_SEMIBOLD -#define FW_ULTRALIGHT FW_EXTRALIGHT -#define APPCMD_FILTERINITS 0x20L -#define CBF_FAIL_SELFCONNECTIONS 0x1000 -#define CBF_SKIP_ALLNOTIFICATIONS 0x3C0000 -#define CBF_FAIL_ADVISES 0x4000 -#define CBF_FAIL_POKES 0x10000 -#define CBF_FAIL_REQUESTS 0x20000 -#define SZDDESYS_TOPIC "System" -#define JOHAB_CHARSET 130 -#define MAC_CHARSET 77 +int gettimeofday (struct timeval *tp, struct timezone *tzp); +int gethostname (char* name, int namelen); +char* mktemp (char *); +double logb (double); +void sync (void); +int ioctl (int, int, ...); + /* sys/stat.h */ +int lstat (const char *path, struct stat *buf); + /* unistd.h */ +int readlink (const char *path, void *buf, unsigned int bufsiz); +int symlink (const char *name1, const char *name2); + /* sys/time.h */ +int setitimer (int which, const struct itimerval *value, + struct itimerval *ovalue); +int utimes (char *file, struct timeval *tvp); + +int srandom (unsigned seed); +long random (void); + +# else /* not CYGWIN_VERSION_DLL_MAJOR < 20 */ + +void cygwin_win32_to_posix_path_list (const char*, char*); +int cygwin_win32_to_posix_path_list_buf_size (const char*); +void cygwin_posix_to_win32_path_list (const char*, char*); +int cygwin_posix_to_win32_path_list_buf_size (const char*); + +# endif /* CYGWIN_VERSION_DLL_MAJOR < 20 */ + +# if CYGWIN_VERSION_DLL_MAJOR <= 20 +char *getpass (const char *prompt); +double logb (double); +# endif /* CYGWIN_VERSION_DLL_MAJOR <= 20 */ + +/* Still left out of 1.1! */ +double logb (double); +int killpg (int pgrp, int sig); #endif -#endif - -#define PBS_SMOOTH 0x01 - -#ifdef HAVE_MS_WINDOWS -#define HAVE_NTGUI -#define HAVE_FACES -#endif #ifndef ORDINARY_LINK #define ORDINARY_LINK @@ -118,17 +124,18 @@ extern long random(); #define C_SWITCH_SYSTEM -Wno-sign-compare -fno-caller-saves #define LIBS_SYSTEM -lwinmm - +#define WIN32_LEAN_AND_MEAN #define TEXT_START -1 #define TEXT_END -1 #define DATA_END -1 #define HEAP_IN_DATA +#define NO_LIM_DATA #define UNEXEC "unexcw.o" #ifdef CYGWIN_VERSION_DLL_MAJOR #if 0 -/* ### FIXME: although defining BROKEN_SIGIO is correct for proper ^G +/* #### FIXME: although defining BROKEN_SIGIO is correct for proper ^G behavior, bugs in cygwin mean that xemacs locks up frequently if this is defined. */ #define BROKEN_SIGIO @@ -141,36 +148,11 @@ extern long random(); #define HAVE_SOCKETS #endif #define OBJECTS_SYSTEM ntplay.o -#define HAVE_NATIVE_SOUND #undef MAIL_USE_SYSTEM_LOCK -#define MAIL_USE_POP - -/* Define NO_ARG_ARRAY if you cannot take the address of the first of a - * group of arguments and treat it as an array of the arguments. */ - -#define NO_ARG_ARRAY - -/* Define WORD_MACHINE if addresses and such have - * to be corrected before they can be used as byte counts. */ - -#define WORD_MACHINE - -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the 24-bit bit field into an int. In other words, if bit fields - are always unsigned. - - If you use NO_UNION_TYPE, this flag does not matter. */ - -#define EXPLICIT_SIGN_EXTEND - -/* Data type of load average, as read out of kmem. */ - -#define LOAD_AVE_TYPE long - -/* Convert that into an integer that is 100 for a load average of 1.0 */ -#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) +/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT + since there is no load average available. */ /* Define VIRT_ADDR_VARIES if the virtual addresses of pure and impure space as loaded can vary, and even their @@ -182,10 +164,6 @@ extern long random(); /* Text does precede data space, but this is never a safe assumption. */ #define VIRT_ADDR_VARIES -/* set this if you have a new version of cygwin -#define DATA_SEG_BITS 0x10000000 -*/ - /* If you are compiling with a non-C calling convention but need to declare vararg routines differently, put it here */ #define _VARARGS_ __cdecl @@ -202,6 +180,12 @@ extern long random(); #define NO_MATHERR +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + /* define MAIL_USE_FLOCK if the mailer uses flock to interlock access to /usr/spool/mail/$USER. The alternative is that a lock file named @@ -235,44 +219,8 @@ extern long random(); #define SYSTEM_PURESIZE_EXTRA 15000 #define CYGWIN_CONV_PATH(src, dst) \ -dst = alloca (cygwin32_win32_to_posix_path_list_buf_size(src)); \ -cygwin32_win32_to_posix_path_list(src, dst) +dst = alloca (cygwin_win32_to_posix_path_list_buf_size(src)); \ +cygwin_win32_to_posix_path_list(src, dst) #define CYGWIN_WIN32_PATH(src, dst) \ -dst = alloca (cygwin32_posix_to_win32_path_list_buf_size(src)); \ -cygwin32_posix_to_win32_path_list(src, dst) - -/* - * stolen from usg. - */ -#define HAVE_PTYS -#define FIRST_PTY_LETTER 'z' - -/* Pseudo-terminal support under SVR4 only loops to deal with errors. */ - -#define PTY_ITERATION for (i = 0, c = 0; i < 1; i++) - -/* This sets the name of the master side of the PTY. */ - -#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx"); - -/* This sets the name of the slave side of the PTY. On SysVr4, - grantpt(3) forks a subprocess, so keep sigchld_handler() from - intercepting that death. If any child but grantpt's should die - within, it should be caught after EMACS_UNBLOCK_SIGNAL. */ - -#define PTY_OPEN \ - fd = open (pty_name, O_RDWR | O_NONBLOCK | OPEN_BINARY, 0) - -#define PTY_TTY_NAME_SPRINTF \ - { \ - extern char* ptsname(int); \ - char *ptyname; \ - \ - if (!(ptyname = ptsname (fd))) \ - { close (fd); return -1; } \ - strncpy (pty_name, ptyname, sizeof (pty_name)); \ - pty_name[sizeof (pty_name) - 1] = 0; \ - } - -/* ============================================================ */ - +dst = alloca (cygwin_posix_to_win32_path_list_buf_size(src)); \ +cygwin_posix_to_win32_path_list(src, dst)