From owner-freebsd-ports-bugs@FreeBSD.ORG Thu Oct 27 08:10:11 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C4C8106564A for ; Thu, 27 Oct 2011 08:10:11 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 47B4B8FC0C for ; Thu, 27 Oct 2011 08:10:11 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p9R8ABUc077522 for ; Thu, 27 Oct 2011 08:10:11 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p9R8ABx7077521; Thu, 27 Oct 2011 08:10:11 GMT (envelope-from gnats) Resent-Date: Thu, 27 Oct 2011 08:10:11 GMT Resent-Message-Id: <201110270810.p9R8ABx7077521@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Koichiro IWAO Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF08B106566C for ; Thu, 27 Oct 2011 08:08:24 +0000 (UTC) (envelope-from meta@rose.club.kyutech.ac.jp) Received: from rose.club.kyutech.ac.jp (rose.club.kyutech.ac.jp [131.206.108.6]) by mx1.freebsd.org (Postfix) with ESMTP id 585218FC14 for ; Thu, 27 Oct 2011 08:08:22 +0000 (UTC) Received: from rose.club.kyutech.ac.jp (localhost [127.0.0.1]) by rose.club.kyutech.ac.jp (8.14.4/8.14.4) with ESMTP id p9R7lh14078217; Thu, 27 Oct 2011 16:47:43 +0900 (JST) (envelope-from meta@rose.club.kyutech.ac.jp) Received: (from meta@localhost) by rose.club.kyutech.ac.jp (8.14.4/8.14.4/Submit) id p9R7lfxp078199; Thu, 27 Oct 2011 16:47:41 +0900 (JST) (envelope-from meta) Message-Id: <201110270747.p9R7lfxp078199@rose.club.kyutech.ac.jp> Date: Thu, 27 Oct 2011 16:47:41 +0900 (JST) From: Koichiro IWAO To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: meta@club.kyutech.ac.jp Subject: ports/162050: [patch] misc/lv directory opening problem fix X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Koichiro IWAO List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Oct 2011 08:10:11 -0000 >Number: 162050 >Category: ports >Synopsis: [patch] misc/lv directory opening problem fix >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Oct 27 08:10:09 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Koichiro IWAO >Release: FreeBSD 8.2-RELEASE-p1 amd64 >Organization: Kyushu Institute of Technology >Environment: System: FreeBSD rose.club.kyutech.ac.jp 8.2-RELEASE-p1 FreeBSD 8.2-RELEASE-p1 #1: Mon Apr 25 03:31:52 JST 2011 root@rose.club.kyutech.ac.jp:/usr/obj/usr/src/sys/MASAKIKERNEL amd64 >Description: misc/lv tries viewing directories by force. >How-To-Repeat: See differences between `less /` and `lv /`. I don't know whether author made to behave like this on purpose, anyway my patch makes lv to behave more less-like. >Fix: See an attached patch. --- lv.patch begins here --- diff -ruN --exclude='*~' /tmp/lv451/src/lv.c src/lv.c --- /tmp/lv451/src/lv.c 2004-01-05 16:30:15.000000000 +0900 +++ src/lv.c 2011-05-27 02:21:37.000000000 +0900 @@ -2,6 +2,7 @@ * lv.c * * All rights reserved. Copyright (C) 1996 by NARITA Tomio. + * Copyright (C) Oct 27, 2011 Koichiro IWAO. All rights reserved. * $Id: lv.c,v 1.10 2004/01/05 07:30:15 nrt Exp $ */ /* @@ -89,16 +90,35 @@ grep_mode = FALSE; } +private boolean_t isDirectory(byte **file) { + struct stat buf; + stat((unsigned char *)file, &buf); + if (S_ISDIR(buf.st_mode)) { + fprintf(stderr, "%s is a directory\n", file); + return TRUE; + } else { + return FALSE; + } +} + private boolean_t LvOpen( conf_t *conf ) { + boolean_t flagIsDirectory = FALSE; + if( NULL != conf->file ){ + if( TRUE == isDirectory( *conf->file ) ){ + flagIsDirectory = TRUE; + } if( NULL == (conf->st = StreamOpen( *conf->file )) ){ while( NULL != *(++conf->file) ){ - if( NULL != (conf->st = StreamOpen( *conf->file )) ) - return TRUE; + if( NULL != (conf->st = StreamOpen( *conf->file )) ){ + if( TRUE == isDirectory( *conf->file ) ){ + flagIsDirectory = TRUE; + } + } } - return FALSE; } + return (TRUE == flagIsDirectory ? FALSE : TRUE); } else { conf->st = StreamReconnectStdin(); } --- lv.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: