119304Speter/*- 219304Speter * Copyright (c) 1992, 1993, 1994 319304Speter * The Regents of the University of California. All rights reserved. 419304Speter * Copyright (c) 1992, 1993, 1994, 1995, 1996 519304Speter * Keith Bostic. All rights reserved. 619304Speter * 719304Speter * See the LICENSE file for redistribution information. 819304Speter */ 919304Speter 1019304Speter#include "config.h" 1119304Speter 1219304Speter#ifndef lint 1319304Speterstatic const char sccsid[] = "@(#)ex_equal.c 10.10 (Berkeley) 3/6/96"; 1419304Speter#endif /* not lint */ 1519304Speter 1619304Speter#include <sys/types.h> 1719304Speter#include <sys/queue.h> 1819304Speter 1919304Speter#include <bitstring.h> 2019304Speter#include <limits.h> 2119304Speter#include <stdio.h> 2219304Speter 2319304Speter#include "../common/common.h" 2419304Speter 2519304Speter/* 2619304Speter * ex_equal -- :address = 2719304Speter * 2819304Speter * PUBLIC: int ex_equal __P((SCR *, EXCMD *)); 2919304Speter */ 3019304Speterint 3119304Speterex_equal(sp, cmdp) 3219304Speter SCR *sp; 3319304Speter EXCMD *cmdp; 3419304Speter{ 3519304Speter recno_t lno; 3619304Speter 3719304Speter NEEDFILE(sp, cmdp); 3819304Speter 3919304Speter /* 4019304Speter * Print out the line number matching the specified address, 4119304Speter * or the number of the last line in the file if no address 4219304Speter * specified. 4319304Speter * 4419304Speter * !!! 4519304Speter * Historically, ":0=" displayed 0, and ":=" or ":1=" in an 4619304Speter * empty file displayed 1. Until somebody complains loudly, 4719304Speter * we're going to do it right. The tables in excmd.c permit 4819304Speter * lno to get away with any address from 0 to the end of the 4919304Speter * file, which, in an empty file, is 0. 5019304Speter */ 5119304Speter if (F_ISSET(cmdp, E_ADDR_DEF)) { 5219304Speter if (db_last(sp, &lno)) 5319304Speter return (1); 5419304Speter } else 5519304Speter lno = cmdp->addr1.lno; 5619304Speter 5719304Speter (void)ex_printf(sp, "%ld\n", lno); 5819304Speter return (0); 5919304Speter} 60