pkgsrc/chat/icb/patches/patch-ap
joerg 21320c5685 Teach the backbone of NetBSD communication some ISO C tricks.
- no errno, use errno.h
- no redefinition of function parameters as local variables
  [how did this ever work?!]
- malloc comes from stdlib.h
- NAME_MAX is prefered when available, it is POSIX
- strchr, strpbrk, strspn, strstr, strtol and strtoul can and
  should be used from libc.
- remove tcl version of string.h, system header is good enough
  (and if it doesn't have index, it would have been broken anyway)
2005-12-14 13:53:24 +00:00

59 lines
1.5 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$NetBSD: patch-ap,v 1.2 2005/12/14 13:53:24 joerg Exp $
--- tcl/tclCmdAH.c.orig 1995-02-24 21:19:53.000000000 +0000
+++ tcl/tclCmdAH.c
@@ -38,9 +38,21 @@ static char rcsid[] = "$Header: /home/ag
#include <sys/wait.h>
#include "tclInt.h"
-extern int errno;
+#ifdef __NetBSD__
+#define unix
+#endif
+
+#if (defined(__unix__) || defined(unix)) && !defined(USG)
+#include <sys/param.h>
+#include <unistd.h>
+#endif
+
+#if !(defined(BSD) && BSD >= 199306)
extern long lseek();
+#endif
+#ifndef BSD4_4
extern char *mktemp();
+#endif
/*
*----------------------------------------------------------------------
@@ -430,7 +442,7 @@ Tcl_ExecCmd(dummy, interp, argc, argv)
int pid = -1; /* -1 means child process doesn't
* exist (yet). Non-zero gives its
* id (0 only in child). */
- union wait status;
+ int status;
char *cmdName, *execName;
/*
@@ -501,8 +513,13 @@ Tcl_ExecCmd(dummy, interp, argc, argv)
} else {
char tmp[sizeof(TMP_FILE_NAME) + 1];
strcpy(tmp, TMP_FILE_NAME);
+#ifdef BSD4_4
+ mkstemp(tmp);
+ stdIn[0] = mkstemp(tmp);
+#else
mktemp(tmp);
stdIn[0] = open(tmp, O_RDWR|O_CREAT, 0);
+#endif
if (stdIn[0] < 0) {
sprintf(interp->result,
"couldn't create input file for \"%.50s\" command: %.50s",
@@ -642,7 +659,7 @@ Tcl_ExecCmd(dummy, interp, argc, argv)
sprintf(interp->result, "command terminated abnormally");
result = TCL_ERROR;
}
- result = status.w_retcode;
+ result = WEXITSTATUS(status);
}
if (stdIn[0] != -1) {
close(stdIn[0]);