Defect Report concerning: IEEE Std. 1003.2-1992, ISO/IEC 9945-2:1993 - Shell & Utilities
Clause: IEEE 1003.2-1992 6.1
PASC Interpretation Ref: pasc-1003.2-198
Topic: ar


This is an unapproved interpretation of PASC 1003.2-1992, ISO/IEC 9945-2:1993 - Shell & Utilities.

Use of the information contained in this unapproved document is at your own risk.

Last update: 20 April,2001


								1003.2-92  #198

 _____________________________________________________________________________


	Interpretation Number:	xxxx
	Topic:   ar
	Relevant Sections: IEEE 1003.2-1992 6.1


PASC Interpretation Request: (Defect Report)
----------------------------  


        Date: 2001 Jan 10
	Ref: 

------------------------------------------------------------------------ 

 7  Defect Report concerning (number and title of International Standard
    or DIS final text, if applicable): 

IEEE Std 1003.2-1992

------------------------------------------------------------------------ 

 8  Qualifier (e.g. error, omission, clarification required):

3

Error=1 , Omission=2, Clarification=3

------------------------------------------------------------------------ 

 9  References in document (e.g. page, clause, figure, and/or table
    numbers):

6.1: ar

------------------------------------------------------------------------ 

10  Nature of defect (complete, concise explanation of the perceived
    problem):


The term "file" refers both to an object in the file system and an
object inside the archive.  This can be ambiguous, or at least
unclear.  This is exacerbated by the fact that the operand "file"
can be either.  Eliminating the few uses of "member" initially
seems tempting, but then it has to be very consistently replaced
with "file in the archive" which is asking for trouble later (because
of very easy slips made in further changes).

The standard is also unclear about exactly what is meant
in a situation like
   ar -t libc.a /thisdirectoryneverexisted/setjmp.o

Should this just list the archive member name (just setjmp.o) or
the file name specified on the command line (with "/this....).  (I
believe the former, but it's not that crisp.) ("The files specified
by the _file_ operands..." could be read as requiring the name in
the operand, not the member name (or even that a file in the
filesystem exist, depending on the weight given to the word "file").)

------------------------------------------------------------------------ 

11  Solution proposed by the submitter (optional):

This is really to bring work in scope for the Austin Group work.

Use "member" consistently when referring to the content of the
archive, and live with the problem of occasionally having the
operand "file" refer to an object which is a member.  Indicate
that where a member is being referred to by a pathname, that
only the basename is ever used except when opening a file in
the file system.

In the example above, it would read.... "The names of the members 
specified by the _file_ operands shall be included in the written
list.  If no _file_ operands are specified, all members of _archive_
shall be included in the order of the archive."

(I believe that another way to address this might be to split it
into two synopsis lines: those command operations that list "files"
and those that list "members".  "Files" would honor the full pathname
specified.  "Members" would only honor the basename, even if a full
pathname were given.  This would make the standard much clearer without
changing its meaning.
------------------------------------------------------------------------ 


Response
_________

The submitter is correct in noting there are at least 4 uses for
the term "file" in the description of the "ar" utility (these
are 1) files in the file system, 2) files in the archive, 3)
archive files and 4) file system.  There are some places in the
description for the distinction between "archive file" and "file
in an archive" are confused.  The submitter is correct in noting
that in some places in the description, files in the archive is
referred to as "members".  It is not clear that the multiple use
of the term "file" cause any real ambiguity in the standard.

This issue has been forwarded to sponsor.

The submitter says that the standard is unclear on what is meant
in a situation like:
			ar -t archive /dir/file
The 2nd paragraph of the description in section 6.1.2 clearly
states that only the final component of the file operand is
used.

No change is required for this issue.

Rationale
_________
None.

Notes to project editor (not part of this interpretation):
==========================================================
Make the following changes to AGR D5 (the intent is to
consistently use "file" to refer to a file in the file system
hierarchy, "archive" to refer to the archive being operated upon
by the ar utility, "file in the archive" to refer to a copy of a
file that is contained in the archive):
page 2348 line 4997 "existing files" to "existing files in an archive"
page 2348 line 5001 "archive file" to "archive" two times.
page 2348 line 5002 "archive file" to "archive".
page 2348 line 5004 "archive file" to "archive".
page 2348 line 5005 "archive file" to "archive".
page 2348 line 5011 "archive file" to "file in the archive".
page 2348 line 5013 "archive file" to "file in the archive".
page 2348 line 5022 "archive file archive" to "archive archive".
		(with the second "archive" in italics in the D5 text and
		in the replacement text).
page 2349 line 5027 "file named" to "file in the archive named".
page 2349 line 5029 "named files" to "named files in the archive".
page 2349 line 5030 "files" to "named files in the archive".
page 2349 line 5031 "files from archive" to "files in the
		archive named by file operands from archive".
page 2349 line 5031 "no files" to "no file operands".
page 2349 line 5034 "archive file" to "archive".
page 2349 line 5035 "members" to "files".
page 2349 line 5038 "archive file" to "archive".
page 2349 line 5040 "existing files" to "existing files in the archive"
page 2349 line 5041 "existing files" to "existing files in the archive"
page 2349 line 5044 "archive file" to "archive".
page 2349 line 5052 "older files" to "older files in the archive".
page 2349 line 5052 "within" to "in".
page 2349 line 5054 "within" to "in".
page 2349 line 5058 "file" to "file in the archive".
page 2349 line 5059 "file" to "file in the archive".
page 2349 line 5060 "within" to "in".
page 2349 line 5062 "files" to "files in the archive".
page 2349 line 5063 "archive file" to "archive".
page 2349 line 5064 "archive file" to "archive".
page 2349 line 5068 "archive file" to "archive".
page 2350 line 5074 "archive file" to "archive".
page 2350 line 5079 "input file" to "archive".
delete page 2351 lines 5117-5121.
page 2351 line 5122 "files" to "files in the archive".
page 2351 line 5137 "archive member" to "file in the archive".
page 2352 line 5174 "archive file" to "archive".
page 2353 line 5238 "archive file" to "archive".
page 2354 line 5241 "member" to "file".


Forwarded to Interpretations group: 16 Jan 2001
Proposed resolution: 15 Feb 2001
Finalised: 15 Mar 2001