[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS-1_11_18 Client build for VMS
From: |
Piet Schuermans |
Subject: |
CVS-1_11_18 Client build for VMS |
Date: |
Thu, 27 Jan 2005 12:45:00 +0100 |
I like to inform that we successful build CVS-1_11_18 on Alpha platform
OpenVms 7.3-2
using Compaq C version 6.5 - 001 removed all compiler warnings and
informational by correcting / adjusting
following source files:
[diff]diff.c
[vms]FileSubr.c
[vms]vms.h >> added the missing Package_string definition
[lib]fnmatch.h
[lib]getopt.h
[lib]system.h
[lib]getdate.c
[lib]fnmatch.c
[lib]getdate.y
[src]client.c
Initially the build CVS version did not work. A server response message
result in several socket errors.
I had to change (restore from 1_11_2) the functions handle_e and
handle_m in [SRC]CLIENT.c to get the cvs client working.
Since January most of our in-house developer have change to this new
CVS client.
They encountered the same checking out problem as in previous VMS
clients. I will submit the details in an separate mail including the
current workaround.
P Schuermans
Details:
The original CVS-1_11_18 files as retrieved from the CVS site have all
version number 1
Some changes are not absolutely necessary but will eliminate annoying
compiler warnings and informational messages, and perhaps eliminate
some run time problems.
General remark:
Time to build this CVS client was limited. Therefor elegant adjustment
options weren't used or investigated.
[USERS.PS.TOOLS.CVS.CVS-1_11_18.DIFF]>diff diff.c diff.c;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.DIFF]DIFF.C;3
130 int i, flag;
131 flag = 0;
132
133 for (i = 0; i < exclude_count; i++)
134 if (fnmatch (exclude[i], f, flag ) == 0)
135 return 1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.DIFF]DIFF.C;1
130 int i;
131 for (i = 0; i < exclude_count; i++)
132 if (fnmatch (exclude[i], f, 0) == 0)
133 return 1;
************
USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS>diff filesubr.c filesubr.c;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]FILESUBR.C;3
940 const char *last_component (char *path)
941 {
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]FILESUBR.C;1
940 char *
941 last_component (path)
942 char *path;
943 {
************
USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS>diff vms.h vms.h;1
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]VMS.H;4
22 #define PACKAGE_STRING "Concurrent Versions System (CVS)
1.11.18 VMS"
23
24 /*
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]VMS.H;1
23 /*
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]VMS.H;4
45 /*
46 int link(char *from, char *to);
47 */
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.VMS]VMS.H;1
44
45 int link(char *from, char *to);
************
Remark:
I did not yet reserve time to correct this segment in FNMATCH.H
I took the easy way and just remove the lines that caused compiler
problems.
USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB>diff fnmatch.h fnmatch.h;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.H;4
32 #endif /* fnmatch.h */
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.H;1
32 /* For Mac OS X namespace conflicts again. Yuck... */
33 #ifdef HAVE_FNMATCH_H
34 # define fnmatch cvs_fnmatch
35 #endif /* HAVE_FNMATCH_H */
36 /* Match STRING against the filename pattern PATTERN,
37 returning zero if it matches, FNM_NOMATCH if not. */
38 #if __STDC__
39 extern int fnmatch (const char *pattern, const char *string,
int flags);
40 #else
41 extern int fnmatch ();
42 #endif
43
44 #endif /* fnmatch.h */
************
USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB>diff getopt.h getopt.h;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.H;4
33 /* # define getopt cvs_getopt */
34 # define optarg cvs_optarg
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.H;1
33 # define getopt cvs_getopt
34 # define optarg cvs_optarg
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.H;4
124
125 /*
126 extern int getopt ();
127 */
128
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.H;1
124 extern int getopt ();
125
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.H;4
141
142 /* extern int getopt (); */
143 extern int getopt_long ();
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETOPT.H;1
138 extern int getopt ();
139 extern int getopt_long ();
************
USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB>diff system.h system.h;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]SYSTEM.H;2
504
505
506 /* VMS also so ...
507 # define FOLD_FN_CHAR(c) (OSX_filename_classes[(unsigned
char) (c)])
508 extern unsigned char OSX_filename_classes[];
509
510 ....*/
511
512 # endif /* __CYGWIN32__ || WOE32 */
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]SYSTEM.H;1
504 # define FOLD_FN_CHAR(c) (OSX_filename_classes[(unsigned
char) (c)])
505 extern unsigned char OSX_filename_classes[];
506 # endif /* __CYGWIN32__ || WOE32 */
************
Remark: This has been an annoying warning since our first VMS
version _0_86
I corrected the type problems by using some additional variables.
Minutes is represented within the functions by I_Minutes type int.
Seconds, Hours, Year and Month by I_Seconds, I_Hours, I_Year and I_Month
DayOrdinal by I_DayOrdinal
USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB>diff getdate.c getdate.c;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
591
592 int I_Minutes, I_Seconds, I_Hours;
593
594 I_Minutes = (int)(Minutes * 1);
595 I_Seconds = (int)(Seconds * 1);
596 I_Hours = (int)(Hours * 1);
597
598 if (I_Minutes < 0 || I_Minutes > 59 || I_Seconds < 0 ||
I_Seconds >
599 return -1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
590 if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds >
59)
591 return -1;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
602 if (I_Hours < 0 || I_Hours > 23)
603 return -1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
594 if (Hours < 0 || Hours > 23)
595 return -1;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
606 if (I_Hours < 1 || I_Hours > 12)
607 return -1;
608 if (I_Hours == 12)
609 Hours = 0;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
598 if (Hours < 1 || Hours > 12)
599 return -1;
600 if (Hours == 12)
601 Hours = 0;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
612 if (I_Hours < 1 || I_Hours > 12)
613 return -1;
614 if (I_Hours == 12)
615 Hours = 0;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
604 if (Hours < 1 || Hours > 12)
605 return -1;
606 if (Hours == 12)
607 Hours = 0;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
644 int i, I_Year, I_Month;
645
646 I_Year = (int)(Year * 1);
647 I_Month = (int)(Month * 1);
648 if (I_Year < 0)
649 I_Year = -I_Year;
650 if (I_Year < 69)
651 I_Year += 2000;
652 else if (I_Year < 100)
653 I_Year += 1900;
654 DaysInMonth[1] = I_Year % 4 == 0 && (I_Year % 100 != 0 ||
I_Year % 4
655 ? 29 : 28;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
636 int i;
637
638 if (Year < 0)
639 Year = -Year;
640 if (Year < 69)
641 Year += 2000;
642 else if (Year < 100)
643 Year += 1900;
644 DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year
% 400 ==
645 ? 29 : 28;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
658 if (I_Year < EPOCH || I_Year > 2038
659 || I_Month < 1 || I_Month > 12
660 /* Lint fluff: "conversion from long may lose accuracy" */
661 || Day < 1 || Day > DaysInMonth[--I_Month])
662 /* FIXME:
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
648 if (Year < EPOCH || Year > 2038
649 || Month < 1 || Month > 12
650 /* Lint fluff: "conversion from long may lose accuracy" */
651 || Day < 1 || Day > DaysInMonth[(int)--Month])
652 /* FIXME:
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
670 for (Julian = Day - 1, i = 0; i < I_Month; i++)
671 Julian += DaysInMonth[i];
672 for (i = EPOCH; i < I_Year; i++)
673 Julian += 365 + (i % 4 == 0);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
660 for (Julian = Day - 1, i = 0; i < Month; i++)
661 Julian += DaysInMonth[i];
662 for (i = EPOCH; i < Year; i++)
663 Julian += 365 + (i % 4 == 0);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
676 tod = ToSeconds(Hours, Minutes, Seconds, Meridian);
677
678 if ((int)tod < 0)
679 return -1;
680
681 Julian += tod;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
666 if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) <
0)
667 return -1;
668 Julian += tod;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
711 int I_DayOrdinal;
712
713 I_DayOrdinal = (int)(DayOrdinal * 1);
714
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
698
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
718 now += 7 * SECSPERDAY * (I_DayOrdinal <= 0 ? DayOrdinal :
DayOrdinal
719 return DSTcorrect(Start, now);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
702 now += 7 * SECSPERDAY * (DayOrdinal <= 0 ? DayOrdinal :
DayOrdinal -
703 return DSTcorrect(Start, now);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
1002 if ( (int)Start < 0)
1003 return -1;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
986 if (Start < 0)
987 return -1;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;8
1021 return (int)Start == -1 ? 0 : Start;
1022 }
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.C;1
1005 return Start == -1 ? 0 : Start;
1006 }
************
Remark: Did it again, just removed lines to make it easier for the
compiler to swallow
USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB>diff fnmatch.c fnmatch.c;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
31
32 int fnmatch (const char *pattern, const char *string, int flags)
33 {
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
35 int
36 #if __STDC__
37 fnmatch (const char *pattern, const char *string, int flags)
38 #else
39 fnmatch (pattern, string, flags)
40 char *pattern;
41 char *string;
42 int flags;
43 #endif
44 {
************
Remark: Used same type correction method as in GETDATE.C
There is an more elegant way but the previous method worked fine.
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
36 int rtvalue;
37
38
39 rtvalue = (int)(FNM_NOMATCH);
40
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
47
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
53 return rtvalue;
54 else if ((flags & FNM_PATHNAME) && *n == '/')
55 return rtvalue;
56 else if ((flags & FNM_PERIOD) && *n == '.' &&
57 (n == string || ((flags & FNM_PATHNAME) &&
n[-1] == '/')))
58 return rtvalue;
59 break;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
60 return FNM_NOMATCH;
61 else if ((flags & FNM_PATHNAME) && *n == '/')
62 return FNM_NOMATCH;
63 else if ((flags & FNM_PERIOD) && *n == '.' &&
64 (n == string || ((flags & FNM_PATHNAME) &&
n[-1] == '/')))
65 return FNM_NOMATCH;
66 break;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
65 return rtvalue;
66 break;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
72 return FNM_NOMATCH;
73 break;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
71 return rtvalue;
72
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
78 return FNM_NOMATCH;
79
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
76 return rtvalue;
77
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
83 return FNM_NOMATCH;
84
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
87 return rtvalue;
88 }
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
94 return FNM_NOMATCH;
95 }
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
96 return rtvalue;
97
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
103 return FNM_NOMATCH;
104
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
100 return rtvalue;
101
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
107 return FNM_NOMATCH;
108
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
116 return rtvalue;
117
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
123 return FNM_NOMATCH;
124
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
122 return rtvalue;
123
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
129 return FNM_NOMATCH;
130
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
130 return rtvalue;
131 c = *p++;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
137 return FNM_NOMATCH;
138 c = *p++;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
141 return rtvalue;
142 break;
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
148 return FNM_NOMATCH;
149 break;
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
150 return rtvalue;
151
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
157 return FNM_NOMATCH;
158
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
158 return rtvalue;
159 }
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
165 return FNM_NOMATCH;
166 }
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
164 return rtvalue;
165 }
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
171 return FNM_NOMATCH;
172 }
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;7
173 return rtvalue;
174 }
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]FNMATCH.C;1
180 return FNM_NOMATCH;
181 }
************
USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB>diff getdate.y getdate.y;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.Y;2
41 #include <sys/time.h>
42 #if defined(vms)
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.LIB]GETDATE.Y;1
41 #if defined(vms)
************
USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC>diff client.c client.c;1
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;8
31 # else No winsock.h
32 # include <sys/socket.h>
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
31 # else /* No winsock.h */
32 # include <sys/socket.h>
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;8
36 # endif No winsock.h */
37 # endif
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
36 # endif /* No winsock.h */
37 # endif
************
Remark: This part of the client.c source did not raise a compiler
error, warning or informational.
it only contributed in the cvs client crash.
When using the CVS-1_11_18 client it crashed or return an error
whenever it got response from the CVS server.
Our repository and server is on True64 unix platform. We use the
pserver method to access the repository.
Current server version is 1_11_17
By debugging and comparing source files with those of the workable
client version CVS 1_11_2
I changed the functions handle_e and handle_m in client.c see
differences below.
These changed enabled us to use CVS-1_11_18 client on VMS.
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;8
3086
3087 /* difference between running 1_11_2 en 1_11_18 VMS client
build
3088 FD_ZERO (&wfds);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
3088 FD_ZERO (&wfds);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;8
3093 */
3094 fwrite (args, len, sizeof (*args), stdout);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
3093 fwrite (args, len, sizeof (*args), stdout);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;8
3147
3148 /*
3149 FD_ZERO (&wfds);
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
3146 FD_ZERO (&wfds);
************
************
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;8
3158 /*
3159 if (s < 1)
3160 fperrmsg (stdout, 1, errno, "cannot write to stderr");
3161
3162
3163 fwrite (args, len, sizeof (*args), stderr);
3164 putc ('\n', stderr);
3165 */
3166 }
******
File TOOLS$DISK:[USERS.PS.TOOLS.CVS.CVS-1_11_18.SRC]CLIENT.C;1
3155 if (s < 1)
3156 fperrmsg (stdout, 1, errno, "cannot write to stderr");
3157 fwrite (args, len, sizeof (*args), stderr);
3158 putc ('\n', stderr);
3159 }
************
-=====-
This message and any attachments are solely for the intended recipient
and may contain confidential or privileged information. If you are not
the intended recipient, any disclosure, copying, use, or distribution
of the information included in this message and any attachments is
prohibited. If you have received this communication in error, please
notify me by reply e-mail and immediately and permanently delete this
message and any attachments. Thank you
- CVS-1_11_18 Client build for VMS,
Piet Schuermans <=