home *** CD-ROM | disk | FTP | other *** search
/ The UNIX CD Bookshelf / OREILLY_TUCB_UNIX_CD.iso / upt / examples / SOURCES / TKNEW / I386 / TCL. < prev    next >
Text File  |  1998-07-24  |  3KB  |  113 lines

  1. --- unix/Makefile.in.rtr    Tue Mar  4 09:38:55 1997
  2. +++ unix/Makefile.in    Tue Mar  4 09:39:08 1997
  3. @@ -177,7 +177,7 @@
  4.  TOOL_DIR =        $(TOP_DIR)/tools
  5.  DLTEST_DIR =        @srcdir@/dltest
  6.  UNIX_DIR =         @srcdir@
  7. -CC =            @CC@
  8. +CC =            gcc
  9.  
  10.  #----------------------------------------------------------------
  11.  # The information below should be usable as is.  The configure
  12. @@ -190,7 +190,7 @@
  13.  ${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
  14.  ${ENV_FLAGS} -DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
  15.  
  16. -LIBS =        @DL_LIBS@ @LIBS@ $(MATH_LIBS) -lc
  17. +LIBS =        @DL_LIBS@ @LIBS@ $(MATH_LIBS) -lc -lintl
  18.  
  19.  DEPEND_SWITCHES = ${CFLAGS} -I${GENERIC_DIR} -I${SRC_DIR} \
  20.  ${AC_FLAGS} ${MATH_FLAGS} \
  21. --- unix/tclUnixFCmd.c.rtr    Fri Jan 24 16:39:04 1997
  22. +++ unix/tclUnixFCmd.c    Tue Mar  4 14:50:06 1997
  23. @@ -49,7 +49,9 @@
  24.  
  25.  #include "tclInt.h"
  26.  #include "tclPort.h"
  27. +#define _NO_PROTOTYPE
  28.  #include <utime.h>
  29. +#undef _NO_PROTOTYPE
  30.  
  31.  /*
  32.   * The following constants specify the type of callback when
  33. @@ -85,6 +87,7 @@
  34.                  TraversalProc *traversalProc,
  35.                  Tcl_DString *sourcePath, Tcl_DString *destPath,
  36.                  Tcl_DString *errorPtr));
  37. +static int              sco_rename (char *src, char *dst);
  38.  
  39.  /*
  40.   *---------------------------------------------------------------------------
  41. @@ -126,7 +129,7 @@
  42.      char *src;            /* Pathname of file or dir to be renamed. */
  43.      char *dst;            /* New pathname of file or directory. */
  44.  {
  45. -    if (rename(src, dst) == 0) {
  46. +    if (sco_rename(src, dst) == 0) {
  47.      return TCL_OK;
  48.      }
  49.      if (errno == ENOTEMPTY) {
  50. @@ -185,6 +188,43 @@
  51.      return TCL_ERROR;
  52.  }
  53.  
  54. +/*
  55. + *----------------------------------------------------------------
  56. + *
  57. + * version of rename to avoid a scn 3.2v4 bug with causes a locked up
  58. + * process and corrupted file system of src and dst are directories,
  59. + * and dst is not empty
  60. + *
  61. + *----------------------------------------------------------------
  62. + */
  63. +int
  64. +sco_rename (src, dst)
  65. +    char *src;                  /* Pathname of file or dir to be renamed. */
  66. +    char *dst;                  /* New pathname of file or directory. */
  67. +{
  68. +   DIR *dirPtr;
  69. +   struct dirent *dirEntPtr;
  70. +   struct stat srcstatBuf;
  71. +   struct stat dststatBuf;
  72. +
  73. +   if ((stat(src, &srcstatBuf) == 0) && (S_ISDIR(srcstatBuf.st_mode)) &&
  74. +       (stat(dst, &dststatBuf) == 0) && (S_ISDIR(dststatBuf.st_mode))) {
  75. +       dirPtr = opendir(dst);
  76. +       if (dirPtr != NULL) {
  77. +           while ((dirEntPtr = readdir(dirPtr)) != NULL) {
  78. +               if ((strcmp(dirEntPtr->d_name, ".") != 0) &&
  79. +                       (strcmp(dirEntPtr->d_name, "..") != 0)) {
  80. +                   errno = EEXIST;
  81. +                   closedir(dirPtr);
  82. +                   return TCL_ERROR;
  83. +               }
  84. +           }
  85. +           closedir(dirPtr);
  86. +       }
  87. +   }
  88. +   return (rename(src, dst));
  89. +}
  90. +
  91.  
  92.  /*
  93.   *---------------------------------------------------------------------------
  94. @@ -322,7 +362,7 @@
  95.      return TCL_ERROR;
  96.      }
  97.  
  98. -    blockSize = srcStatBufPtr->st_blksize;
  99. +    blockSize = 8192;
  100.      buffer = ckalloc(blockSize);
  101.      while (1) {
  102.      nread = read(srcFd, buffer, blockSize);
  103. --- unix/tclUnixTime.c.rtr    Wed Sep  4 18:23:05 1996
  104. +++ unix/tclUnixTime.c    Tue Mar  4 09:39:09 1997
  105. @@ -14,6 +14,7 @@
  106.  
  107.  #include "tclInt.h"
  108.  #include "tclPort.h"
  109. +#define tm_tzadj __tm_tzadj
  110.  
  111.  /*
  112.   *-----------------------------------------------------------------------------
  113.