Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jun 2002 03:53:38 -0700 (PDT)
From:      Mike Makonnen <makonnen@pacbell.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   bin/39462: [PATCH] add -g option to finger
Message-ID:  <200206181053.g5IArciX007835@kokeb.ambesa.net>

next in thread | raw e-mail | index | archive | help

>Number:         39462
>Category:       bin
>Synopsis:       [PATCH] add -g option to finger
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 18 03:50:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Mike Makonnen
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
>Environment:
FreeBSD kokeb.ambesa.net 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Mon Jun 17 04:15:41 PDT 2002
mikem@kokeb.ambesa.net:/FreeBSD/builds/current/obj/FreeBSD/builds/current/src.orig/sys/GENERIC  i386
	
>Description:
The following patch adds the -g option to finger. I found it in NetBSD.
This option restricts the printing of the gecos field to just the
Full Name (and not Office, Phone, etc).
	
>How-To-Repeat:
	
>Fix:

	



--- finger.patch begins here ---
Index: usr.bin/finger/extern.h
===================================================================
RCS file: /home/ncvs/src/usr.bin/finger/extern.h,v
retrieving revision 1.6
diff -u -r1.6 extern.h
--- usr.bin/finger/extern.h	22 Mar 2002 01:22:31 -0000	1.6
+++ usr.bin/finger/extern.h	18 Jun 2002 10:14:34 -0000
@@ -38,6 +38,7 @@
 extern int entries;			/* Number of people. */
 extern DB *db;				/* Database. */
 extern int d_first;
+extern int gflag;
 
 void	 enter_lastlog(PERSON *);
 PERSON	*enter_person(struct passwd *);
Index: usr.bin/finger/finger.1
===================================================================
RCS file: /home/ncvs/src/usr.bin/finger/finger.1,v
retrieving revision 1.23
diff -u -r1.23 finger.1
--- usr.bin/finger/finger.1	19 Apr 2002 23:38:13 -0000	1.23
+++ usr.bin/finger/finger.1	18 Jun 2002 10:45:17 -0000
@@ -40,7 +40,7 @@
 .Nd user information lookup program
 .Sh SYNOPSIS
 .Nm
-.Op Fl lmpshoT
+.Op Fl glmpshoT
 .Op Ar user ...\&
 .Op Ar user@host ...\&
 .Sh DESCRIPTION
@@ -86,6 +86,13 @@
 .Fl s
 option, the office location and office phone information is displayed
 instead of the name of the remote host.
+.Pp
+.It Fl g
+This option restricts the gecos output to only the users' real
+name. It also has the side-effect of restricting the output
+of the remote host when used in conjunction with the
+.Fl h
+option.
 .Pp
 .It Fl l
 Produce a multi-line format displaying all of the information
Index: usr.bin/finger/finger.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/finger/finger.c,v
retrieving revision 1.27
diff -u -r1.27 finger.c
--- usr.bin/finger/finger.c	22 Mar 2002 01:22:31 -0000	1.27
+++ usr.bin/finger/finger.c	18 Jun 2002 10:13:27 -0000
@@ -89,7 +89,7 @@
 
 DB *db;
 time_t now;
-int entries, lflag, mflag, pplan, sflag, oflag, Tflag;
+int entries, gflag, lflag, mflag, pplan, sflag, oflag, Tflag;
 int d_first = -1;
 char tbuf[1024];
 
@@ -107,8 +107,11 @@
 
 	optind = 1;		/* reset getopt */
 
-	while ((ch = getopt(argc, argv, "lmpshoT")) != -1)
+	while ((ch = getopt(argc, argv, "glmpshoT")) != -1)
 		switch(ch) {
+		case 'g':
+			gflag = 1;
+			break;
 		case 'l':
 			lflag = 1;		/* long format */
 			break;
Index: usr.bin/finger/lprint.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/finger/lprint.c,v
retrieving revision 1.21
diff -u -r1.21 lprint.c
--- usr.bin/finger/lprint.c	22 Mar 2002 01:22:34 -0000	1.21
+++ usr.bin/finger/lprint.c	18 Jun 2002 10:11:39 -0000
@@ -127,6 +127,8 @@
 	    pn->name, pn->realname, pn->dir);
 	(void)printf("\tShell: %-s\n", *pn->shell ? pn->shell : _PATH_BSHELL);
 
+	if (gflag)
+		goto no_gecos;
 	/*
 	 * try and print office, office phone, and home phone on one line;
 	 * if that fails, do line filling so it looks nice.
@@ -160,6 +162,7 @@
 	if (oddfield)
 		putchar('\n');
 
+no_gecos:
 	/*
 	 * long format con't:
 	 * if logged in
Index: usr.bin/finger/sprint.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/finger/sprint.c,v
retrieving revision 1.19
diff -u -r1.19 sprint.c
--- usr.bin/finger/sprint.c	22 Mar 2002 01:22:34 -0000	1.19
+++ usr.bin/finger/sprint.c	18 Jun 2002 10:20:32 -0000
@@ -89,7 +89,7 @@
 #define	MAXREALNAME	20
 #define MAXHOSTNAME     17      /* in reality, hosts are never longer than 16 */
 	(void)printf("%-*s %-*s%s  %s\n", UT_NAMESIZE, "Login", MAXREALNAME,
-	    "Name", " TTY  Idle  Login  Time",
+	    "Name", " TTY  Idle  Login  Time ", (gflag) ? "" :
 	    oflag ? "Office  Phone" : "Where");
 
 	for (sflag = R_FIRST;; sflag = R_NEXT) {
@@ -143,7 +143,10 @@
 				(void)strftime(p, sizeof(p), "%R", lc);
 			}
 			(void)printf(" %-5.5s", p);
-office:			if (oflag) {
+office:
+			if (gflag)
+				goto no_gecos;
+			if (oflag) {
 				if (pn->office)
 					(void)printf(" %-7.7s", pn->office);
 				else if (pn->officephone)
@@ -153,6 +156,7 @@
 					    prphone(pn->officephone));
 			} else
 				(void)printf(" %.*s", MAXHOSTNAME, w->host);
+no_gecos:
 			putchar('\n');
 		}
 	}
--- finger.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206181053.g5IArciX007835>