Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Jun 2001 00:56:42 -0700 (MST)
From:      Jordan.DeLong@cx420564-b.tucson1.az.home.com
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/28007: added "force printing of non-print chars" flag to /bin/ls
Message-ID:  <200106100756.f5A7ugx05725@cx420564-b.tucson1.az.home.com>

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

>Number:         28007
>Category:       bin
>Synopsis:       added "force printing of non-print chars" flag to /bin/ls
>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:   Sun Jun 10 01:00:09 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jordan DeLong
>Release:        FreeBSD 4.3-RELEASE i386
>Organization:
None
>Environment:
System: FreeBSD cx420564-b 4.3-RELEASE FreeBSD 4.3-RELEASE #0: Tue Apr 24 08:33:58 GMT 2001 fracture@cx420564-b:/usr/src/sys/compile/HOBOIV i386

>Description:
	when the output of /bin/ls is not to a terminal, it defaults to
	printing non-printable characters directly.  However, when output
	is to a tty there is no way to make it output non-printable chars.

	/bin/ls uses isprint() to determine if a character is printable;
	this includes high-bit ascii characters that really are printable
	in some settings, and also includes filenames that have kanji in
	them.  So forcing the raw printing of these characters can be
	desirable even on a tty, particularly for those who use languages
	other than English that make use of characters that don't fall in
	isprint().

	I've added a -w flag to /bin/ls that is used to force raw output
	of nonprintable characters when the output is a tty.
>How-To-Repeat:
	Apply the patch in the Fix: section.  The patch is against the
	/usr/src/bin/ls/ tree that is in 4.3-RELEASE.
>Fix:
	

diff -u -ruN ls-dist/ls.1 ls/ls.1
--- ls-dist/ls.1	Mon Mar  5 03:05:00 2001
+++ ls/ls.1	Sun Jun 10 00:40:31 2001
@@ -43,7 +43,7 @@
 .Nd list directory contents
 .Sh SYNOPSIS
 .Nm
-.Op Fl ABCFGHLPRTWabcdfgiklnoqrstu1
+.Op Fl ABCFGHLPRTWabcdfgiklnoqrstu1w
 .Op Ar
 .Sh DESCRIPTION
 For each operand that names a
@@ -191,6 +191,9 @@
 one entry per line.
 This is the default when
 output is not to a terminal.
+.It Fl w
+Force raw printing of non-printable characters.  This is the default
+when output is not to a terminal.
 .El
 .Pp
 The
@@ -210,7 +213,8 @@
 .Pp
 The
 .Fl B ,
-.Fl b
+.Fl b ,
+.Fl w ,
 and
 .Fl q
 options all override each other; the last one specified determines
diff -u -ruN ls-dist/ls.c ls/ls.c
--- ls-dist/ls.c	Wed Aug 16 12:57:11 2000
+++ ls/ls.c	Sun Jun 10 00:34:22 2001
@@ -163,7 +163,7 @@
 		f_listdot = 1;
 
 	fts_options = FTS_PHYSICAL;
-	while ((ch = getopt(argc, argv, "1ABCFGHLPRTWabcdfgiklnoqrstu")) != -1) {
+	while ((ch = getopt(argc, argv, "1ABCFGHLPRTWabcdfgiklnoqrstuw")) != -1) {
 		switch (ch) {
 		/*
 		 * The -1, -C and -l options all override each other so shell
@@ -268,6 +268,11 @@
 			f_nonprint = 0;
 		        f_octal = 0;
 			f_octal_escape = 1;
+			break;
+		case 'w':
+			f_nonprint = 0;
+			f_octal = 0;
+			f_octal_escape = 0;
 			break;
 		default:
 		case '?':

>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?200106100756.f5A7ugx05725>