Title:		(CLIP) Command Line Interface
Case #:		PSARC/1999/645
Submitter:	Harry Vertelney
Owner:		Joseph Kowalski
Date:		01/22/03

Introduction
============

This case presents an extension to the getopt command line syntax
standard.

Specification
=============

For the most part, this case is presented in other documents:

   1]	CLIP.pdf -	Presents the details and usage model of CLIP.

   2]	getopt(3c) -	Proposed manual page for an expanded implementation
			of getopt(3c). Note that this page is a fairly
			complete rewrite of the existing (very crudy)
			manual page.  This revised page not only includes
			the extensions for CLIP support, but is based more
			closely on the SUSv3 manual page than the existing
			SunOS manual page.

Changes will also be made to the getopt(1) and intro(1) manual pages to
reflect the CLIP extensions.  These are obvious and do not contribute to
the architecture presented in this case and are not included as materials.

Deliverables
============

   1]	The CLIP specification.

   2]	Implementations changes to support CLIP to getopt(3c), getopts(1),
	and ksh(1).

   3]	Documentation updates to intro(1), getopts(1), and getopts(3c). Should
	it be discovered that the ksh(1) documentation also needs to be updated,
	it shall be.

Incompatibilities
=================

This project introduces the following incompatibility:

   1]	The expanded syntax for specifying long-option aliases to the
	getopt(3c) function makes the left-parentheses a special character.
	Although it is not explicitly supported and is explicitly not
	appropriate for use by a portable application, it was possible
	to specify the left-parentheses as an option character "-(".
	This will no longer be supported by getopt(3c) (or getopt(1)).

Note this not incompatible with the current documented behavior, only with
the current implementation.

Dependencies
============

It has been strongly encouraged that getopt_long (from GNU) and a variant
of it which supports CLIP be integrated as part of this project.  However,
due to the desire to expediently close this case, these changes will be
specified in a subsequent case.  Hence, this case is dependent upon
PSARC/2003/035.

Release Binding
===============

Despite the minor incompatibilities listed above, a Patch/Micro binding
is requested.  The motivation is the proliferation of utilities wanting
to implement CLIP extensions. Failure to integrate at the earliest possible
time will result in a proliferation of private command line argument
parsing functions.  The Patch binding is to allow integration into a
Solaris Update Release; there is no intention to produce patches for
releases already in the field.

Interface Taxonomy
==================

See the getopt(3c) manual page.

