From 13b057d9b43f6c79f9a036b1bb3f84d5cf8a3c99 Mon Sep 17 00:00:00 2001 From: tobias Date: Fri, 29 Aug 2008 09:54:22 +0000 Subject: [PATCH] Pre-commit checks (CVSROOT/commitinfo) are run before log message is requested. Do this for GNU cvs compatibility, too. ok joris --- usr.bin/cvs/commit.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/usr.bin/cvs/commit.c b/usr.bin/cvs/commit.c index b164f2baad4..f2a86bf08f6 100644 --- a/usr.bin/cvs/commit.c +++ b/usr.bin/cvs/commit.c @@ -1,4 +1,4 @@ -/* $OpenBSD: commit.c,v 1.144 2008/07/08 12:54:13 joris Exp $ */ +/* $OpenBSD: commit.c,v 1.145 2008/08/29 09:54:22 tobias Exp $ */ /* * Copyright (c) 2006 Joris Vink * Copyright (c) 2006 Xavier Santolaria @@ -135,15 +135,13 @@ cvs_commit(int argc, char **argv) if (TAILQ_EMPTY(&files_affected)) return (0); - if (logmsg == NULL && cvs_server_active == 0) { - logmsg = cvs_logmsg_create(NULL, &files_added, &files_removed, - &files_modified); - - if (logmsg == NULL) - fatal("This shouldnt happen, honestly!"); - } - if (current_cvsroot->cr_method != CVS_METHOD_LOCAL) { + if (logmsg == NULL) { + logmsg = cvs_logmsg_create(NULL, &files_added, + &files_removed, &files_modified); + if (logmsg == NULL) + fatal("This shouldnt happen, honestly!"); + } cvs_client_connect_to_server(); cr.fileproc = cvs_client_sendfile; @@ -161,9 +159,6 @@ cvs_commit(int argc, char **argv) cvs_client_send_request("ci"); cvs_client_get_responses(); } else { - if (cvs_server_active && logmsg == NULL) - fatal("no log message specified"); - cvs_get_repository_name(".", repo, MAXPATHLEN); line_list = cvs_trigger_getlines(CVS_PATH_COMMITINFO, repo); @@ -187,6 +182,16 @@ cvs_commit(int argc, char **argv) cvs_trigger_freeinfo(&files_info); } + if (cvs_server_active) { + if (logmsg == NULL) + fatal("no log message specified"); + } else if (logmsg == NULL) { + logmsg = cvs_logmsg_create(NULL, &files_added, + &files_removed, &files_modified); + if (logmsg == NULL) + fatal("This shouldnt happen, honestly!"); + } + if (cvs_logmsg_verify(logmsg)) goto end; @@ -217,7 +222,8 @@ cvs_commit(int argc, char **argv) end: cvs_trigger_freeinfo(&files_info); - xfree(logmsg); + if (logmsg != NULL) + xfree(logmsg); return (0); } -- 2.20.1