X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fsysdep.c;h=912b3d1fc3ad1baee020f3323307dd36003b94ce;hb=9816585ded614fa87be5a2ecfda6dc16c60beb2c;hp=99b43134a6de246c210cef4452cfc5a9f2621ca7;hpb=b5eeb6918c29470b36f8461c402eb0c65cb19bd2;p=chise%2Fxemacs-chise.git- diff --git a/src/sysdep.c b/src/sysdep.c index 99b4313..912b3d1 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -33,19 +33,19 @@ Boston, MA 02111-1307, USA. */ #ifdef WINDOWSNT #include -#ifndef __MINGW32__ +#ifdef __MINGW32__ +#include +#else /* should not conflict with "process.h", as per ANSI definition. - This is not true though with visual c though. The trick below works with - VC4.2b and with VC5.0. It assumes that VC is installed in a kind of - standard way, so include files get to what/ever/path/include. + This is not true with visual c though. The trick below works with + VC4.2b, 5.0 and 6.0. It assumes that VC is installed in a kind of + standard way, so include path ends with /include. Unfortunately, this must go before lisp.h, since process.h defines abort() which will conflict with the macro defined in lisp.h */ #include <../include/process.h> -#else -#include -#endif +#endif /* __MINGW32__ */ #endif /* WINDOWSNT */ #include "lisp.h" @@ -90,7 +90,6 @@ Boston, MA 02111-1307, USA. */ #ifdef WINDOWSNT #include -#include #include "ntheap.h" #endif @@ -386,7 +385,7 @@ void wait_for_termination (int pid) "failure to obtain process exit value"); } } - if (pHandle != NULL && !CloseHandle(pHandle)) + if (pHandle != NULL && !CloseHandle(pHandle)) { warn_when_safe (Qprocess, Qwarning, "failure to close unknown process"); @@ -539,7 +538,7 @@ child_setup_tty (int out) #endif /* no TIOCGPGRP or no TIOCGLTC or no TIOCGETC */ s.main.c_cc[VEOL] = _POSIX_VDISABLE; #if defined (CBAUD) - /* ### This is not portable. ### + /* #### This is not portable. ### POSIX does not specify CBAUD, and 4.4BSD does not have it. Instead, POSIX suggests to use cfset{i,o}speed(). [cf. D. Lewine, POSIX Programmer's Guide, Chapter 8: Terminal @@ -613,20 +612,20 @@ restore_signal_handlers (struct save_signal *saved_handlers) } #ifdef WINDOWSNT + pid_t sys_getpid (void) { return abs (getpid ()); } + #endif /* WINDOWSNT */ /* Fork a subshell. */ static void sys_subshell (void) { -#ifdef WINDOWSNT - HANDLE pid; -#else +#ifndef WINDOWSNT int pid; #endif struct save_signal saved_handlers[5]; @@ -661,21 +660,17 @@ sys_subshell (void) str = (unsigned char *) alloca (XSTRING_LENGTH (dir) + 2); len = XSTRING_LENGTH (dir); memcpy (str, XSTRING_DATA (dir), len); - /* #### Unix specific */ - if (str[len - 1] != '/') str[len++] = '/'; + if (!IS_ANY_SEP (str[len - 1])) + str[len++] = DIRECTORY_SEP; str[len] = 0; xyzzy: -#ifdef WINDOWSNT - pid = NULL; -#else /* not WINDOWSNT */ - +#ifndef WINDOWSNT pid = fork (); if (pid == -1) error ("Can't spawn subshell"); if (pid == 0) - #endif /* not WINDOWSNT */ { char *sh = 0; @@ -689,7 +684,18 @@ sys_subshell (void) if (str) sys_chdir (str); -#if !defined (NO_SUBPROCESSES) && !defined (WINDOWSNT) +#ifdef WINDOWSNT + + /* Waits for process completion */ + if (_spawnlp (_P_WAIT, sh, sh, NULL) != 0) + error ("Can't spawn subshell"); + else + return; /* we're done, no need to wait for termination */ + } + +#else + +#if !defined (NO_SUBPROCESSES) close_process_descs (); /* Close Emacs's pipes/ptys */ #endif @@ -698,23 +704,18 @@ sys_subshell (void) nice (-emacs_priority); /* Give the new shell the default priority */ #endif -#ifdef WINDOWSNT - /* Waits for process completion */ - pid = _spawnlp (_P_WAIT, sh, sh, NULL); - if (pid == NULL) - write (1, "Can't execute subshell", 22); - -#else /* not WINDOWSNT */ execlp (sh, sh, 0); write (1, "Can't execute subshell", 22); _exit (1); -#endif /* not WINDOWSNT */ } save_signal_handlers (saved_handlers); synch_process_alive = 1; wait_for_termination (pid); restore_signal_handlers (saved_handlers); + +#endif /* not WINDOWSNT */ + } #endif /* !defined (SIGTSTP) && !defined (USG_JOBCTRL) */ @@ -761,23 +762,31 @@ sys_suspend_process (int process) /* Given FD, obtain pty buffer size. When no luck, a good guess is made, - so that the function works even fd is not a pty. */ + so that the function works even when fd is not a pty. */ int get_pty_max_bytes (int fd) { - int pty_max_bytes; - + /* DEC OSF 4.0 fpathconf returns 255, but xemacs hangs on long shell + input lines if we return 253. 252 is OK!. So let's leave a bit + of slack for the newline that xemacs will insert, and for those + inevitable vendor off-by-one-or-two-or-three bugs. */ +#define MAX_CANON_SLACK 10 +#define SAFE_MAX_CANON (127 - MAX_CANON_SLACK) #if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON) - pty_max_bytes = fpathconf (fd, _PC_MAX_CANON); - if (pty_max_bytes < 0) + { + int max_canon = fpathconf (fd, _PC_MAX_CANON); + return (max_canon < 0 ? SAFE_MAX_CANON : + max_canon > SAFE_MAX_CANON ? max_canon - MAX_CANON_SLACK : + max_canon); + } +#elif defined (_POSIX_MAX_CANON) + return (_POSIX_MAX_CANON > SAFE_MAX_CANON ? + _POSIX_MAX_CANON - MAX_CANON_SLACK : + _POSIX_MAX_CANON); +#else + return SAFE_MAX_CANON; #endif - pty_max_bytes = 250; - - /* Deduct one, to leave space for the eof. */ - pty_max_bytes--; - - return pty_max_bytes; } /* Figure out the eof character for the FD. */ @@ -785,7 +794,7 @@ get_pty_max_bytes (int fd) Bufbyte get_eof_char (int fd) { - CONST Bufbyte ctrl_d = (Bufbyte) '\004'; + const Bufbyte ctrl_d = (Bufbyte) '\004'; if (!isatty (fd)) return ctrl_d; @@ -795,7 +804,7 @@ get_eof_char (int fd) tcgetattr (fd, &t); #if 0 /* What is the following line designed to do??? -mrb */ - if (strlen ((CONST char *) t.c_cc) < (unsigned int) (VEOF + 1)) + if (strlen ((const char *) t.c_cc) < (unsigned int) (VEOF + 1)) return ctrl_d; else return (Bufbyte) t.c_cc[VEOF]; @@ -818,7 +827,7 @@ get_eof_char (int fd) { struct termio t; ioctl (fd, TCGETA, &t); - if (strlen ((CONST char *) t.c_cc) < (unsigned int) (VINTR + 1)) + if (strlen ((const char *) t.c_cc) < (unsigned int) (VINTR + 1)) return ctrl_d; else return (Bufbyte) t.c_cc[VINTR]; @@ -1708,11 +1717,9 @@ tty_init_sys_modes_on_device (struct device *d) #ifdef TCXONC if (!TTY_FLAGS (con).flow_control) ioctl (input_fd, TCXONC, 1); #endif -#ifndef APOLLO #ifdef TIOCSTART if (!TTY_FLAGS (con).flow_control) ioctl (input_fd, TIOCSTART, 0); #endif -#endif #if defined (HAVE_TERMIOS) || defined (HPUX9) #ifdef TCOON @@ -2124,7 +2131,7 @@ hft_reset (struct console *con) /* limits of text/data segments */ /************************************************************************/ -#ifndef CANNOT_DUMP +#if !defined(CANNOT_DUMP) && !defined(PDUMP) #define NEED_STARTS #endif @@ -2144,13 +2151,14 @@ hft_reset (struct console *con) * */ +#if !defined(HAVE_TEXT_START) && !defined(PDUMP) + #ifdef __cplusplus extern "C" int _start (void); #else extern int _start (void); #endif -#ifndef HAVE_TEXT_START char * start_of_text (void) { @@ -2165,7 +2173,7 @@ start_of_text (void) #endif /* GOULD */ #endif /* TEXT_START */ } -#endif /* not HAVE_TEXT_START */ +#endif /* !defined(HAVE_TEXT_START) && !defined(PDUMP) */ /* * Return the address of the start of the data segment prior to @@ -2193,7 +2201,7 @@ start_of_text (void) * */ -#ifdef ORDINARY_LINK +#if defined(ORDINARY_LINK) && !defined(__MINGW32__) extern char **environ; #endif @@ -2210,7 +2218,7 @@ start_of_data (void) * is known to live at or near the start of the system crt0.c, and * we don't sweat the handful of bytes that might lose. */ -#ifdef HEAP_IN_DATA +#if defined (HEAP_IN_DATA) && !defined(PDUMP) extern char* static_heap_base; if (!initialized) return static_heap_base; @@ -2224,7 +2232,7 @@ start_of_data (void) } #endif /* NEED_STARTS (not CANNOT_DUMP or not SYSTEM_MALLOC) */ -#ifndef CANNOT_DUMP +#if !defined(CANNOT_DUMP) && !defined(PDUMP) /* Some systems that cannot dump also cannot implement these. */ /* @@ -2259,7 +2267,7 @@ end_of_data (void) #endif } -#endif /* not CANNOT_DUMP */ +#endif /* !defined(CANNOT_DUMP) && !defined(PDUMP) */ /************************************************************************/ @@ -2281,7 +2289,7 @@ init_system_name (void) { #if defined (WINDOWSNT) char hostname [MAX_COMPUTERNAME_LENGTH + 1]; - size_t size = sizeof(hostname); + size_t size = sizeof (hostname); GetComputerName (hostname, &size); Vsystem_name = build_string (hostname); #elif !defined (HAVE_GETHOSTNAME) @@ -2317,26 +2325,27 @@ init_system_name (void) # endif /* not CANNOT_DUMP */ if (!strchr (hostname, '.')) { +# if !(defined(HAVE_GETADDRINFO) && defined(HAVE_GETNAMEINFO)) struct hostent *hp = NULL; int count; -# ifdef TRY_AGAIN +# ifdef TRY_AGAIN for (count = 0; count < 10; count++) { h_errno = 0; -# endif +# endif /* Some systems can't handle SIGALARM/SIGIO in gethostbyname(). */ stop_interrupts (); hp = gethostbyname (hostname); start_interrupts (); -# ifdef TRY_AGAIN +# ifdef TRY_AGAIN if (! (hp == 0 && h_errno == TRY_AGAIN)) break; Fsleep_for (make_int (1)); } -# endif +# endif if (hp) { - CONST char *fqdn = (CONST char *) hp->h_name; + const char *fqdn = (const char *) hp->h_name; if (!strchr (fqdn, '.')) { @@ -2351,6 +2360,22 @@ init_system_name (void) hostname = (char *) alloca (strlen (fqdn) + 1); strcpy (hostname, fqdn); } +# else /* !(HAVE_GETADDRINFO && HAVE_GETNAMEINFO) */ + struct addrinfo hints, *res; + + xzero (hints); + hints.ai_flags = AI_CANONNAME; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = 0; + if (!getaddrinfo (hostname, NULL, &hints, &res)) + { + hostname = (char *) alloca (strlen (res->ai_canonname) + 1); + strcpy (hostname, res->ai_canonname); + + freeaddrinfo (res); + } +# endif /* !(HAVE_GETADDRINFO && HAVE_GETNAMEINFO) */ } # endif /* HAVE_SOCKETS */ Vsystem_name = build_string (hostname); @@ -2480,7 +2505,7 @@ sys_do_signal (int signal_number, signal_handler_t action) /* Linux added here by Raymond L. Toy for XEmacs. */ /* Irix added here by gparker@sni-usa.com for XEmacs. */ /* NetBSD added here by James R Grinter for XEmacs */ -extern CONST char *sys_errlist[]; +extern const char *sys_errlist[]; extern int sys_nerr; #endif @@ -2490,12 +2515,12 @@ extern int sys_nerr; #endif -CONST char * +const char * strerror (int errnum) { if (errnum >= 0 && errnum < sys_nerr) return sys_errlist[errnum]; - return ((CONST char *) GETTEXT ("Unknown error")); + return ((const char *) GETTEXT ("Unknown error")); } #endif /* ! HAVE_STRERROR */ @@ -2571,7 +2596,7 @@ mswindows_set_errno (unsigned long win32_error) int i; /* check the table for the OS error code */ - for (i = 0; i < sizeof(errtable)/sizeof(errtable[0]); ++i) + for (i = 0; i < countof (errtable); ++i) { if (win32_error == errtable[i].oscode) { @@ -2605,7 +2630,7 @@ mswindows_set_last_errno (void) /************************************************************************/ #define PATHNAME_CONVERT_OUT(path) \ - GET_C_CHARPTR_EXT_FILENAME_DATA_ALLOCA ((CONST Bufbyte *) path, path) + TO_EXTERNAL_FORMAT (C_STRING, (path), C_STRING_ALLOCA, (path), Qfile_name); /***************** low-level calls ****************/ @@ -2629,7 +2654,7 @@ mswindows_set_last_errno (void) #ifdef ENCAPSULATE_OPEN int -sys_open (CONST char *path, int oflag, ...) +sys_open (const char *path, int oflag, ...) { int mode; va_list ap; @@ -2639,10 +2664,13 @@ sys_open (CONST char *path, int oflag, ...) va_end (ap); PATHNAME_CONVERT_OUT (path); -#if defined (WINDOWSNT) + +#ifdef WINDOWSNT /* Make all handles non-inheritable */ - return open (path, oflag | _O_NOINHERIT, mode); -#elif defined (INTERRUPTIBLE_OPEN) + oflag |= _O_NOINHERIT; +#endif + +#ifdef INTERRUPTIBLE_OPEN { int rtnval; while ((rtnval = open (path, oflag, mode)) == -1 @@ -2665,7 +2693,7 @@ sys_open (CONST char *path, int oflag, ...) is not interrupted by C-g. However, the worst that can happen is the fallback to simple open(). */ int -interruptible_open (CONST char *path, int oflag, int mode) +interruptible_open (const char *path, int oflag, int mode) { /* This function can GC */ size_t len = strlen (path); @@ -2677,6 +2705,11 @@ interruptible_open (CONST char *path, int oflag, int mode) PATHNAME_CONVERT_OUT (nonreloc); +#ifdef WINDOWSNT + /* Make all handles non-inheritable */ + oflag |= _O_NOINHERIT; +#endif + for (;;) { int rtnval = open (nonreloc, oflag, mode); @@ -2736,10 +2769,10 @@ sys_read (int fildes, void *buf, size_t nbyte) #endif /* ENCAPSULATE_READ */ ssize_t -sys_write_1 (int fildes, CONST void *buf, size_t nbyte, int allow_quit) +sys_write_1 (int fildes, const void *buf, size_t nbyte, int allow_quit) { ssize_t bytes_written = 0; - CONST char *b = (CONST char *) buf; + const char *b = (const char *) buf; /* No harm in looping regardless of the INTERRUPTIBLE_IO setting. */ while (nbyte > 0) @@ -2765,7 +2798,7 @@ sys_write_1 (int fildes, CONST void *buf, size_t nbyte, int allow_quit) #ifdef ENCAPSULATE_WRITE ssize_t -sys_write (int fildes, CONST void *buf, size_t nbyte) +sys_write (int fildes, const void *buf, size_t nbyte) { return sys_write_1 (fildes, buf, nbyte, 0); } @@ -2783,7 +2816,7 @@ sys_write (int fildes, CONST void *buf, size_t nbyte) #ifdef ENCAPSULATE_FOPEN FILE * -sys_fopen (CONST char *path, CONST char *type) +sys_fopen (const char *path, const char *type) { PATHNAME_CONVERT_OUT (path); #if defined (WINDOWSNT) @@ -2893,12 +2926,12 @@ sys_fread (void *ptr, size_t size, size_t nitem, FILE *stream) #ifdef ENCAPSULATE_FWRITE size_t -sys_fwrite (CONST void *ptr, size_t size, size_t nitem, FILE *stream) +sys_fwrite (const void *ptr, size_t size, size_t nitem, FILE *stream) { #ifdef INTERRUPTIBLE_IO size_t rtnval; size_t items_written = 0; - CONST char *b = (CONST char *) ptr; + const char *b = (const char *) ptr; while (nitem > 0) { @@ -2926,7 +2959,7 @@ sys_fwrite (CONST void *ptr, size_t size, size_t nitem, FILE *stream) #ifdef ENCAPSULATE_CHDIR int -sys_chdir (CONST char *path) +sys_chdir (const char *path) { PATHNAME_CONVERT_OUT (path); return chdir (path); @@ -2936,7 +2969,7 @@ sys_chdir (CONST char *path) #ifdef ENCAPSULATE_MKDIR int -sys_mkdir (CONST char *path, mode_t mode) +sys_mkdir (const char *path, mode_t mode) { PATHNAME_CONVERT_OUT (path); #ifdef WINDOWSNT @@ -2950,7 +2983,7 @@ sys_mkdir (CONST char *path, mode_t mode) #ifdef ENCAPSULATE_OPENDIR DIR * -sys_opendir (CONST char *filename) +sys_opendir (const char *filename) { DIR *rtnval; PATHNAME_CONVERT_OUT (filename); @@ -2982,7 +3015,7 @@ sys_readdir (DIR *dirp) { Extcount external_len; int ascii_filename_p = 1; - CONST Extbyte * CONST external_name = (CONST Extbyte *) rtnval->d_name; + const Extbyte * const external_name = (const Extbyte *) rtnval->d_name; /* Optimize for the common all-ASCII case, computing len en passant */ for (external_len = 0; external_name[external_len] ; external_len++) @@ -2995,7 +3028,7 @@ sys_readdir (DIR *dirp) { /* Non-ASCII filename */ static Bufbyte_dynarr *internal_DIRENTRY; - CONST Bufbyte *internal_name; + const Bufbyte *internal_name; Bytecount internal_len; if (!internal_DIRENTRY) internal_DIRENTRY = Dynarr_new (Bufbyte); @@ -3005,9 +3038,9 @@ sys_readdir (DIR *dirp) Dynarr_add_many (internal_DIRENTRY, (Bufbyte *) rtnval, offsetof (DIRENTRY, d_name)); - internal_name = - convert_from_external_format (external_name, external_len, - &internal_len, FORMAT_FILENAME); + TO_INTERNAL_FORMAT (DATA, (external_name, external_len), + ALLOCA, (internal_name, internal_len), + Qfile_name); Dynarr_add_many (internal_DIRENTRY, internal_name, internal_len); Dynarr_add (internal_DIRENTRY, 0); /* zero-terminate */ @@ -3035,7 +3068,7 @@ sys_closedir (DIR *dirp) #ifdef ENCAPSULATE_RMDIR int -sys_rmdir (CONST char *path) +sys_rmdir (const char *path) { PATHNAME_CONVERT_OUT (path); return rmdir (path); @@ -3047,7 +3080,7 @@ sys_rmdir (CONST char *path) #ifdef ENCAPSULATE_ACCESS int -sys_access (CONST char *path, int mode) +sys_access (const char *path, int mode) { PATHNAME_CONVERT_OUT (path); return access (path, mode); @@ -3058,7 +3091,7 @@ sys_access (CONST char *path, int mode) #ifdef HAVE_EACCESS #ifdef ENCAPSULATE_EACCESS int -sys_eaccess (CONST char *path, int mode) +sys_eaccess (const char *path, int mode) { PATHNAME_CONVERT_OUT (path); return eaccess (path, mode); @@ -3069,7 +3102,7 @@ sys_eaccess (CONST char *path, int mode) #ifdef ENCAPSULATE_LSTAT int -sys_lstat (CONST char *path, struct stat *buf) +sys_lstat (const char *path, struct stat *buf) { PATHNAME_CONVERT_OUT (path); return lstat (path, buf); @@ -3079,7 +3112,7 @@ sys_lstat (CONST char *path, struct stat *buf) #ifdef ENCAPSULATE_READLINK int -sys_readlink (CONST char *path, char *buf, size_t bufsiz) +sys_readlink (const char *path, char *buf, size_t bufsiz) { PATHNAME_CONVERT_OUT (path); /* #### currently we don't do conversions on the incoming data */ @@ -3099,7 +3132,7 @@ sys_fstat (int fd, struct stat *buf) #ifdef ENCAPSULATE_STAT int -sys_stat (CONST char *path, struct stat *buf) +sys_stat (const char *path, struct stat *buf) { PATHNAME_CONVERT_OUT (path); return stat (path, buf); @@ -3111,7 +3144,7 @@ sys_stat (CONST char *path, struct stat *buf) #ifdef ENCAPSULATE_CHMOD int -sys_chmod (CONST char *path, mode_t mode) +sys_chmod (const char *path, mode_t mode) { PATHNAME_CONVERT_OUT (path); return chmod (path, mode); @@ -3121,7 +3154,7 @@ sys_chmod (CONST char *path, mode_t mode) #ifdef ENCAPSULATE_CREAT int -sys_creat (CONST char *path, mode_t mode) +sys_creat (const char *path, mode_t mode) { PATHNAME_CONVERT_OUT (path); return creat (path, mode); @@ -3131,7 +3164,7 @@ sys_creat (CONST char *path, mode_t mode) #ifdef ENCAPSULATE_LINK int -sys_link (CONST char *existing, CONST char *new) +sys_link (const char *existing, const char *new) { PATHNAME_CONVERT_OUT (existing); PATHNAME_CONVERT_OUT (new); @@ -3142,7 +3175,7 @@ sys_link (CONST char *existing, CONST char *new) #ifdef ENCAPSULATE_RENAME int -sys_rename (CONST char *old, CONST char *new) +sys_rename (const char *old, const char *new) { PATHNAME_CONVERT_OUT (old); PATHNAME_CONVERT_OUT (new); @@ -3161,7 +3194,7 @@ sys_rename (CONST char *old, CONST char *new) #ifdef ENCAPSULATE_SYMLINK int -sys_symlink (CONST char *name1, CONST char *name2) +sys_symlink (const char *name1, const char *name2) { PATHNAME_CONVERT_OUT (name1); PATHNAME_CONVERT_OUT (name2); @@ -3172,7 +3205,7 @@ sys_symlink (CONST char *name1, CONST char *name2) #ifdef ENCAPSULATE_UNLINK int -sys_unlink (CONST char *path) +sys_unlink (const char *path) { PATHNAME_CONVERT_OUT (path); return unlink (path); @@ -3182,7 +3215,7 @@ sys_unlink (CONST char *path) #ifdef ENCAPSULATE_EXECVP int -sys_execvp (CONST char *path, char * CONST * argv) +sys_execvp (const char *path, char * const * argv) { int i, argc; char ** new_argv; @@ -3210,7 +3243,7 @@ sys_execvp (CONST char *path, char * CONST * argv) #ifndef HAVE_GETCWD char * -getcwd (char *pathname, int size) +getcwd (char *pathname, size_t size) { return getwd (pathname); } @@ -3254,7 +3287,7 @@ getwd (char *pathname) #ifndef HAVE_RENAME int -rename (CONST char *from, CONST char *to) +rename (const char *from, const char *to) { if (access (from, 0) == 0) { @@ -3511,7 +3544,7 @@ get_random (void) #if !defined (SYS_SIGLIST_DECLARED) && !defined (HAVE_SYS_SIGLIST) #if defined(WINDOWSNT) || defined(__CYGWIN32__) -CONST char *sys_siglist[] = +const char *sys_siglist[] = { "bum signal!!", "hangup", @@ -3544,7 +3577,7 @@ CONST char *sys_siglist[] = #ifdef USG #ifdef AIX -CONST char *sys_siglist[NSIG + 1] = +const char *sys_siglist[NSIG + 1] = { /* AIX has changed the signals a bit */ DEFER_GETTEXT ("bogus signal"), /* 0 */ @@ -3584,7 +3617,7 @@ CONST char *sys_siglist[NSIG + 1] = 0 }; #else /* USG, not AIX */ -CONST char *sys_siglist[NSIG + 1] = +const char *sys_siglist[NSIG + 1] = { DEFER_GETTEXT ("bogus signal"), /* 0 */ DEFER_GETTEXT ("hangup"), /* 1 SIGHUP */ @@ -3633,7 +3666,7 @@ CONST char *sys_siglist[NSIG + 1] = #endif /* not AIX */ #endif /* USG */ #ifdef DGUX -CONST char *sys_siglist[NSIG + 1] = +const char *sys_siglist[NSIG + 1] = { DEFER_GETTEXT ("null signal"), /* 0 SIGNULL */ DEFER_GETTEXT ("hangup"), /* 1 SIGHUP */ @@ -3738,7 +3771,7 @@ closedir (DIR *dirp) /* stream from opendir */ #ifdef NONSYSTEM_DIR_LIBRARY DIR * -opendir (CONST char *filename) /* name of directory */ +opendir (const char *filename) /* name of directory */ { DIR *dirp; /* -> malloc'ed storage */ int fd; /* file descriptor for read */ @@ -3840,7 +3873,7 @@ readdir (DIR *dirp) /* stream from opendir */ MKDIR_PROTOTYPE #else int -mkdir (CONST char *dpath, int dmode) +mkdir (const char *dpath, int dmode) #endif { int cpid, status, fd; @@ -3900,7 +3933,7 @@ mkdir (CONST char *dpath, int dmode) #ifndef HAVE_RMDIR int -rmdir (CONST char *dpath) +rmdir (const char *dpath) { int cpid, status, fd; struct stat statbuf;