summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorNiall O'Higgins <niallo@cvs.openbsd.org>2006-03-15 19:59:38 +0000
committerNiall O'Higgins <niallo@cvs.openbsd.org>2006-03-15 19:59:38 +0000
commita809d533f9f2c62bfbce557ccb6a23d9f87fc197 (patch)
treefbdc6e431a10877ff53824e3ed7d054dc0a63ccc /usr.bin
parentc51f2c1be7f15860a9c5bce9b205e51292c3a932 (diff)
- add util.h, reorganising a bunch of things and exposing cvs_yesno()
function to be used by rcs.
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/cvs/cvs.h46
-rw-r--r--usr.bin/cvs/release.c30
-rw-r--r--usr.bin/cvs/util.c30
-rw-r--r--usr.bin/cvs/util.h79
-rw-r--r--usr.bin/rcs/rcsprog.h3
5 files changed, 113 insertions, 75 deletions
diff --git a/usr.bin/cvs/cvs.h b/usr.bin/cvs/cvs.h
index 8359c72eb44..36676d999fd 100644
--- a/usr.bin/cvs/cvs.h
+++ b/usr.bin/cvs/cvs.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: cvs.h,v 1.101 2006/02/10 10:15:48 xsa Exp $ */
+/* $OpenBSD: cvs.h,v 1.102 2006/03/15 19:59:36 niallo Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -29,6 +29,7 @@
#include "rcs.h"
#include "file.h"
+#include "util.h"
#include "xmalloc.h"
#define CVS_VERSION "OpenCVS 0.3"
@@ -411,49 +412,6 @@ void cvs_logmsg_send(struct cvsroot *, const char *);
/* date.y */
time_t cvs_date_parse(const char *);
-/* util.c */
-
-struct cvs_line {
- char *l_line;
- int l_lineno;
- TAILQ_ENTRY(cvs_line) l_list;
-};
-
-TAILQ_HEAD(cvs_tqh, cvs_line);
-
-struct cvs_lines {
- int l_nblines;
- char *l_data;
- struct cvs_tqh l_lines;
-};
-
-int cvs_readrepo(const char *, char *, size_t);
-void cvs_modetostr(mode_t, char *, size_t);
-void cvs_strtomode(const char *, mode_t *);
-void cvs_splitpath(const char *, char *, size_t, char **);
-int cvs_mkadmin(const char *, const char *, const char *, char *,
- char *, int);
-int cvs_cksum(const char *, char *, size_t);
-int cvs_exec(int, char **, int []);
-int cvs_getargv(const char *, char **, int);
-int cvs_chdir(const char *, int);
-int cvs_rename(const char *, const char *);
-int cvs_unlink(const char *);
-int cvs_rmdir(const char *);
-int cvs_create_dir(const char *, int, char *, char *);
-char *cvs_rcs_getpath(CVSFILE *, char *, size_t);
-char **cvs_makeargv(const char *, int *);
-void cvs_freeargv(char **, int);
-void cvs_write_tagfile(char *, char *, int);
-void cvs_parse_tagfile(char **, char **, int *);
-size_t cvs_path_cat(const char *, const char *, char *, size_t);
-time_t cvs_hack_time(time_t, int);
-
-BUF *cvs_patchfile(const char *, const char *,
- int (*p)(struct cvs_lines *, struct cvs_lines *));
-struct cvs_lines *cvs_splitlines(const char *);
-void cvs_freelines(struct cvs_lines *);
-
/* XXX */
int rcs_patch_lines(struct cvs_lines *, struct cvs_lines *);
int cvs_checkout_rev(RCSFILE *, RCSNUM *, CVSFILE *, char *, int, int, ...);
diff --git a/usr.bin/cvs/release.c b/usr.bin/cvs/release.c
index 21aa4abb231..58a2ae4fcbf 100644
--- a/usr.bin/cvs/release.c
+++ b/usr.bin/cvs/release.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: release.c,v 1.31 2006/01/27 15:26:38 xsa Exp $ */
+/* $OpenBSD: release.c,v 1.32 2006/03/15 19:59:36 niallo Exp $ */
/*
* Copyright (c) 2005 Xavier Santolaria <xsa@openbsd.org>
* All rights reserved.
@@ -36,7 +36,6 @@ extern char *__progname;
static int cvs_release_init(struct cvs_cmd *, int, char **, int *);
static int cvs_release_pre_exec(struct cvsroot *);
-static int cvs_release_yesno(void);
static int cvs_release_dir(CVSFILE *, void *);
struct cvs_cmd cvs_cmd_release = {
@@ -94,31 +93,6 @@ cvs_release_pre_exec(struct cvsroot *root)
}
/*
- * cvs_release_yesno()
- *
- * Read from standart input for `y' or `Y' character.
- * Returns 0 on success, or -1 on failure.
- */
-static int
-cvs_release_yesno(void)
-{
- int c, ret;
-
- ret = 0;
-
- fflush(stderr);
- fflush(stdout);
-
- if ((c = getchar()) != 'y' && c != 'Y')
- ret = -1;
- else
- while (c != EOF && c != '\n')
- c = getchar();
-
- return (ret);
-}
-
-/*
* cvs_release_dir()
*
* Release specified directorie(s).
@@ -200,7 +174,7 @@ cvs_release_dir(CVSFILE *cf, void *arg)
printf("Are you sure you want to release %sdirectory `%s': ",
dflag ? "(and delete) " : "", dpath);
- if (cvs_release_yesno() == -1) { /* No */
+ if (cvs_yesno() == -1) { /* No */
fprintf(stderr,
"** `%s' aborted by user choice.\n", cvs_command);
diff --git a/usr.bin/cvs/util.c b/usr.bin/cvs/util.c
index 16100f2a327..161e06eb216 100644
--- a/usr.bin/cvs/util.c
+++ b/usr.bin/cvs/util.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: util.c,v 1.69 2006/01/27 12:56:28 xsa Exp $ */
+/* $OpenBSD: util.c,v 1.70 2006/03/15 19:59:36 niallo Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -28,9 +28,9 @@
#include "cvs.h"
#include "log.h"
+#include "util.h"
#if !defined(RCSPROG)
-
/* letter -> mode type map */
static const int cvs_modetypes[26] = {
-1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1,
@@ -1018,3 +1018,29 @@ cvs_hack_time(time_t oldtime, int togmt)
return (cvs_date_parse(tbuf));
}
+
+/*
+ * cvs_yesno()
+ *
+ * Read from standart input for `y' or `Y' character.
+ * Returns 0 on success, or -1 on failure.
+ */
+int
+cvs_yesno(void)
+{
+ int c, ret;
+
+ ret = 0;
+
+ fflush(stderr);
+ fflush(stdout);
+
+ if ((c = getchar()) != 'y' && c != 'Y')
+ ret = -1;
+ else
+ while (c != EOF && c != '\n')
+ c = getchar();
+
+ return (ret);
+}
+
diff --git a/usr.bin/cvs/util.h b/usr.bin/cvs/util.h
new file mode 100644
index 00000000000..9bb8200b286
--- /dev/null
+++ b/usr.bin/cvs/util.h
@@ -0,0 +1,79 @@
+/* $OpenBSD: util.h,v 1.1 2006/03/15 19:59:36 niallo Exp $ */
+/*
+ * Copyright (c) 2006 Niall O'Higgins <niallo@openbsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef UTIL_H
+#define UTIL_H
+
+#if !defined(RCSPROG)
+
+
+int cvs_readrepo(const char *, char *, size_t);
+void cvs_modetostr(mode_t, char *, size_t);
+void cvs_strtomode(const char *, mode_t *);
+void cvs_splitpath(const char *, char *, size_t, char **);
+int cvs_mkadmin(const char *, const char *, const char *, char *,
+ char *, int);
+int cvs_cksum(const char *, char *, size_t);
+int cvs_exec(int, char **, int []);
+int cvs_getargv(const char *, char **, int);
+int cvs_chdir(const char *, int);
+int cvs_rename(const char *, const char *);
+int cvs_unlink(const char *);
+int cvs_rmdir(const char *);
+int cvs_create_dir(const char *, int, char *, char *);
+char *cvs_rcs_getpath(CVSFILE *, char *, size_t);
+char **cvs_makeargv(const char *, int *);
+void cvs_freeargv(char **, int);
+void cvs_write_tagfile(char *, char *, int);
+void cvs_parse_tagfile(char **, char **, int *);
+size_t cvs_path_cat(const char *, const char *, char *, size_t);
+
+#endif /* !RCSPROG */
+
+time_t cvs_hack_time(time_t, int);
+
+struct cvs_line {
+ char *l_line;
+ int l_lineno;
+ TAILQ_ENTRY(cvs_line) l_list;
+};
+
+TAILQ_HEAD(cvs_tqh, cvs_line);
+
+struct cvs_lines {
+ int l_nblines;
+ char *l_data;
+ struct cvs_tqh l_lines;
+};
+
+
+BUF *cvs_patchfile(const char *, const char *,
+ int (*p)(struct cvs_lines *, struct cvs_lines *));
+struct cvs_lines *cvs_splitlines(const char *);
+void cvs_freelines(struct cvs_lines *);
+int cvs_yesno(void);
+
+#endif
diff --git a/usr.bin/rcs/rcsprog.h b/usr.bin/rcs/rcsprog.h
index b336d9413de..672a19fa61c 100644
--- a/usr.bin/rcs/rcsprog.h
+++ b/usr.bin/rcs/rcsprog.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsprog.h,v 1.38 2006/03/15 03:29:01 ray Exp $ */
+/* $OpenBSD: rcsprog.h,v 1.39 2006/03/15 19:59:37 niallo Exp $ */
/*
* Copyright (c) 2005 Joris Vink <joris@openbsd.org>
* All rights reserved.
@@ -30,6 +30,7 @@
#include "log.h"
#include "rcs.h"
#include "worklist.h"
+#include "util.h"
#include "xmalloc.h"
#define RCS_DEFAULT_SUFFIX ",v/"