home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 22 gnu
/
22-gnu.zip
/
rcs567s.zip
/
rcs
/
src
/
ms
/
patches
< prev
next >
Wrap
Text File
|
1994-08-04
|
7KB
|
243 lines
diff -cbr rcs-orig/src/conf.heg rcs/src/conf.heg
*** rcs-orig/src/conf.heg Mon Aug 01 15:32:16 1994
--- rcs/src/conf.heg Mon Aug 01 15:20:30 1994
***************
*** 140,145 ****
--- 140,146 ----
/* This may need changing on non-Unix systems (notably DOS). */
#define OPEN_CREAT_READONLY (S_IRUSR|S_IRGRP|S_IROTH) /* lock file mode */
#define OPEN_O_LOCK 0 /* extra open flags for creating lock file */
+ #define OPEN_O_WRONLY O_WRONLY
/* Define or comment out the following symbols as needed. */
#define bad_chmod_close 0 /* Can chmod() close file descriptors? */
diff -cbr rcs-orig/src/conf.sh rcs/src/conf.sh
*** rcs-orig/src/conf.sh Thu Apr 14 16:14:32 1994
--- rcs/src/conf.sh Thu Aug 04 19:39:16 1994
***************
*** 590,595 ****
--- 590,596 ----
/* This may need changing on non-Unix systems (notably DOS). */
#define OPEN_CREAT_READONLY (S_IRUSR|S_IRGRP|S_IROTH) /* lock file mode */
#define OPEN_O_LOCK 0 /* extra open flags for creating lock file */
+ #define OPEN_O_WRONLY O_WRONLY
/* Define or comment out the following symbols as needed. */
EOF
diff -cbr rcs-orig/src/ident.c rcs/src/ident.c
*** rcs-orig/src/ident.c Sun Mar 20 05:52:58 1994
--- rcs/src/ident.c Tue Mar 22 21:33:28 1994
***************
*** 239,241 ****
--- 239,247 ----
VOID fprintf(stdout, " %c%s\n", KDELIM, line);
return 0;
}
+
+ void
+ exiterr()
+ {
+ _exit(EXIT_FAILURE);
+ }
diff -cbr rcs-orig/src/rcs.c rcs/src/rcs.c
*** rcs-orig/src/rcs.c Thu Mar 17 15:05:48 1994
--- rcs/src/rcs.c Tue Mar 22 21:00:02 1994
***************
*** 1052,1058 ****
--- 1052,1060 ----
warn("Mail notification of broken locks is not available."),
#endif
warn("Please tell `%s' why you broke the lock.", who);
+ #ifdef SENDMAIL
Ozclose(&mailmess);
+ #endif
return(true);
}
diff -cbr rcs-orig/src/rcsedit.c rcs/src/rcsedit.c
*** rcs-orig/src/rcsedit.c Sun Mar 20 05:52:58 1994
--- rcs/src/rcsedit.c Tue Jul 26 20:46:50 1994
***************
*** 1371,1377 ****
# if !open_can_creat
# define create(f) creat(f, OPEN_CREAT_READONLY)
# else
! # define create(f) open(f, OPEN_O_BINARY|OPEN_O_LOCK|O_CREAT|O_EXCL|O_TRUNC|O_WRONLY, OPEN_CREAT_READONLY)
# endif
catchints();
--- 1371,1377 ----
# if !open_can_creat
# define create(f) creat(f, OPEN_CREAT_READONLY)
# else
! # define create(f) open(f, OPEN_O_BINARY|OPEN_O_LOCK|O_CREAT|O_EXCL|O_TRUNC|OPEN_O_WRONLY, OPEN_CREAT_READONLY)
# endif
catchints();
diff -cbr rcs-orig/src/rlog.c rcs/src/rlog.c
*** rcs-orig/src/rlog.c Thu Apr 14 16:14:06 1994
--- rcs/src/rlog.c Thu Apr 14 16:14:34 1994
***************
*** 208,218 ****
static struct lockers *lockerlist;
static struct stateattri *statelist;
mainProg(rlogId, "rlog", "$Id: rlog.c,v 5.16 1994/04/13 16:30:34 eggert Exp $")
{
static char const cmdusage[] =
! "\nrlog usage: rlog -{bhLNRt} -ddates -l[lockers] -r[revs] -sstates -Vn -w[logins] -xsuff -zzone file ...";
register FILE *out;
char *a, **newargv;
--- 208,221 ----
static struct lockers *lockerlist;
static struct stateattri *statelist;
+ static int onlyid;
+ static char const *numrev2symbrev P((char const *numrev));
+
mainProg(rlogId, "rlog", "$Id: rlog.c,v 5.16 1994/04/13 16:30:34 eggert Exp $")
{
static char const cmdusage[] =
! "\nrlog usage: rlog -{bhLNRtIZ} -ddates -l[lockers] -r[revs] -sstates -Vn -w[logins] -xsuff -zzone file ...";
register FILE *out;
char *a, **newargv;
***************
*** 226,231 ****
--- 229,235 ----
int descflag, selectflag;
int onlylockflag; /* print only files with locks */
int onlyRCSflag; /* print only RCS pathname */
+ int onlylockers = 0;
int pre5;
int shownames;
int revno;
***************
*** 252,257 ****
--- 256,269 ----
onlyRCSflag =true;
break;
+ case 'I':
+ onlyid = (*a == 'I') ? 2 : 1;
+ break;
+
+ case 'Z':
+ onlylockers = (*a == 'Z') ? 2 : 1;
+ break;
+
case 'l':
lockflag = true;
getlocker(a);
***************
*** 353,358 ****
--- 365,431 ----
* workname contains the name of the working file.
*/
+ /* Options 'Z' and 'ZZ' added to quickly get the relevant Data
+ * for locked File(s)/Revisions.
+ * Options 'I' and 'II' added to easily get Information about
+ * unlocked File(s) of the specified Revision(s). These Records
+ * could be used as an Entry of an Revision-List.
+ * The single-option Version prints Basenames, the double-option
+ * Version prints Filenames with the full path.
+ */
+ if (onlyid) {
+ if (Locks) { /* Issue Warnings for locked Versions */
+ currlock = Locks;
+ aprintf (stderr, "Warning: there are Locks for File %s:\n",
+ onlyid == 1 ? RCSname : getfullRCSname());
+ while (currlock) {
+ aprintf (stderr,
+ "\tFile: %s Revision: %s [%s] locked by: %s\n",
+ onlyid == 1 ? RCSname : getfullRCSname(),
+ currlock->delta->num,
+ numrev2symbrev (currlock->delta->num),
+ currlock->login);
+ currlock = currlock->nextlock;
+ }
+ }
+
+ if (! Head) continue;
+ gettree ();
+ revno = 0;
+ getnumericrev ();
+ exttree (Head);
+ currdate = duelst;
+ while (currdate) {
+ VOID sprintf (currdate->strtdate,dateform,0,0,0,0,0,0);
+ recentdate (Head, currdate);
+ currdate = currdate->dnext;
+ }
+ revno = extdate (Head);
+ getdesc (false);
+ if (revno) {
+ while (! (delta = readdeltalog())->selector || --revno) ;
+ if (delta->next && countnumflds(delta->num)==2) {
+ while (readdeltalog() != delta->next) ;
+ }
+ putrunk ();
+ putree (Head);
+ }
+ continue;
+ }
+
+ if (onlylockers) {
+ currlock = Locks;
+ while (currlock) {
+ aprintf (out, "File: %s Revision: %s [%s] locked by: %s\n",
+ onlylockers == 1 ? RCSname : getfullRCSname(),
+ currlock->delta->num,
+ numrev2symbrev (currlock->delta->num),
+ currlock->login);
+ currlock = currlock->nextlock;
+ }
+ continue;
+ }
+
/* Keep only those locks given by -l. */
if (lockflag)
trunclocks();
***************
*** 560,565 ****
--- 633,648 ----
return;
out = stdout;
+
+ if (onlyid) {
+ aprintf (out,
+ "File: %s Revision: %s [%s] Date: %s Author: %s State: %s\n",
+ onlyid == 1 ? workname : getfullRCSname(),
+ node->num, numrev2symbrev (node->num),
+ date2str (node->date, datebuf), node->author, node->state);
+ return;
+ }
+
aprintf(out,
"----------------------------\nrevision %s%s",
node->num, pre5 ? " " : ""
***************
*** 1254,1257 ****
--- 1337,1352 ----
else
error("missing `,' near `%c%s'", c, argv+1);
}
+ }
+
+ static char const *numrev2symbrev (numrev)
+ char const *numrev;
+ {
+ struct assoc const *p;
+
+ for (p = Symbols; p; p = p->nextassoc) {
+ if (! strcmp (numrev, p->num)) return (p->symbol);
+ }
+
+ return ("");
}