#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61-MirPorts-2 for Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.3.
+# Generated by GNU Autoconf 2.61-MirPorts-2 for Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.4.
#
# Report bugs to <miros-discuss@mirbsd.org>.
#
# Identity of this package.
PACKAGE_NAME='Concurrent Versions System (CVS)'
PACKAGE_TARNAME='cvs'
-PACKAGE_VERSION='1.12.13-MirOS-0AB8.3'
-PACKAGE_STRING='Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.3'
+PACKAGE_VERSION='1.12.13-MirOS-0AB8.4'
+PACKAGE_STRING='Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.4'
PACKAGE_BUGREPORT='miros-discuss@mirbsd.org'
ac_unique_file="src/cvs.h"
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.3 to adapt to many kinds of systems.
+\`configure' configures Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.3:";;
+ short | recursive ) echo "Configuration of Concurrent Versions System (CVS) 1.12.13-MirOS-0AB8.4:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Concurrent Versions System (CVS) configure 1.12.13-MirOS-0AB8.3
+Concurrent Versions System (CVS) configure 1.12.13-MirOS-0AB8.4
generated by GNU Autoconf 2.61-MirPorts-2
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Concurrent Versions System (CVS) $as_me 1.12.13-MirOS-0AB8.3, which was
+It was created by Concurrent Versions System (CVS) $as_me 1.12.13-MirOS-0AB8.4, which was
generated by GNU Autoconf 2.61-MirPorts-2. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='cvs'
- VERSION='1.12.13-MirOS-0AB8.3'
+ VERSION='1.12.13-MirOS-0AB8.4'
# Some tools Automake needs.
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Concurrent Versions System (CVS) $as_me 1.12.13-MirOS-0AB8.3, which was
+This file was extended by Concurrent Versions System (CVS) $as_me 1.12.13-MirOS-0AB8.4, which was
generated by GNU Autoconf 2.61-MirPorts-2. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-Concurrent Versions System (CVS) config.status 1.12.13-MirOS-0AB8.3
+Concurrent Versions System (CVS) config.status 1.12.13-MirOS-0AB8.4
configured by $0, generated by GNU Autoconf 2.61-MirPorts-2,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-dnl $MirOS: src/gnu/usr.bin/cvs/configure.in,v 1.32 2017/08/12 19:17:28 tg Exp $
+dnl $MirOS: src/gnu/usr.bin/cvs/configure.in,v 1.33 2017/11/19 12:34:56 tg Exp $
dnl
dnl configure.in for cvs
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.])
-AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirOS-0AB8.3],
+AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirOS-0AB8.4],
[miros-discuss@mirbsd.org],[cvs])
AC_CONFIG_SRCDIR(src/cvs.h)
AM_INIT_AUTOMAKE([gnu 1.9.2 dist-bzip2 no-define])
\input texinfo @c -*-texinfo-*-
@comment Documentation for CVS.
@setfilename cvs.info
+@set MBSDPATCHLEVEL -MirOS-0AB8.1
@tex
% set PA4 paper size (can print on both DIN ISO A4 and US Letter)
\globaldefs = 1%
{28truecm}{21truecm}%
\globaldefs = 0%
@end tex
-@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvs.texinfo,v 1.36 2017/08/12 17:37:55 tg Exp $
+@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvs.texinfo,v 1.37 2017/11/18 22:37:49 tg Exp $
@macro copyleftnotice
@noindent
Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
@sp 1
@center @titlefont{CVS}
@sp 2
-@center for @sc{cvs} @value{VERSION}
+@center for @sc{cvs} @value{VERSION}@value{MBSDPATCHLEVEL}
@comment -release-
@sp 3
@center Per Cederqvist et al
@anchor{Cederqvist}
@end ifnotinfo
This info manual describes how to use and administer
-@sc{cvs} version @value{VERSION}.
+@sc{cvs} version @value{VERSION}@value{MBSDPATCHLEVEL} and up.
@end ifnottex
@ifinfo
for the Berkeley mdoc macro processing.
@example
-$Mdocdate: August 12 2017 $
+$Mdocdate: November 18 2017 $
@end example
@cindex Header keyword
\input texinfo @c -*- texinfo -*-
@setfilename cvsclient.info
+@set MBSDPATCHLEVEL -MirOS-0AB8.4
@tex
% set PA4 paper size (can print on both DIN ISO A4 and US Letter)
\globaldefs = 1%
{28truecm}{21truecm}%
\globaldefs = 0%
@end tex
-@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvsclient.texi,v 1.9 2017/08/12 17:37:58 tg Exp $
+@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvsclient.texi,v 1.11 2017/11/18 22:37:52 tg Exp $
@include version-client.texi
@dircategory Programming
This document describes the client/server protocol used by CVS. It does
not describe how to use or administer client/server CVS; for that,
@pxref{Top, the regular CVS manual,, cvs, the regular CVS manual}.
-This is version @value{VERSION} of the protocol
-specification---@xref{Introduction}, for more on what this version number
-means.
+This specification applies to
+@sc{cvs} version @value{VERSION}@value{MBSDPATCHLEVEL} and up.
@menu
* Introduction:: What is CVS and what is the client/server protocol for?
In various contexts, for example the @code{Argument} request and the
@code{M} response, one transmits what is essentially an arbitrary
string. Often this will have been supplied by the user (for example,
-the @samp{-m} option to the @code{ci} request). The protocol has no
-mechanism to specify the character set of such strings; it would be
-fairly safe to stick to the invariant ISO 646 character set but the
-existing practice is probably to just transmit whatever the user
-specifies, and hope that everyone involved agrees which character set is
-in use, or sticks to a common subset.
+the @samp{-m} option to the @code{ci} request will show up in the
+@code{LOGM} response). The protocol has no mechanism to specify the
+character set of such strings; it would have been, initially, fairly
+safe to stick to the invariant ISO 646 character set but the existing
+practice is probably to just transmit whatever the user specifies,
+and hope that everyone involved agrees which character set is in use,
+or sticks to a common subset. In modern times, UTF-8 should be used.
@node Dates
@section Dates
and future versions of this document will hopefully standardise more of
the @samp{MT} tags; see @ref{Text tags}.
+@item LOGM @var{text} \n
+Exactly the same as @code{M} but only sent if the client indicates
+supporting it via @code{Valid-responses}, used exclusively for log
+message payload (that is, in @code{cvs log} and @code{cvs rlog},
+the text body the user originally has entered with the @samp{-m}
+option to the @code{ci} request).
+
@item Mbinary \n
Additional data: file transmission (note: compressed file transmissions
-are not supported). This is like @samp{M}, except the contents of the
+are not supported). This is like @code{M}, except the contents of the
file transmission are binary and should be copied to standard output
without translation to local text file conventions. To transmit a text
-file to standard output, servers should use a series of @samp{M} requests.
+file to standard output, servers should use a series of @code{M} requests.
@item E @var{text} \n
Same as @code{M} but send to stderr not stdout.
If the implementation recognises @var{tagname}, then it may interpret
@var{data} in some particular fashion. If the implementation does not
recognise @var{tagname}, then it should simply treat @var{data} as
-text to be sent to the user (similar to an @samp{M} response). There
+text to be sent to the user (similar to an @code{M} response). There
are two tags which are general purpose. The @samp{text} tag is
similar to an unrecognised tag in that it provides text which will
ordinarily be sent to the user. The @samp{newline} tag is used
#include <stddef.h>
#include <stdio.h>
-#if HAVE_STDIO_EXT_H
+#if defined(HAVE_STDIO_EXT_H) && (HAVE_STDIO_EXT_H)
# include <stdio_ext.h>
#endif
#include "getdelim.h"
-__RCSID("$MirOS: src/gnu/usr.bin/cvs/lib/getdelim.c,v 1.4 2010/09/19 19:42:59 tg Exp $");
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/lib/getdelim.c,v 1.5 2017/11/18 23:04:54 tg Exp $");
#if !HAVE_FLOCKFILE
# undef flockfile
}
/* Make enough space for len+1 (for final NUL) bytes. */
- if (cur_len + 1 >= *n)
+ if ((size_t)cur_len + 1U >= *n)
{
size_t needed = 2 * (cur_len + 1) + 1; /* Be generous. */
char *new_lineptr;
- if (needed < cur_len)
+ if (needed < (size_t)cur_len)
{
result = -1;
goto unlock_return;
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
-#if ENABLE_NLS
+#if defined(ENABLE_NLS) && (ENABLE_NLS)
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
included after this file. Likewise for <sys/param.h>.
If more than one of these system headers define MIN and MAX, pick just
one of the headers (because the definitions most likely are the same). */
-#if HAVE_MINMAX_IN_LIMITS_H
+#if defined(HAVE_MINMAX_IN_LIMITS_H) && (HAVE_MINMAX_IN_LIMITS_H)
# include <limits.h>
#elif HAVE_MINMAX_IN_SYS_PARAM_H
# include <sys/param.h>
# ifndef __attribute__
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || (defined(__STRICT_ANSI__) && (__STRICT_ANSI__))
# define __attribute__(x)
# endif
# endif
/*
+ * Copyright © 2017 mirabilos <m@mirbsd.org>
* Copyright (C) 1996-2005 The Free Software Foundation, Inc.
*
+ * Portions Copyright (c) 2017 Patrick Keshishian
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
#include "buffer.h"
#include "pagealign_alloc.h"
-__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/buffer.c,v 1.2 2016/10/22 14:33:29 tg Exp $");
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/buffer.c,v 1.3 2017/11/18 22:05:10 tg Exp $");
#if defined (SERVER_SUPPORT) || defined (CLIENT_SUPPORT)
}
/* Put in the command. */
- buf_append_char (outbuf, command);
+ switch (command) {
+ case CVS_OUTPUT_EX_LOGM:
+ buf_output0 (outbuf, "LOGM");
+ break;
+ default:
+ buf_append_char (outbuf, command);
+ break;
+ }
buf_append_char (outbuf, ' ');
if (inbuf->data != nldata)
#include "buffer.h"
#include "save-cwd.h"
-__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/client.c,v 1.8 2017/08/12 01:51:22 tg Exp $");
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/client.c,v 1.10 2017/11/18 22:15:52 tg Exp $");
#ifdef CLIENT_SUPPORT
rs_optional),
RSP_LINE("M", handle_m, response_type_normal, rs_essential),
RSP_LINE("Mbinary", handle_mbinary, response_type_normal, rs_optional),
+ RSP_LINE("LOGM", handle_m, response_type_normal, rs_optional),
RSP_LINE("E", handle_e, response_type_normal, rs_essential),
RSP_LINE("F", handle_f, response_type_normal, rs_optional),
RSP_LINE("MT", handle_mt, response_type_normal, rs_optional),
/* This is pretty simple. All we need to do is choose the correct
cvs binary and call piped_child. */
- char *command[3];
+ char *command[4];
+ int ncommand = 0;
- command[0] = (root->cvs_server
+ command[ncommand++] = (root->cvs_server
? root->cvs_server : getenv ("CVS_SERVER"));
if (!command[0] || !command[0][0])
# ifdef SERVER_SUPPORT
* such that this casting isn't needed, but I don't know how. If I
* declare it as (const char *command[]), the compiler complains about
* an incompatible arg 1 being passed to piped_child and if I declare
- * it as (char *const command[3]), then the compiler complains when I
+ * it as (char *const command[4]), then the compiler complains when I
* assign values to command[i].
*/
command[0] = (char *)program_path;
}
# endif /* SERVER_SUPPORT */
- command[1] = "server";
- command[2] = NULL;
-
- TRACE (TRACE_FUNCTION, "Forking server: %s %s",
- command[0] ? command[0] : "(null)", command[1]);
+ if (readonlyfs)
+ command[ncommand++] = "-R";
+ command[ncommand++] = "server";
+ command[ncommand++] = NULL;
+
+ TRACE (TRACE_FUNCTION, "Forking server: %s %s %s",
+ command[0] ? command[0] : "(null)",
+ command[1] ? command[1] : "(null)",
+ command[2] ? command[2] : "");
child_pid = piped_child (command, &tofd, &fromfd, false);
if (child_pid < 0)
-/* $MirOS: src/gnu/usr.bin/cvs/src/cvs.h,v 1.7 2016/10/21 16:41:16 tg Exp $ */
+/* $MirOS: src/gnu/usr.bin/cvs/src/cvs.h,v 1.9 2017/11/18 23:04:55 tg Exp $ */
/*
+ * Copyright © 2017 mirabilos <m@mirbsd.org>
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
*
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
/* Add GNU attribute suppport. */
#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || (defined(__STRICT_ANSI__) && (__STRICT_ANSI__))
# define __attribute__(Spec) /* empty */
# else
# if __GNUC__ == 2 && __GNUC_MINOR__ < 96
void check_entries (char *dir);
void close_module (DBM * db);
void copy_file (const char *from, const char *to);
-void fperrmsg (FILE * fp, int status, int errnum, char *message,...);
+void fperrmsg (FILE * fp, int status, int errnum, char *message, ...)
+ __attribute__ ((__format__(__printf__, 4, 5)));
int ign_name (char *name);
void ign_add (char *ign, int hold);
void cleanup_register (void (*handler) (void));
void update_delproc (Node * p);
-void usage (const char *const *cpp);
+void usage (const char *const *cpp)
+ __attribute__((__noreturn__));
void xchmod (const char *fname, int writable);
List *Find_Names (char *repository, int which, int aflag,
List ** optentries);
/* From server.c and documented there. */
void cvs_output (const char *, size_t);
+void cvs_output_ex (const char *, size_t, int);
void cvs_output_binary (char *, size_t);
void cvs_outerr (const char *, size_t);
void cvs_flusherr (void);
void cvs_flushout (void);
void cvs_output_tagged (const char *, const char *);
+int supported_response (const char *);
+
+#define CVS_OUTPUT_EX_LOGM 0x80000001
extern const char *global_session_id;
#include "lstat.h"
#include "save-cwd.h"
-__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/import.c,v 1.11 2016/11/08 23:04:36 tg Exp $");
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/import.c,v 1.12 2017/11/18 23:04:55 tg Exp $");
-static char *get_comment (const char *user);
+static const char *get_comment (const char *user);
static int add_rev (char *message, RCSNode *rcs, char *vfile,
char *vers);
static int add_tags (RCSNode *rcs, char *vfile, char *vtag, int targc,
*/
struct compair
{
- char *suffix, *comlead;
+ const char *suffix;
+ const char *comlead;
};
static const struct compair comtable[] =
-static char *
+static const char *
get_comment (const char *user)
{
char *cp, *suffix;
char *suffix_path;
int i;
- char *retval;
+ const char *retval;
suffix_path = xmalloc (strlen (user) + 5);
cp = strrchr (user, '.');
/*
+ * Copyright © 2017 mirabilos <m@mirbsd.org>
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
*
* Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
#include "cvs.h"
#include <assert.h>
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/log.c,v 1.2 2017/11/18 22:05:12 tg Exp $");
+
/* This structure holds information parsed from the -r option. */
struct option_revlist
RCSNode *, RCSVers *, int);
static int log_branch (Node *, void *);
static int version_compare (const char *, const char *, int);
+static void logm_output (const char *);
static struct log_data log_data;
static int is_rlog;
cvs_output ("*** empty log message ***\n", 0);
else
{
+ /* assert: last thing cvs_output’ed was a newline */
/* FIXME: Technically, the log message could contain a null
byte. */
- cvs_output (p->data, 0);
- if (((char *)p->data)[strlen (p->data) - 1] != '\n')
- cvs_output ("\n", 1);
+ logm_output(p->data);
}
}
++v2;
}
}
+
+static void
+logm_output(const char *str)
+{
+ /* assert: str is not empty */
+ size_t len = strlen(str);
+ int buftag = 'M';
+ static char has_logm = 0;
+
+ if (server_active) {
+ if (!has_logm)
+ has_logm = supported_response("LOGM") ? 1 : 2;
+ if (has_logm == 1)
+ buftag = CVS_OUTPUT_EX_LOGM;
+ }
+
+ cvs_output_ex(str, len, buftag);
+ if (/*len > 0 &&*/ str[len - 1] != '\n')
+ cvs_output_ex("\n", 1, buftag);
+}
#include "history.h"
#include "save-cwd.h"
-__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/mkmodules.c,v 1.16 2017/03/27 16:55:27 tg Exp $");
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/mkmodules.c,v 1.18 2017/11/18 23:18:35 tg Exp $");
#ifndef DBLKSIZ
#define DBLKSIZ 4096 /* since GNU ndbm doesn't define it */
#endif
-static int checkout_file (char *file, char *temp);
+static int checkout_file (const char *file, char *temp);
static char *make_tempfile (void);
-static void rename_rcsfile (char *temp, char *real);
+static void rename_rcsfile (const char *temp, const char *real);
#ifndef MY_NDBM
static void rename_dbmfile (char *temp);
/* Structure which describes an administrative file. */
struct admin_file {
/* Name of the file, within the CVSROOT directory. */
- char *filename;
+ const char *filename;
/* This is a one line description of what the file is for. It is not
currently used, although one wonders whether it should be, somehow.
If NULL, then don't process this file in mkmodules (FIXME?: a bit of
a kludge; probably should replace this with a flags field). */
- char *errormsg;
+ const char *errormsg;
/* Contents which the file should have in a new repository. To avoid
problems with brain-dead compilers which choke on long string constants,
there is an error, print a message and return 1 (FIXME: probably
not a very clean convention). On success, return 0. */
static int
-checkout_file (char *file, char *temp)
+checkout_file (const char *file, char *temp)
{
char *rcs;
RCSNode *rcsnode;
#endif /* !MY_NDBM */
static void
-rename_rcsfile (char *temp, char *real)
+rename_rcsfile (const char *temp, const char *real)
{
char *bak;
struct stat statbuf;
#include <assert.h>
#include "getline.h"
-__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/root.c,v 1.19 2017/08/11 23:49:29 tg Exp $");
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/root.c,v 1.20 2017/11/18 22:15:53 tg Exp $");
/* Printable names for things in the current_parsed_root->method enum variable.
Watch out if the enum is changed in cvs.h! */
#if defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
if (readonlyfs && newroot->isremote && (newroot->method != ext_method)
- && (newroot->method != extssh_method))
+ && (newroot->method != extssh_method) && (newroot->method != fork_method))
error (1, 0,
"Read-only repository feature unavailable with remote roots (cvsroot = %s)",
cvsroot_copy);
-/* This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details. */
+/*
+ * Copyright © 2017 mirabilos <m@mirbsd.org>
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
#include "cvs.h"
#include "getline.h"
#include "getnline.h"
-__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/server.c,v 1.14 2017/08/12 01:08:25 tg Exp $");
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/server.c,v 1.16 2017/11/18 23:04:56 tg Exp $");
int server_active = 0;
-static int
-supported_response (char *name)
+int
+supported_response (const char *name)
{
struct response *rs;
*/
static pid_t command_pid;
+static void outbuf_memory_error (struct buffer *)
+ __attribute__((__noreturn__));
+
static void
outbuf_memory_error (struct buffer *buf)
{
}
+static void input_memory_error (struct buffer *)
+ __attribute__((__noreturn__));
static void
input_memory_error (struct buffer *buf)
/*
* Parts of this table are shared with the client code,
* but the client doesn't need to know about the handler
- * functions.
+ * functions. It likes to write to the flags field, though.
*/
struct request requests[] =
void
cvs_output (const char *str, size_t len)
{
+ cvs_output_ex (str, len, 'M');
+}
+
+void
+cvs_output_ex (const char *str, size_t len, int buftag)
+{
if (len == 0)
len = strlen (str);
#ifdef SERVER_SUPPORT
if (buf_to_net)
{
buf_output (saved_output, str, len);
- buf_copy_lines (buf_to_net, saved_output, 'M');
+ buf_copy_lines (buf_to_net, saved_output, buftag);
}
# if HAVE_SYSLOG_H
else
if (protocol)
{
buf_output (saved_output, str, len);
- buf_copy_lines (protocol, saved_output, 'M');
+ buf_copy_lines (protocol, saved_output, buftag);
buf_send_counted (protocol);
}
# if HAVE_SYSLOG_H
+/* $MirOS: src/gnu/usr.bin/cvs/src/server.h,v 1.2 2017/11/18 23:04:57 tg Exp $ */
+
/*
* Copyright (C) 1986-2005 The Free Software Foundation, Inc.
*
struct request
{
/* Name of the request. */
- char *name;
+ const char *name;
#ifdef SERVER_SUPPORT
/*
#include "cvs.h"
+__RCSID("$MirOS: src/gnu/usr.bin/cvs/src/version.c,v 1.4 2017/11/18 23:04:57 tg Exp $");
+
+static const
#ifdef CLIENT_SUPPORT
#ifdef SERVER_SUPPORT
char *config_string = " (client/server)\n";
#endif
return err;
}
-