Date: Sun, 1 Jul 2001 11:06:25 -0400 (EDT) From: Mike Barcroft <mike@q9media.com> To: Bruce Evans <bde@zeta.org.au> Cc: audit@FreeBSD.org Subject: Re: src/bin/ed patch Message-ID: <200107011506.f61F6P904227@coffee.q9media.com>
next in thread | raw e-mail | index | archive | help
Bruce Evans <bde@zeta.org.au> writes:
> On Fri, 29 Jun 2001, Mike Barcroft wrote:
> > o Since the rcsids are generating warnings, switch to __RCSID().
>
> Please don't. obrien and I are trying to decide whether ids (initially
> in libc) should be changed to use __RCSID() when they are cleaned up.
> I think we are unlikely to use it. One problem is that it is also used
> in other BSDs, so it can't be used to hide messy ifdefs to control the
> visibility of the id string in a system-dependent way.
Why not just add a switch in /etc/{defaults/,}make.conf to allow one
to control the visibility of RCSIDs? What concern is it of ours if the
other BSDs embed RCSIDs unconditionally?
In any event, __RCSID() doesn't appear ready for general use. An
updated version of my patch is available at the end of this message
and also at: http://testbed.q9media.net/freebsd/ed.20010701.patch
This patch will need to be tested on an Alpha before committing.
Best regards,
Mike Barcroft
-----------------------------------------------------------------------
ed.20010701.patch
o Correctly define rcsid [requested by bde].
o Add consts where appropriate.
o Rename some variables that are shadowing global declarations.
o Set WARNS?=2
Index: ed/Makefile
===================================================================
RCS file: /home/ncvs/src/bin/ed/Makefile,v
retrieving revision 1.18
diff -u -r1.18 Makefile
--- ed/Makefile 2000/02/29 11:39:24 1.18
+++ ed/Makefile 2001/07/01 14:29:05
@@ -1,6 +1,7 @@
# $FreeBSD: src/bin/ed/Makefile,v 1.18 2000/02/29 11:39:24 markm Exp $
PROG= ed
+WARNS?= 2
SRCS= buf.c cbc.c glbl.c io.c main.c re.c sub.c undo.c
LINKS= ${BINDIR}/ed ${BINDIR}/red
MLINKS= ed.1 red.1
Index: ed/buf.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/buf.c,v
retrieving revision 1.17
diff -u -r1.17 buf.c
--- ed/buf.c 1999/08/27 23:14:12 1.17
+++ ed/buf.c 2001/07/01 14:29:05
@@ -27,12 +27,8 @@
*/
#ifndef lint
-#if 0
-static char * const rcsid = "@(#)buf.c,v 1.4 1994/02/01 00:34:35 alm Exp";
-#else
-static char * const rcsid =
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/buf.c,v 1.17 1999/08/27 23:14:12 peter Exp $";
-#endif
#endif /* not lint */
#include <sys/file.h>
Index: ed/cbc.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/cbc.c,v
retrieving revision 1.13
diff -u -r1.13 cbc.c
--- ed/cbc.c 2001/03/05 02:15:37 1.13
+++ ed/cbc.c 2001/07/01 14:29:05
@@ -33,17 +33,11 @@
* 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.
- *
- * from: @(#)bdes.c 5.5 (Berkeley) 6/27/91
*/
#ifndef lint
-#if 0
-static char * const rcsid = "@(#)cbc.c,v 1.2 1994/02/01 00:34:36 alm Exp";
-#else
-static char * const rcsid =
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/cbc.c,v 1.13 2001/03/05 02:15:37 kris Exp $";
-#endif
#endif /* not lint */
#include <sys/types.h>
@@ -209,7 +203,7 @@
*/
void
des_error(s)
- char *s; /* the message */
+ const char *s; /* the message */
{
(void)sprintf(errmsg, "%s", s ? s : strerror(errno));
}
@@ -250,9 +244,9 @@
* convert the key to a bit pattern
*/
void
-expand_des_key(obuf, ibuf)
+expand_des_key(obuf, kbuf)
char *obuf; /* bit pattern */
- char *ibuf; /* the key itself */
+ char *kbuf; /* the key itself */
{
register int i, j; /* counter in a for loop */
int nbuf[64]; /* used for hex/key translation */
@@ -260,13 +254,13 @@
/*
* leading '0x' or '0X' == hex key
*/
- if (ibuf[0] == '0' && (ibuf[1] == 'x' || ibuf[1] == 'X')) {
- ibuf = &ibuf[2];
+ if (kbuf[0] == '0' && (kbuf[1] == 'x' || kbuf[1] == 'X')) {
+ kbuf = &kbuf[2];
/*
* now translate it, bombing on any illegal hex digit
*/
- for (i = 0; ibuf[i] && i < 16; i++)
- if ((nbuf[i] = hex_to_binary((int) ibuf[i], 16)) == -1)
+ for (i = 0; kbuf[i] && i < 16; i++)
+ if ((nbuf[i] = hex_to_binary((int) kbuf[i], 16)) == -1)
des_error("bad hex digit in key");
while (i < 16)
nbuf[i++] = 0;
@@ -280,13 +274,13 @@
/*
* leading '0b' or '0B' == binary key
*/
- if (ibuf[0] == '0' && (ibuf[1] == 'b' || ibuf[1] == 'B')) {
- ibuf = &ibuf[2];
+ if (kbuf[0] == '0' && (kbuf[1] == 'b' || kbuf[1] == 'B')) {
+ kbuf = &kbuf[2];
/*
* now translate it, bombing on any illegal binary digit
*/
- for (i = 0; ibuf[i] && i < 16; i++)
- if ((nbuf[i] = hex_to_binary((int) ibuf[i], 2)) == -1)
+ for (i = 0; kbuf[i] && i < 16; i++)
+ if ((nbuf[i] = hex_to_binary((int) kbuf[i], 2)) == -1)
des_error("bad binary digit in key");
while (i < 64)
nbuf[i++] = 0;
@@ -300,7 +294,7 @@
/*
* no special leader -- ASCII
*/
- (void)strncpy(obuf, ibuf, 8);
+ (void)strncpy(obuf, kbuf, 8);
}
/*****************
@@ -391,7 +385,7 @@
char *msgbuf; /* I/O buffer */
FILE *fp; /* input file descriptor */
{
- Desbuf ibuf; /* temp buffer for initialization vector */
+ Desbuf tbuf; /* temp buffer for initialization vector */
register int n; /* number of bytes actually read */
register int c; /* used to test for EOF */
int inverse = 1; /* 0 to encrypt, 1 to decrypt */
@@ -400,11 +394,11 @@
/*
* do the transformation
*/
- MEMCPY(BUFFER(ibuf), BUFFER(msgbuf), 8);
+ MEMCPY(BUFFER(tbuf), BUFFER(msgbuf), 8);
DES_XFORM(UBUFFER(msgbuf));
for (c = 0; c < 8; c++)
UCHAR(msgbuf, c) ^= UCHAR(ivec, c);
- MEMCPY(BUFFER(ivec), BUFFER(ibuf), 8);
+ MEMCPY(BUFFER(ivec), BUFFER(tbuf), 8);
/*
* if the last one, handle it specially
*/
Index: ed/ed.h
===================================================================
RCS file: /home/ncvs/src/bin/ed/ed.h,v
retrieving revision 1.14
diff -u -r1.14 ed.h
--- ed/ed.h 2001/05/29 18:03:13 1.14
+++ ed/ed.h 2001/07/01 14:29:06
@@ -200,7 +200,7 @@
int close_sbuf __P((void));
int copy_lines __P((long));
int delete_lines __P((long, long));
-void des_error __P((char *));
+void des_error __P((const char *));
int display_lines __P((long, long, int));
line_t *dup_line_node __P((line_t *));
int exec_command __P((void));
@@ -236,7 +236,7 @@
int join_lines __P((long, long));
int mark_line_node __P((line_t *, int));
int move_lines __P((long));
-line_t *next_active_node __P(());
+line_t *next_active_node __P((void));
long next_addr __P((void));
int open_sbuf __P((void));
char *parse_char_class __P((char *));
@@ -259,7 +259,7 @@
char *translit_text __P((char *, int, int, int));
void unmark_line_node __P((line_t *));
void unset_active_nodes __P((line_t *, line_t *));
-long write_file __P((char *, char *, long, long));
+long write_file __P((char *, const char *, long, long));
long write_stream __P((FILE *, long, long));
/* global buffers */
Index: ed/glbl.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/glbl.c,v
retrieving revision 1.10
diff -u -r1.10 glbl.c
--- ed/glbl.c 2000/10/16 07:06:35 1.10
+++ ed/glbl.c 2001/07/01 14:29:06
@@ -27,12 +27,8 @@
*/
#ifndef lint
-#if 0
-static char * const rcsid = "@(#)glob.c,v 1.1 1994/02/01 00:34:40 alm Exp";
-#else
-static char * const rcsid =
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/glbl.c,v 1.10 2000/10/16 07:06:35 brian Exp $";
-#endif
#endif /* not lint */
#include <sys/types.h>
@@ -210,7 +206,7 @@
/* next_active_node: return the next global-active line node */
line_t *
-next_active_node()
+next_active_node(void)
{
while (active_ptr < active_last && active_list[active_ptr] == NULL)
active_ptr++;
Index: ed/io.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/io.c,v
retrieving revision 1.10
diff -u -r1.10 io.c
--- ed/io.c 1999/08/27 23:14:14 1.10
+++ ed/io.c 2001/07/01 14:29:06
@@ -26,12 +26,8 @@
*/
#ifndef lint
-#if 0
-static char * const rcsid = "@(#)io.c,v 1.1 1994/02/01 00:34:41 alm Exp";
-#else
-static char * const rcsid =
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/io.c,v 1.10 1999/08/27 23:14:14 peter Exp $";
-#endif
#endif /* not lint */
#include "ed.h"
@@ -157,7 +153,7 @@
long
write_file(fn, mode, n, m)
char *fn;
- char *mode;
+ const char *mode;
long n;
long m;
{
Index: ed/main.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/main.c,v
retrieving revision 1.20
diff -u -r1.20 main.c
--- ed/main.c 2001/06/28 22:06:27 1.20
+++ ed/main.c 2001/07/01 14:29:06
@@ -27,18 +27,10 @@
*/
#ifndef lint
-static char * const copyright =
-"@(#) Copyright (c) 1993 Andrew Moore, Talke Studio. \n\
- All rights reserved.\n";
-#endif /* not lint */
-
-#ifndef lint
-#if 0
-static char * const rcsid = "@(#)main.c,v 1.1 1994/02/01 00:34:42 alm Exp";
-#else
-static char * const rcsid =
+static const char copyright[] =
+ "@(#) Copyright (c) 1993 Andrew Moore, Talke Studio. All rights reserved.";
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/main.c,v 1.20 2001/06/28 22:06:27 dd Exp $";
-#endif
#endif /* not lint */
/*
@@ -100,8 +92,8 @@
long current_addr; /* current address in editor buffer */
long addr_last; /* last address in editor buffer */
int lineno; /* script line number */
-char *prompt; /* command-line prompt */
-char *dps = "*"; /* default command-line prompt */
+const char *prompt; /* command-line prompt */
+const char *dps = "*"; /* default command-line prompt */
const char usage[] = "usage: %s [-] [-sx] [-p string] [name]\n";
@@ -1385,12 +1377,13 @@
{
char *hup = NULL; /* hup filename */
char *s;
+ char ed_hup[] = "ed.hup";
int n;
if (!sigactive)
quit(1);
sigflags &= ~(1 << (signo - 1));
- if (addr_last && write_file("ed.hup", "w", 1, addr_last) < 0 &&
+ if (addr_last && write_file(ed_hup, "w", 1, addr_last) < 0 &&
(s = getenv("HOME")) != NULL &&
(n = strlen(s)) + 8 <= PATH_MAX && /* "ed.hup" + '/' */
(hup = (char *) malloc(n + 10)) != NULL) {
Index: ed/re.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/re.c,v
retrieving revision 1.16
diff -u -r1.16 re.c
--- ed/re.c 2001/05/29 18:03:14 1.16
+++ ed/re.c 2001/07/01 14:29:06
@@ -27,12 +27,8 @@
*/
#ifndef lint
-#if 0
-static char * const rcsid = "@(#)re.c,v 1.6 1994/02/01 00:34:43 alm Exp";
-#else
-static char * const rcsid =
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/re.c,v 1.16 2001/05/29 18:03:14 imp Exp $";
-#endif
#endif /* not lint */
#include "ed.h"
Index: ed/sub.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/sub.c,v
retrieving revision 1.12
diff -u -r1.12 sub.c
--- ed/sub.c 1999/08/27 23:14:15 1.12
+++ ed/sub.c 2001/07/01 14:29:06
@@ -27,12 +27,8 @@
*/
#ifndef lint
-#if 0
-static char * const rcsid = "@(#)sub.c,v 1.1 1994/02/01 00:34:44 alm Exp";
-#else
-static char * const rcsid =
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/sub.c,v 1.12 1999/08/27 23:14:15 peter Exp $";
-#endif
#endif /* not lint */
#include "ed.h"
Index: ed/undo.c
===================================================================
RCS file: /home/ncvs/src/bin/ed/undo.c,v
retrieving revision 1.9
diff -u -r1.9 undo.c
--- ed/undo.c 1999/08/27 23:14:15 1.9
+++ ed/undo.c 2001/07/01 14:29:06
@@ -26,12 +26,8 @@
*/
#ifndef lint
-#if 0
-static char * const rcsid = "@(#)undo.c,v 1.1 1994/02/01 00:34:44 alm Exp";
-#else
-static char * const rcsid =
+static const char rcsid[] =
"$FreeBSD: src/bin/ed/undo.c,v 1.9 1999/08/27 23:14:15 peter Exp $";
-#endif
#endif /* not lint */
#include "ed.h"
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-audit" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107011506.f61F6P904227>
