Index: cvs/build.com diff -c cvs/build.com:1.1.1.1 cvs/build.com:1.2 *** cvs/build.com:1.1.1.1 Fri Jun 1 12:41:37 2001 --- cvs/build.com Fri Jun 1 12:44:53 2001 *************** *** 1,5 **** $ set def [.zlib] ! $ @build_zlib.com $ set def [-.diff] $ @build_diff.com $ set def [-.vms] --- 1,5 ---- $ set def [.zlib] ! $ @make_vms.com $ set def [-.diff] $ @build_diff.com $ set def [-.vms] Index: cvs/diff/build_diff.com diff -c cvs/diff/build_diff.com:1.1.1.1 cvs/diff/build_diff.com:1.2 *** cvs/diff/build_diff.com:1.1.1.1 Fri Jun 1 12:41:42 2001 --- cvs/diff/build_diff.com Fri Jun 1 12:47:28 2001 *************** *** 1,3 **** --- 1,4 ---- + $ set verify $ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H- /INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES $ CC diff.c *************** *** 16,18 **** --- 17,20 ---- $ library/create diff.olb diff.obj,analyze.obj,cmpbuf.obj,- dir.obj,io.obj,util.obj,context.obj,ed.obj,ifdef.obj,normal.obj,- side.obj,version.obj,diff3.obj + $ set noverify Index: cvs/diff/diff3.c diff -c cvs/diff/diff3.c:1.1.1.1 cvs/diff/diff3.c:1.2 *** cvs/diff/diff3.c:1.1.1.1 Fri Jun 1 12:41:42 2001 --- cvs/diff/diff3.c Fri Jun 1 13:01:53 2001 *************** *** 1847,1856 **** char *ptr; size_t size; { ! size_t result = read (fd, ptr, size); if (result == -1) diff3_perror_with_exit ("read failed"); ! return result; } static void --- 1847,1856 ---- char *ptr; size_t size; { ! ssize_t result = read (fd, ptr, size); if (result == -1) diff3_perror_with_exit ("read failed"); ! return (size_t)result; } static void Index: cvs/diff/io.c diff -c cvs/diff/io.c:1.1.1.1 cvs/diff/io.c:1.2 *** cvs/diff/io.c:1.1.1.1 Fri Jun 1 12:41:42 2001 --- cvs/diff/io.c Fri Jun 1 13:01:53 2001 *************** *** 101,107 **** #if HAVE_SETMODE int oldmode = setmode (current->desc, O_BINARY); #endif ! size_t n = read (current->desc, current->buffer, current->bufsize); if (n == -1) pfatal_with_name (current->name); current->buffered_chars = n; --- 101,107 ---- #if HAVE_SETMODE int oldmode = setmode (current->desc, O_BINARY); #endif ! ssize_t n = read (current->desc, current->buffer, current->bufsize); if (n == -1) pfatal_with_name (current->name); current->buffered_chars = n; *************** *** 128,134 **** slurp (current) struct file_data *current; { ! size_t cc; if (current->desc < 0) /* The file is nonexistent. */ --- 128,134 ---- slurp (current) struct file_data *current; { ! ssize_t cc; if (current->desc < 0) /* The file is nonexistent. */ Index: cvs/lib/build_lib.com diff -c cvs/lib/build_lib.com:1.1.1.1 cvs/lib/build_lib.com:1.2 *** cvs/lib/build_lib.com:1.1.1.1 Fri Jun 1 12:41:41 2001 --- cvs/lib/build_lib.com Fri Jun 1 12:49:09 2001 *************** *** 1,3 **** --- 1,4 ---- + $ set verify $ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H- /INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES $ CC fnmatch.c *************** *** 16,18 **** --- 17,20 ---- $ library/create gnulib.olb fnmatch.obj,getdate.obj,getline.obj,- getopt.obj,getopt1.obj,md5.obj,regex.obj,savecwd.obj,sighandle.obj,- stripslash.obj,valloc.obj,xgetwd.obj,yesno.obj + $ set noverify Index: cvs/lib/getdate.c diff -c cvs/lib/getdate.c:1.1.1.1 cvs/lib/getdate.c:1.2 *** cvs/lib/getdate.c:1.1.1.1 Fri Jun 1 12:41:41 2001 --- cvs/lib/getdate.c Fri Jun 1 12:58:53 2001 *************** *** 63,70 **** # include #else /* defined(vms) */ # include - # include "xtime.h" #endif /* !defined(vms) */ #if defined (STDC_HEADERS) || defined (USG) #include --- 63,70 ---- # include #else /* defined(vms) */ # include #endif /* !defined(vms) */ + # include "xtime.h" #if defined (STDC_HEADERS) || defined (USG) #include Index: cvs/lib/getdate.y diff -c cvs/lib/getdate.y:1.1.1.1 cvs/lib/getdate.y:1.2 *** cvs/lib/getdate.y:1.1.1.1 Fri Jun 1 12:41:41 2001 --- cvs/lib/getdate.y Fri Jun 1 12:58:53 2001 *************** *** 42,49 **** # include #else /* defined(vms) */ # include - # include "xtime.h" #endif /* !defined(vms) */ #if defined (STDC_HEADERS) || defined (USG) #include --- 42,49 ---- # include #else /* defined(vms) */ # include #endif /* !defined(vms) */ + # include "xtime.h" #if defined (STDC_HEADERS) || defined (USG) #include Index: cvs/src/build_src.com diff -c cvs/src/build_src.com:1.1.1.1 cvs/src/build_src.com:1.2 *** cvs/src/build_src.com:1.1.1.1 Fri Jun 1 12:41:39 2001 --- cvs/src/build_src.com Fri Jun 1 12:52:15 2001 *************** *** 1,7 **** --- 1,9 ---- + $ set verify $ CC :== CC/NOOPT/DEB/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H- /INCLUDE_DIR=([-],[-.VMS],[-.LIB])/PREFIX=ALL $ CC add.c $ CC admin.c + $ CC annotate.c $ CC buffer.c $ CC checkin.c $ CC checkout.c *************** *** 51,57 **** $ CC watch.c $ CC wrapper.c $ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.zlib]) zlib.c ! $ LIBRARY/CREATE cvslib.olb add.obj,admin.obj,buffer.obj,checkin.obj,- checkout.obj,- classify.obj,client.obj,commit.obj,create_adm.obj,cvsrc.obj,- diff.obj,edit.obj,entries.obj,error.obj,expand_path.obj,fileattr.obj,- --- 53,59 ---- $ CC watch.c $ CC wrapper.c $ CC/INCLUDE_DIR=([-],[-.VMS],[-.LIB],[-.zlib]) zlib.c ! $ LIBRARY/CREATE cvslib.olb add.obj,admin.obj,annotate.obj,buffer.obj,checkin.obj,- checkout.obj,- classify.obj,client.obj,commit.obj,create_adm.obj,cvsrc.obj,- diff.obj,edit.obj,entries.obj,error.obj,expand_path.obj,fileattr.obj,- *************** *** 64,67 **** subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.obj,- zlib.obj $ link/nodeb/exe=cvs.exe main.obj,cvslib.olb/lib,[-.vms]openvmslib.olb/lib,- ! [-.zlib]zlib.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib --- 66,70 ---- subr.obj,tag.obj,update.obj,version.obj,vers_ts.obj,watch.obj,wrapper.obj,- zlib.obj $ link/nodeb/exe=cvs.exe main.obj,cvslib.olb/lib,[-.vms]openvmslib.olb/lib,- ! [-.zlib]libz.olb/lib,[-.diff]diff.olb/lib,[-.lib]gnulib.olb/lib ! $ set noverify Index: cvs/src/patch.c diff -c cvs/src/patch.c:1.1.1.1 cvs/src/patch.c:1.2 *** cvs/src/patch.c:1.1.1.1 Fri Jun 1 12:41:38 2001 --- cvs/src/patch.c Fri Jun 1 13:00:38 2001 *************** *** 432,438 **** if (!date1) date1 = xmalloc (MAXDATELEN); *date1 = '\0'; ! if (RCS_getrevtime (rcsfile, vers_head, date1, 1) == -1) { if (!really_quiet) error (0, 0, "cannot find date in rcs file %s revision %s", --- 432,438 ---- if (!date1) date1 = xmalloc (MAXDATELEN); *date1 = '\0'; ! if (RCS_getrevtime (rcsfile, vers_head, date1, 1) == (time_t)-1) { if (!really_quiet) error (0, 0, "cannot find date in rcs file %s revision %s", Index: cvs/src/subr.c diff -c cvs/src/subr.c:1.1.1.1 cvs/src/subr.c:1.3 *** cvs/src/subr.c:1.1.1.1 Fri Jun 1 12:41:39 2001 --- cvs/src/subr.c Fri Jun 1 13:08:42 2001 *************** *** 742,750 **** But that would require editing each filesubr.c and so the expedient hack seems to be looking at HAVE_READLINK. */ newname = xreadlink (*filename); - #else - error (1, 0, "internal error: islink doesn't like readlink"); - #endif if (isabsolute (newname)) { --- 745,750 ---- *************** *** 762,767 **** --- 762,770 ---- free (*filename); *filename = fullnewname; } + #else + error (1, 0, "internal error: islink doesn't like readlink"); + #endif } } Index: cvs/vms/build_vms.com diff -c cvs/vms/build_vms.com:1.1.1.1 cvs/vms/build_vms.com:1.2 *** cvs/vms/build_vms.com:1.1.1.1 Fri Jun 1 12:41:43 2001 --- cvs/vms/build_vms.com Fri Jun 1 12:53:42 2001 *************** *** 1,3 **** --- 1,4 ---- + $ set verify $ CC :== CC/DEBUG/NOOPTIMIZE/STANDARD=VAXC/DEFINE=HAVE_CONFIG_H- /INCLUDE_DIRECTORY=([-],[-.LIB],[-.SRC],[-.VMS])/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES $ CC filesubr.c *************** *** 22,24 **** --- 23,26 ---- filutils.obj,getpass.obj,getwd.obj,misc.obj,ndir.obj,pipe.obj,- pwd.obj,rcmd.obj,readlink.obj,rmdir.obj,stat.obj,startserver.obj,- unlink.obj,utime.obj,vmsmunch.obj,waitpid.obj + $ set noverify Index: cvs/vms/filesubr.c diff -c cvs/vms/filesubr.c:1.1.1.1 cvs/vms/filesubr.c:1.2 *** cvs/vms/filesubr.c:1.1.1.1 Fri Jun 1 12:41:43 2001 --- cvs/vms/filesubr.c Fri Jun 1 12:57:31 2001 *************** *** 17,22 **** --- 17,23 ---- GNU General Public License for more details. */ #include "cvs.h" + #include static int deep_remove_dir PROTO((const char *path)); *************** *** 641,647 **** if (read2 == (size_t)-1) error (1, errno, "cannot read file %s for comparing", file2); ! /* assert (read1 == read2); */ ret = memcmp(buf1, buf2, read1); } while (ret == 0 && read1 == buf_size); --- 642,648 ---- if (read2 == (size_t)-1) error (1, errno, "cannot read file %s for comparing", file2); ! assert (read1 == read2); ret = memcmp(buf1, buf2, read1); } while (ret == 0 && read1 == buf_size); *************** *** 733,751 **** } /* Generate a unique temporary filename. Returns a pointer to a newly ! malloc'd string containing the name. Returns successfully or not at ! all. */ char * cvs_temp_name () { ! char value[L_tmpnam + 1]; ! char *retval; ! /* FIXME: what is the VMS equivalent to TMPDIR? */ ! retval = tmpnam (value); ! if (retval == NULL) ! error (1, errno, "cannot generate temporary filename"); ! return xstrdup (retval); } /* Return non-zero iff FILENAME is absolute. --- 734,898 ---- } /* Generate a unique temporary filename. Returns a pointer to a newly ! * malloc'd string containing the name. Returns successfully or not at ! * all. ! * ! * THIS FUNCTION IS DEPRECATED!!! USE cvs_temp_file INSTEAD!!! ! * ! * and yes, I know about the way the rcs commands use temp files. I think ! * they should be converted too but I don't have time to look into it right ! * now. ! */ char * cvs_temp_name () { ! char *fn; ! FILE *fp; ! ! fp = cvs_temp_file (&fn); ! if (fp == NULL) ! error (1, errno, "Failed to create temporary file"); ! if (fclose (fp) == EOF) ! error (0, errno, "Failed to close temporary file %s", fn); ! return fn; ! } ! ! /* Generate a unique temporary filename and return an open file stream ! * to the truncated file by that name ! * ! * INPUTS ! * filename where to place the pointer to the newly allocated file ! * name string ! * ! * OUTPUTS ! * filename dereferenced, will point to the newly allocated file ! * name string. This value is undefined if the function ! * returns an error. ! * ! * RETURNS ! * An open file pointer to a read/write mode empty temporary file with the ! * unique file name or NULL on failure. ! * ! * ERRORS ! * on error, errno will be set to some value either by CVS_FOPEN or ! * whatever system function is called to generate the temporary file name ! */ ! /* There are at least four functions for generating temporary ! * filenames. We use mkstemp (BSD 4.3) if possible, else tempnam (SVID 3), ! * else mktemp (BSD 4.3), and as last resort tmpnam (POSIX). Reason is that ! * mkstemp, tempnam, and mktemp both allow to specify the directory in which ! * the temporary file will be created. ! * ! * And the _correct_ way to use the deprecated functions probably involves ! * opening file descriptors using O_EXCL & O_CREAT and even doing the annoying ! * NFS locking thing, but until I hear of more problems, I'm not going to ! * bother. ! */ ! FILE *cvs_temp_file (filename) ! char **filename; ! { ! char *fn; ! FILE *fp; ! ! /* FIXME - I'd like to be returning NULL here in noexec mode, but I think ! * some of the rcs & diff functions which rely on a temp file run in ! * noexec mode too. ! */ ! ! assert (filename != NULL); ! ! #ifdef HAVE_MKSTEMP ! ! { ! int fd; ! ! fn = xmalloc (strlen (Tmpdir) + 11); ! sprintf (fn, "%s/%s", Tmpdir, "cvsXXXXXX" ); ! fd = mkstemp (fn); ! ! /* a NULL return will be interpreted by callers as an error and ! * errno should still be set ! */ ! if (fd == -1) fp = NULL; ! else if ((fp = CVS_FDOPEN (fd, "w+")) == NULL) ! { ! /* attempt to close and unlink the file since mkstemp returned sucessfully and ! * we believe it's been created and opened ! */ ! int save_errno = errno; ! if (close (fd)) ! error (0, errno, "Failed to close temporary file %s", fn); ! if (CVS_UNLINK (fn)) ! error (0, errno, "Failed to unlink temporary file %s", fn); ! errno = save_errno; ! } ! ! if (fp == NULL) free (fn); ! /* mkstemp is defined to open mode 0600 using glibc 2.0.7+ */ ! /* FIXME - configure can probably tell us which version of glibc we are ! * linking to and not chmod for 2.0.7+ ! */ ! else chmod (fn, 0600); ! ! } ! ! #elif HAVE_TEMPNAM ! ! /* tempnam has been deprecated due to under-specification */ ! ! fn = tempnam (Tmpdir, "cvs"); ! if (fn == NULL) fp = NULL; ! else if ((fp = CVS_FOPEN (fn, "w+")) == NULL) free (fn); ! else chmod (fn, 0600); ! ! /* tempnam returns a pointer to a newly malloc'd string, so there's ! * no need for a xstrdup ! */ ! ! #elif HAVE_MKTEMP ! ! /* mktemp has been deprecated due to the BSD 4.3 specification specifying ! * that XXXXXX will be replaced by a PID and a letter, creating only 26 ! * possibilities, a security risk, and a race condition. ! */ ! ! { ! char *ifn; ! ! ifn = xmalloc (strlen (Tmpdir) + 11); ! sprintf (ifn, "%s/%s", Tmpdir, "cvsXXXXXX" ); ! fn = mktemp (ifn); ! ! if (fn == NULL) fp = NULL; ! else fp = CVS_FOPEN (fn, "w+"); ! ! if (fp == NULL) free (ifn); ! else chmod (fn, 0600); ! ! } ! ! #else /* use tmpnam if all else fails */ ! ! /* tmpnam is deprecated */ ! ! { ! char ifn[L_tmpnam + 1]; ! ! fn = tmpnam (ifn); ! ! if (fn == NULL) fp = NULL; ! else if ((fp = CVS_FOPEN (ifn, "w+")) != NULL) ! { ! fn = xstrdup (ifn); ! chmod (fn, 0600); ! } ! ! } ! ! #endif ! *filename = fn; ! return fp; } /* Return non-zero iff FILENAME is absolute. Index: cvs/zlib/Make_vms.com diff -c cvs/zlib/Make_vms.com:1.1.1.1 cvs/zlib/Make_vms.com:1.2 *** cvs/zlib/Make_vms.com:1.1.1.1 Fri Jun 1 12:41:40 2001 --- cvs/zlib/Make_vms.com Fri Jun 1 13:35:06 2001 *************** *** 61,72 **** $ CALL MAKE example.OBJ "CC ''CCOPT' example" - example.c zlib.h zconf.h $ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb ! $ write sys$output "Building minigzip..." ! $ CALL MAKE minigzip.OBJ "CC ''CCOPT' minigzip" - ! minigzip.c zlib.h zconf.h ! $ call make minigzip.exe - ! "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" - ! minigzip.obj libz.olb $ else $ mms/macro=('comp') $ endif --- 61,72 ---- $ CALL MAKE example.OBJ "CC ''CCOPT' example" - example.c zlib.h zconf.h $ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb ! $! write sys$output "Building minigzip..." ! $! CALL MAKE minigzip.OBJ "CC ''CCOPT' minigzip" - ! $! minigzip.c zlib.h zconf.h ! $! call make minigzip.exe - ! $! "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" - ! $! minigzip.obj libz.olb $ else $ mms/macro=('comp') $ endif