[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS -m sanity check patch
From: |
Mark D. Baushke |
Subject: |
CVS -m sanity check patch |
Date: |
Thu, 27 Jul 2006 18:14:31 -0700 |
Hi Folks,
The following patch was submitted to me directly rather than through the
normal bug-cvs@nongnu.org address. For folks that might find it useful,
here it is.
I have not looked closely at the patch myself as yet.
Does anyone have any comments on this patch (other than the obvious one
of conforming to the CVS coding standards)?
-- Mark
------- forwarded message -------
Date: Fri, 28 Jul 2006 01:18:34 +0200
From: "Simon 'corecode' Schubert" <corecode@fs.ei.tum.de>
To: mdb@gnu.org
Subject: cvs -m sanity check patch
[[PGP Signed Part:Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
Untrusted, Fingerprint: 61EB 641D 0754 B87D E50D E96B AF94 BE76 4EB3 F39A]]
Hey,
I was told I should send you the patch which we are running CVS with since
several months at DragonFly. It checks arguments to -m if they are indeed
files and if they are asks if the user is serious. This is because it turned
out that it is a fairly common mistake to use -m instead of -F and then to
produce meaningless log messages like "/tmp/cvsuutRZzd" :)
you of course can use the patch under the license CVS published under, or under
a BSD style license, at your discretion.
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
$DragonFly: src/gnu/usr.bin/cvs/cvs/commit.c.patch,v 1.1 2006/05/27 11:59:44
corecode Exp $
Index: src/commit.c
===================================================================
RCS file: /cvs/src/contrib/cvs-1.12/src/commit.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 commit.c
--- src/commit.c 7 Dec 2005 00:15:16 -0000 1.1.1.1
+++ src/commit.c 27 May 2006 09:20:10 -0000
@@ -443,6 +443,58 @@
++saved_tag;
}
+ /* Check if the user passed -m, but wanted -F */
+ if (saved_message)
+ {
+ int fd;
+
+ fd = open(saved_message, O_RDONLY);
+ /* valid fd -> possibly wrong flag? */
+ if (fd >= 0)
+ {
+ char *line = NULL;
+ size_t line_alloced = 0;
+ int line_len;
+
+ close(fd);
+
+ for (;;) {
+ printf("The message you passed exists as a file\n");
+ printf("a)bort, c)ontinue, treat as f)ile name\n");
+ printf("Action: (abort) ");
+ fflush(stdout);
+ line_len = getline(&line, &line_alloced, stdin);
+ if (line_len < 0)
+ {
+ error(0, errno, "cannot read from stdin");
+ error(1, 0, "aborting");
+ }
+ else if (line_len == 0 || *line == '\n' || *line == 'a' ||
*line == 'A')
+ {
+ error(1, 0, "aborted by user");
+ }
+ else if (*line == 'c' || *line == 'C')
+ {
+ break;
+ }
+ else if (*line == 'f' || *line == 'F')
+ {
+ /*
+ * We are leaking the memory for the file name,
+ * but who really cares?
+ */
+ logfile = saved_message;
+ saved_message = NULL;
+ break;
+ }
+ printf("Unknown input\n");
+ }
+
+ if (line != NULL)
+ free(line);
+ }
+ }
+
/* some checks related to the "-F logfile" option */
if (logfile)
{
[[End of PGP Signed Part]]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- CVS -m sanity check patch,
Mark D. Baushke <=