There are ksh clones. But the "real" ksh is AT&T lincensed software.

Randolph J. Herber, CD/DCD/SP, x2966 HERBER at FNALA.FNAL.GOV
Fri Mar 8 05:30:26 AEST 1991


The following observations are in order:

	1)	'ksh' is licensed software of AT&T corporation.
	2)	The source code is available for purchase from AT&T Toolchest.
		The telephone numbers I have for them may be out-of-date.
		+1 800 828 8649 or +1 919 855 2743 (These number now belong
		to UNIX Systems Laboratories.)
	3)	The last time I checked on the price for an organization
		license it was US$3,000 for the source and US$20,000 additional
		if the organization wanted to sublicense the executables
		outside the organization.

I enclose a text from the AT&T Toolchest describing it that is about a year
in age.

Randolph J. Herber, herber at fnalf.fnal.gov

>From:	SMTP%"info-iris-request at vmb.brl.mil"  7-MAR-1991 11:50:34.44
>To:	info-iris at BRL.MIL
>CC:	
>Subj:	Korn shell for IRIS (ksh)
>
>Date: 7 Mar 91 14:53:59 GMT
>From: Kamran Sokhanvari <mcsun!cernvax!chx400!chx400!sgzh!root at uunet.uu.net>
>Organization: Silicon Graphics, Zurich
>Subject: Korn shell for IRIS (ksh)
>Message-Id: <1991Mar7.145359.21510 at sgzh.uu.ch>
>Sender: info-iris-request at BRL.MIL
>To: info-iris at BRL.MIL
>
>
>Does anyone have a copy of korn shell running on their IRIS
>workstation. If yes I would appreciate either a binary copy 
>or the source code for our system. 
> 
>Please use Email to reply.
> 
>Many thanks in advance.
> 
> 
>Kamran Sokhanvari,      
>SGI Zurich, Switzerland
> 

OVERVIEW

 The UNIX System Toolchest is an electronic catalog for browsing and
 ordering certain AT&T source software. The Toolchest provides a
 channel through which unsupported software products, developed within
 AT&T, can be distributed to the commercial UNIX world. As you browse
 through the catalog, you'll find descriptions of all the Toolchest
 programs, complete with information on memory and disk requirements,
 documentation, and license fees.

 Because the Toolchest offers an innovative electronic distribution
 mechanism, you will be able to start ordering and receiving software
 as soon as  you have registered with the Toolchest Administrator.
 Registration is free if your company is a source licensee of UNIX
 System V;  otherwise, a fee of $100.00 is assessed. To register, your
 company must execute a license agreement which covers all software
 available through the UNIX System Toolchest. You will be sent one
 contract covering both Csource and binary sublicensing terms. Some of
 the points on which you will be asked to agree are:

 1. You may make multiple copies of the source for your company's
 INTERNAL use.  No CPU serial number reporting is required.

 2. Licenses are final once the electronic distribution has been
 completed to your machine.


 3. AT&T does not warrant the suitability of the software products for
 any specific use.

 4. You are responsible for keeping the software in confidence.

 5. Sublicensing is available for a lump sum (no royalties) on a per
 tool basis, as written in the contract.

 Registration is not required to browse. When you decide to register,
 either use item number 8 on the main menu or call 201-829-8843 between
 9am-5pm Eastern time.

 The software, sent to your computer using the uucp network, is
 distributed "as is" and in source code format. Machines and operating
 systems listed for each tool in the tool specifications do not
 represent a warrantee by AT&T that the tool runs in that environment,
 but are furnished to give you an idea of how much this tool has been
 ported to different configurations.

 The Toolchest has a menu interface, allowing you to choose your own
 path through the system. The menus all have selection fields which
 require input from you.  Selections may be made in either upper or
 lower case, and require that you press RETURN after typing the desired
 selection. If you don't understand an input request or error message,
 type a question mark (?) without a RETURN and help information will
 appear. If fields are optional, a RETURN or <CTRL> n will move you to
 the next field (see item number 2 on the main menu.)

 IMPORTANT: The editing in the fields is overlay editing. If you type a
 selection that you wish to change or if the cursor is placed at the
 end of a field that you wish to change, then you must BACKSPACE over
 the characters and then retype. You should not leave a field until you
 are sure your input is correct because you will not be able to return
 to fields that you have already visited.

 Browsing will give you a list of tools a screenful at a time. You may
 move forward or backward through the entire list of tools. On each
 screen you may request to see long descriptions or specifications of
 any tool AND you may license or sublicense the tools you are
 interested in.

 You may queue a list of tools for licensing. This will NOT commit you
 to license these tools as you will be shown the billing information
 and asked for confirmation before any tool is licensed.

 The Toolchest is an implementation of a new technology in
 distributing software electronically.

 We welcome any comments (see item 9 on the main menu) you may have regarding
 this unique distribution channel of AT&T's commercially available software.

    Welcome to the UNIX System Toolchest. Please send us comments
    so that we may serve you better.

    Sorry, but there are no educational discounts for universities.

    A source upgrade policy is in effect. When an upgraded version
    of a tool that you have licensed becomes available, you will be
    notified via a postal card. The card will give you the cut-off
    date for ordering the upgrade at the discounted upgrade price.

    For information/ordering of the following unsupported software,
    call UNIX(r) Software Licensing at 1-800-828-UNIX.
    DITROFF, N PACK, C/370, S, TEXT MANAGER, TRACE, PMTS, FACE.

    Toolchest customers in the USA now have the option of receiving
    licensed source code and documentation in ENCRYPTED form.
    This feature will make electronic distribution of software
    more secure from file corruption and lost data due to errors in
    transmission.

    The Toolchest will send to your machine, FREE of charge,
    the package that will DECRYPT your files.  This package,
    called "tcunseal" uses YOUR PERSONAL Toolchest PASSWORD
    as the decryption key for deciphering your files.  The "tcunseal"
    package will be sent, as usual, in source code format to be
    compiled on your machine.

 
   So...if you HAVE purchase permission from the Toolchest and would
   like to take advantage of this new encryption/decryption feature,
   simply select 'Send Comments' from the 'Main Menu' and make your
   request known; or call the Toolchest Administrator direct at
   (201) 829-8843 between 9am and 5pm Eastern time.

    If your corporation or educational institution requires purchase
    order numbers on all purchases, please indicate this on the purchase
    authorization form accompanying your Toolchest license agreement.
    Your account can be set up to allow you to enter a P.O. # at the
    time of each purchase.  This P.O. # will be reflected on the paper
    invoice mailed to you requesting payment for purchases.
    If you must mail a copy of the purchase order to us, send it to the
    attention of Ms. Pat Kelly at
	AT&T Information Systems
	P.O. Box 65080
	Charlotte, NC 28265

 ____________________________________________________________________________
    4415wdw	environment	Windowing for AT&T-IS 4415 terminal
    630_pkg	environment	5620 DMD/630 MTG Text Package
    anim	graphics	Algorithm Animation
    asd		administration	Automatic Software Distribution
    awkcc	programming aid awk to C translator
    bptap	programming aid Background Process Terminal Access Pkg
    captoinfo	administration	Termcap to Terminfo Conversion
    centipede	game		Insect Shooting Game
    chunk	language	Segment Text into 
    conv-dt	programming aid Date Conversion routines
    cpio	file utility	Copy file archives in and out
    cscope	debugger	Interactive C Program Analyzer
    cursor	programming aid Shell Cmd Pkg for Cursor Positioning
    datebook	office		Maintain per. Appointment Calendar
    dmd-pgmg	environment	Collection of Teletype 5620 DMD Prog's
    dmdps	driver		Bitmap Printer Interface
    dsh		environment	MS-DOS Command Emulation
    edit-one	editor		Easy full screen Editor
    emacs-tc	editor		Full screen Ed itor, split screen
    file-util1	file utility	Extract lines; Extr. ASCII strings
    fmail	office		Full screen Interface to std mail
    gebaca	game		Corporate Logo Shooting Game
    getopt	programming aid Std Command Line Arg Parser
    heqs	math		Hierarchical EQuation Solver
    icurse	programming aid Interpreter for Curses Library
    inedit	programming aid Input Line Editor
    infocmp	administration	Compare Terminfo Descriptions
    inspect	debugger	C/C++ Syntax Checker
    keynote	language	A music programming language for MIDI
    ksh-i	language	KornShell Command & Programming Language
    lisp-tc	language	Lisp Interpreter
    ltrace	debugger	lex and yacc Debugger
    make-util	file utility	Makefile Generator and Analyzer
    map		graphics	World map generator
    mk		programming aid A successor to make
    nawk	language	Pattern Scanning & Processing Language
    ncsl	programming aid Count Non-Commentary src lines
    nmake	programming aid New Make Program
    p-shell	language	Prolog-based Knowledge Prog Environment
    paisley	language	Executable Specification Language
    port3	library		Package of FORTRAN Subroutin es
    port3-approx library	PORT3 FORTRAN Approximation Subroutines
    port3-diff	library		PORT3 FORTRAN Diff Equation Subroutines
    port3-frame library		PORT3 FORTRAN Subroutine Framework Pkg
    port3-linalg library	PORT3 FORTRAN Linear Algebra Subroutine
    port3-opt	library		PORT3 FORTRAN Optimization Subroutines
    port3-pde	library		PORT3 FORTRAN Part Diff Equa Subroutines
    port3-quad	library		PORT3 FORTRAN Quadrature Subroutines
    port3-roots	library		PORT3 FORTRAN Root Finder Subroutines
    port3-spfns	library		PORT3 FORTRAN Spec Function Subroutines
    port3-trans library		PORT3 FORTRAN Fast Fourier Transforms
    port3-util	library		PORT3 FORTRAN Sub Library Utilities
    reltools	programming aid Software Reliability Analyzer
    rogue-tc	game		Screen-oriented fantasy Game
    sam		editor		A Bitmap Editor
    scicalc	office		Full-screen Scientific Calculator
    sh-pgmg1	programming aid Set of Useful Shell Prog. Tools
    sh-pgmg2	programming aid Another Set of Useful Shell Prog. Tools
    slog	debugger	Flexible Src level LOGging Facility
    snocone	language	Translate Snocone into SNOBOL4
    spin	programming aid Automated Protocol Simulator, Validator
    sw_mgmt_pkg	administration	Software Package Management Tools
    tabs	forms		C Library Windowing Interface
    tape-tools	file utility	Extract Utilities for IBM Std Tapes
    teco-tc	editor		popular DEC editor for the UNIX system
    tek		graphics	"troff" Filter for Tek4014 cmds
    tforms	forms		A Forms Package for Video Terminals
    tttt	game		3D Tic-Tac-Toe for 2 players
    tunex	administration	UNIX System Performance Tuning Tool
    unity-tc	database	Relational DB for simple files
    varityper	office		DWB 1.0 for Varityper Equipment
    vsh-tc	environment	Menu Shell
    vsort	file utility	Sort for Large and/or Binary Files

Tool name: tape-tools
TAPE-TOOLS - Extract Utilities for IBM Standard Tapes TAPE-TOOLS is a package
of subroutines that make it practical to access large volumes of IBM compatible
tape data in a reasonable length of time. The TTU (tape-tool utilities) system
is a code generator that can build efficient tape processing programs. Simple
descriptions of record layouts, record selection criteria, and output
requirements are used to direct the assembly of custom programs from a library
of code fragments. TTU generates C language programs to select, extract and
translate data stored in EBCDIC format on tapes. You fill in a simple
dictionary describing the tape (or use one already in existence), respond to
prompts from TTU for conditions on the records and fields to be extracted.
The TTU system analyzes this request and generates a program to read the tape
and return the requested data. This approach is easy to use and provides
programs that are reasonably fast and predictably structured. The structure
allows a programmer, even one not involved in the generation of the program, to
alter the program to meet special needs. Sltread is an analysis tool for IBM
compatible standard label tapes. It can extract a specified file from a tape,
convert the data from EBCDIC to ASCII and write it onto standard output.
Sltread can also read variable format records and multitape files. Sltcopy
makes an accurate copy of all the valid data on a labeled tape; damaged blocks
are discarded (or, optionally, salvaged); and the tape labels are revised to
reflect the changes. Tcopy complements sltcopy; it copies nonlabeled tapes.
It cannot adjust the labels to account for blocks deleted due to input errors.
Tcopy and sltcopy replace "dd" for most tape copy operations, since they are
easier to use and more tolerant of input errors. A "fastdd" program is included
for use when Tcopy and sltcopy are inappropriate. Sltgen is a software package
developed to create labeled tapes for users who want to send files to sites
running an IBM compatible operating system. Output is limited to the
"fixed length blocked" format, and all files on the tape must have the same 
record size and block length. The script depends on features found in the
Korn shell. Sltlib contains three classes of C functions for those who wish to
build their own software to process IBM compatible standard label tapes:
* Volume, dataset, and record management functions
* Fortran compatibility functions
* functions to read and write IBM compatible standard labels
The programmer interface for the volume, dataset, and record management
functions is similar to the one provided by the "open", "read", and "close"
UNIX system calls. The Fortran compatibility functions allow you to use a
Fortran program to extract logical records from a tape without requiring the
use of an external utility, such as "fastdd", to translate data into the
standard UNIX system stream format. The tape label I/O functions are usually
used internally by the data management functions, but they can also be useful
building blocks for constructing special purpose tape management tools such as
tape copy utilities. Documentation for the tape-processing commands consists of
user manuals and manual pages.

Version : 1.0
Price for source : $ 950.00
Price for sublicensing : $ 10000.00
Size of source (K bytes) : 575
Size of object (on 3B20) : 87
Size of docs (K bytes) : 21
Language : C
Provider : Smith, G; Belanger, D; ...
Machines : AT&T 3B20 Operating systems : UNIX System V
Dependencies/Restrictions : none

Tool name: teco-tc TECO-TC - Text Editor and COrrector
This popular text editor on vendor-supplied operating systems for PDP-8,
VAX-11, and PDP-10 computers, is compatible with "TECO-11" for the PDP-11
running under RSX-11, and the VAX-11 running under VAX/VMS. This editor makes
life easier for former users of CRSX-11 and VMS because it provides compatible
editing features that ease the transition from DEC operating systems to UNIX
System V. Major features of the UNIX system TECO-TC are:
- Command Invocation - TECO-TC recognizes the commands "teco", "create"
  (instead of "make") and "mung".  It also supports the initialization files
  "TECO.INI" and "TECO.TEC."
- Terminal Handling - TECO-TC obtains the user's erase, line kill, and
  interrupt characters, as set by "stty", and uses them in place of DELETE,
  ^U, and ^C.
- CRT Support - TECO-TC may be built to use a terminal database. Doing so
  allows TECO-TC to provide CRT-style character and line erase on a wide
  variety of terminals. However, TECO-TC does not support the "W" command or
  the VTEDIT TECO macro.
- File Handling - TECO-TC understands full and relative UNIX pathnames in all
  file-handling commands; the EB command creates back-up files. As in standard
  TECO, TECO-TC breaks text files into logical pages, where a form feed
  character denotes end- of-page.
- Commands - TECO-TC attempts to be as faithful as possible to TECO-11. The
  release notes describe the few discrepancies. Affected commands are: EG, EN,
  and EJ. Commands may be entered as upper, lower, or mixed cases.
- Extensions - TECO-TC provides an EE command to access the UNIX environment
  variables. There is also a way to examine command line arguments (for
  "mung").
Documentation includes manual pages, release notes, and a printable command
reference sheet. Further information can be obtained from DEC's PDP-11
TECO User's Guide.

Version : 1.0
Price for source : $ 450.00
Price for sublicensing : $ 3000.00
Size of source (K bytes) : 445
Size of object (on 3B20) : 76
Size of docs (K bytes) : 41
Language : C
Provider : Kristol, Dave
Machines : AT&T 3B20, DEC VAX, DEC PDP 11/70
Operating systems : UNIX System V
Dependencies/Restrictions :

Tool name: tunex
TUNEX - UNIX OS Performance Tuning Tool TUNEX is a tool for performance tuning
of the UNIX Operating System. TUNEX receives data from "sar", "sadp",
"acctcom", "sysdef", and "mount" and interprets the data using tuning rules
and a number of performance modules. Observations regarding the system are
made and, if applicable, appropriate recommendations follow. TUNEX looks at
the measurement data during a specified period, and if the resource utilization
is high, it searches for the existence of problems such as low cache hit
ratios, inappropriate size of internal tables, inappropriate allocation of
file systems to drives (unbalanced load), deteriorated file systems, etc..
If any of these problems are observed, the problem and a possible remedy are
presented. In some cases, TUNEX will respond that the system is highly
utilized but cannot recommend any tuning changes. TUNEX consists of a main
module and four performance analysis modules. The main module, Monitor, uses
"sar" measurements and the results from the performance modules. It can be
invoked at any time to provide information for a time period during which "sar"
results are available. Presently, TUNEX uses the saved system measurements in
system files and does not keep its own "sar" and accounting measurements. This
is to minimize TUNEX's overhead on the system in terms of cpu time and storage.
Three of the four performance analysis modules need to be run regularly to
provide data that will be used by Monitor. Inclusion of any of these modules
is optional. However, the problem diagnosis and recommendation power of Monitor
increases when more modules are used. Also, any of the performance modules can
be used independently of the rest of TUNEX or can be incorporated or modified
for use in other applications.

Following is a brief description of the four modules.
Disk Cache Sizing Module - This is a module that predicts I/O performance given
the buffer cache is increased to a certain level. This module requires a change
to the UNIX kernel source. This code is included in the package with
instructions of where it must be inserted. The code affects bio.c, main.c, and
sysinfo.h. Consequently, sadc.c and "sar.c" are also changed. The overhead
introduced by this module is on the order of 0.5% - 2% on the cpu.
Dcopy Incentive Module - This module evaluates file system organization and
predicts an approximate performance improvement in terms of disk utilization
after the file system has been reorganized using dcopy(1M) or fscopy(). This
module can be run during off-peak hours and hence does not introduce extra load
during busy periods. However, the data for this module (from "sadp") needs to
be collected during typical busy periods.
File System Configuration Module - This module looks for alternative allocation
of file systems to drives and partitions and presents the one(s) that
minimize(s) maximum disk response times and/or minimize(s) maximum file system
response times. This module can also be run at less busy periods. The data
collected for the dcopy incentive module is used by this module also.
Sticky Bit Analysis Module - This module selects the best candidates for
setting sticky bits. The module does not introduce any load to the system
during busy hours. The saved accounting information is used at off-peak hours
to produce the list of recommended commands.
SOFTWARE-HARDWARE LIMITATIONS - The current version of TUNEX runs on UNIX
System V on both swapping and demand paging releases. Features such as
selection of good candidates for setting sticky bits are more effective on
swapping releases. The current version of TUNEX cannot provide much information
on the paging activities. In addition to "sadp", the I/O system related modules
need other information on disk drives such as size, number cylinders, optimal
gap and min-max seek times. The current version has such information for disk
drives CDC-675meg, CDC-340meg and 72meg. Inclusion of other disk drives in the
list is possible as long as the information listed above is available.

Documentation for TUNEX consists of a memorandum and a manual.

Version : 1.0
Price for source : $ 2200.00
Price for sublicensing : NA
Size of source (K bytes) : 527
Size of object (on 3B20) : 325
Size of docs (K bytes) : 63
Language : C, sh, awk
Provider : Samadi, B
Machines : AT&T 3B2, 3B5, 3B20; DEC VAX
Operating systems : UNIX System V
Dependencies/Restrictions :

Tool name: port3
PORT3 - Mathematical Subroutine Library PORT3 is a library of approximately 600
mathematical subroutines for numeric computation and program development. These
coordinated, modular subroutines cover a wide variety of mathematical
applications. For example, the library includes extensive spline approximation
and interpolation facilities, integration routines that can integrate noisy
intergrands or intergrands with a singularity, and subroutines built around an
efficient extrapolation algorithm for solving ordinary differential equations.
PORT3 also has an extensive group of subroutines for solving linear systems.
There are routines for solving general and complex systems, and banded,
symmetric, and sparse systems. Optimization routines are included to perform
tasks such as nonlinear least squares and linear and quadratic programming.
In addition, PORT3 includes routines for solving sets of time-dependent partial
differential equations in one space dimension, an innovative routine for
integrating stiff systems, quadrature routines, and a self-sorting Fast Fourier
Transform.

The main subjects covered by PORT3 are:
- Approximation, Interpolation, and Extrapolation (42 routines)
- Differential Equations (5 routines)
- Partial Differential Equations (12 routines)
- Linear Algebra and Eigensystems (103 routines)
- Optimization and Mathematical Programming (49 routines)
- Quadrature (14 routines)
- Roots or Zeros (6 routines)
- Special Functions (16 routines)
- Transforms (11 routines)
Single-precision and double-precision versions of all subroutines (where
appropriate) are provided. PORT3 also includes utility programs that encompass
subjects such as random-number generation (uniform or normal variate),
arithmetic utilities, evaluation of expansions in terms of orthogonal
polynomials, operations on one-dimensional arrays (including sorting), and
output printing. Two significant features of PORT3 are the automatic
error-checking programs and dynamic storage allocation. You do not have to
test for errors or provide error-indicating parameters in calls to the
subroutines; scratch storage is automatic and dynamic so you do not have to
include scratch arrays. The PORT3 library is composed mainly of the traditional
areas of numeric computation software. It does not include statistical routines
or duplicate programs that are included in other libraries. Each algorithm has
been carefully selected, tested, and used to ensure its accuracy and
efficiency. Most of the subroutines were developed at AT&T Bell Laboratories.
PORT3 is written in a subset of Fortran 66 that has been successfully compiled
with many different compilers including several Fortran 77 compilers and the
IBM VS FORTRAN. PORT3 runs under most Fortran systems from the very large
(e.g., PORT3 CRAY-1) to the very small (e.g., Apple II). 

Documentation consists of an Installation manual, complete descriptions of
each chapter, and some indexes. The PORT3 libraries can be licensed as a
complete package or each individual PORT3 chapter can be licensed separately. 

Version : 3.0
Price for source : $ 3500.00
Price for sublicensing : $35000.00
Size of source (K bytes) : 4884
Size of object (on 3B20) : 3707
Size of docs (K bytes) : 1658
Language : Fortran
Provider : Schryer, N; Fox, P; Hall, A
Machines : AT&T 3B line, PC 6300, 7300; DEC VAX; IBM PC
Operating systems : UNIX System V
Dependencies/Restrictions :

Tool name: ksh-i
KSH-88 - The KornShell Command and Programming Language KSH-88 is the most
recent version of the KornShell Language described in "The KornShell Command
and Programming Language," by Morris Bolsky and David Korn of AT&T Bell
Laboratories. The KornShell is a shell programming language, which is upward
compatible with "sh" (the Bourne Shell), with many added features. KSH-88
provides an enhanced programming environment in addition to the major
command-entry features of the BSD shell "csh". With KSH-88, medium-sized
programming tasks can be performed at shell- level without a significant loss
in performance. In addition, "sh" scripts can be run on KSH-88 without
modification. A number of enhancements and bug fixes have been made, many of
which were to enhance portability with certain compile options driven by the
characteristics of the target system. Most of the code now conforms to the
IEEE POSIX 1003.1 standard and to the proposed ANSI-C standard. Like the
previous version, KSH-I is designed to accept eight bit character sets
transparently, thereby making it internationally compatible. It can support
multi-byte characters sets with some characteristics of the characters set
given at run time.
KSH-88 provides the following features, which were also inherent in KSH:
- Enhanced Command Re-entry Capability: The KSH-88 history function records
commands entered at any shell level and stores them, up to a user-specified
limit, even after you log off. This allows you to re-enter long commands with
a few keystrokes - even those commands you entered yesterday. The history file
allows for eight bit characters in commands and supports essentially unlimited
size histories.
- In-line Editing: In "sh", the only way to fix mistyped commands is to
backspace or retype the line. KSH-88 allows you to edit a command line using a
choice of EMACS-TC or "vi" functions. You can use the in-line editors to
complete filenames as you type them. You may also use this editing feature when
entering command lines from your history file.
- Extended I/O Capabilities: KSH-88 provides several I/O capabilities not
available in "sh", including the ability to:
 o specify a file descriptor for input o start up and run co-processes
 o produce a prompt at the terminal before a read
 o easily format and interpret responses to a menu 
 o echo lines exactly as output without escape processing
 o read and echo lines ending in "
 o Improved performance: KSH-88 executes many scripts faster than the System V
   Bourne shell. A major reason for this is that many of the functions
   provided by "echo" and "expr" are built-in.
 o Integer Arithmetic: A built-in command in KSH-88 allows you to do integer
   arithmetic in any base from two to thirty-six. Almost the complete set 
   of C language operators are available. Further, variables in arithmetic
   expressions may include one-dimensional arrays. Arithmetic expressions can
   be used to form arguments to commands.
 o Shell Functions and Aliases: Two mechanisms - functions and aliases - can be
   used to assign a user-selected identifier to an existing command or shell
   script. Functions allow local variables and provide scoping for exception
   handling. Functions can be searched for and loaded on first reference the
   way scripts are.
 o Substring Capabilities: KSH-88 allows you to create a substring of any given
   string directly by stripping off leading or trailing substrings during
   parameter substitution. You can also specify attributes, such as upper and
   lower case, field with and justification to shell variables.
 o More pattern matching capabilities: KSH-88 allows you to specify regular
   expressions for file and string matches.
 o Improved debugging: KSH-88 can generate line numbers on execution traces.
   Also, I/O redirections are now traced. There is a DEBUG trap that gets
   evaluated after each command so that errors can be localized.
 o Job Control: On systems that support job control, including System V
   Release 4, KSH-88 provides a job- control mechanism almost identical to that
   of the BSD "csh", version 4.1. This feature allows you to stop and restart
   programs, and to move programs between the foreground and the background.
 o Added security: KSH-88 can execute scripts which do not have read permission
   and scri pts which have the setuid and/or setgid set when invoked by name,
   rather than as an argument to the shell. It is possible to log or control
   the execution of setuid and/or setgid scripts. The noclobber option prevents
   you from accidentally erasing a file by redirecting to an existing file.

Documentation for KSH-88 consists of an "Introduction to KSH-88",
"Compatibility with the Bourne Shell", a manual page and a README file. In
addition, the "KornShell Command and Programming Language," book is available
from Prentice
Version : 88d
Price for source : $ 3000.00
Price for sublicensing : $ 20000.00
Size of source (K bytes) : 614
Size of object (on 3B20) : 377
Size of docs (K bytes) : 161
Language : C
Provider : Korn, David
Machines : AT&T 3Bs, UNIX PC, 6386; VAX; Amdahl; CCI; Sun 3/4/386i; Cray-2;
           Allian
Operating systems : Operating systems : UNIX System V, BSD, Sun OS, Unicos,
                    HP/UX, Ultrix, Domain/IX, UIMPS
Dependencies/Restrictions : none

Tool name: nawk
NAWK - Pattern Scanning and Processing Language NAWK is the newest version of
awk as described by the book "The AWK Programming Language" by Aho, Weinberger,
and Kernighan, published by Addison-Wesley. NAWK contains several bug fixes,
performance, and portability enhancements. Also, the -S and -R options have
been removed and the expression '(i, j, k) in array' permits testing membership
using multiple subscripts. Awk is a programming language which handles simple,
mechanical data manipulation tasks like changing the format of data, checking
its validity, finding items with some property, adding up numbers, printing
reports, and so on. An awk program is a sequence of patterns and actions that
tell what to look for in the input data and what to do when it's found. Awk
searches a set of files for lines matched by any of the patterns; performing
the corresponding actions when they are found. A pattern can select lines by
combinations of regular expressions and comparison operations on strings,
numbers, fields, variables, and array elements. Actions may perform arbitrary
processing on selected lines; the action language looks like C but there are no
declarations, and strings and numbers are built-in data types. Awk scans the
input files and splits each input line into fields automatically. Because so
many things are automatic -- input, field splitting, storage management,
initialization -- awk programs are usually much smaller than they would be in a
more conventional language. Thus one common use of awk is for the kind of data
manipulation suggested above. Programs, a line or two long, are composed at
the keyboard, run once, then discarded. In effect, awk is a general-purpose
programmable tool that can replace a host of specialized tools or programs.
The same brevity of expression and convenience of operations make awk valuable
for prototyping larger programs. One starts with a few lines, then refines the
program until it does the desired job, experimenting with designs by trying
alternatives quickly. Because awk programs are short, it's easy to get started,
and easy to start over when experience suggests a different direction. And it's
straightforward to translate an awk program into another language once the
design is right.

Documentation for NAWK consists of a manual page. 

Version : 2.0
Price for source : $ 300.00
Price for sublicensing : $ 5000.00
Size of source (K bytes) : 120
Size of object (on 3B20) : 230
Size of docs (K bytes) : 5
Language : C, lex, yacc
Provider : Aho; Weinberger; Kernighan
Machines : AT&T 3B2, 5, 20; UNIX PC; DEC; IBM; Motorola
Operating systems : UNIX System V; BSD, XENIX
Dependencies/Restrictions : Use with awkcc for increased efficiency.

Tool name: cscope
CSCOPE - Interactive C Program Analyzer CSCOPE is a menu driven, interactive
cross-reference tool that can help a programmer quickly analyze an unfamiliar
C program and fix bugs or update parts of the code without having to learn the
entire program. CSCOPE combines the best features of tools such as "cxref,"
"cflow," and "grep," along with a convenient interface to a text editor of the
user's choice. Among the functions CSCOPE performs are:
* Locating all references to a specific C symbol such as getchar
* Locating a specific function and identifying the other functions that call,
  or are called by, that function
* Making global changes in all source files and verifying that changes have
  been made
* Answering questions such as "where does the message 'out of space' come
  from?" When CSCOPE is invoked, it builds a symbol cross-reference table for
  the source file and displays a menu. If you select a menu item and type the
  search text, CSCOPE displays a list that contains the information you
  requested. For example, a search for a C language symbol results in a list
  that shows the files, functions, and lines that contain the symbol. At this
  point, a single keystroke puts you into your editor at the beginning of the
  line you selected. Searches for calling functions or functions called,
  strings, and text to be changed result in similar displays. CSCOPE allows you
  to stack CSCOPE-editor calls. If you are in the editor and see something of
  interest, you can call CSCOPE from within the editor and continue your
  examination or modification of the program. When you leave the second call to
  CSCOPE, you will return to the original point you were at in the editor.

CSCOPE is menu driven and has single character commands. It confirms that a
command has been recognized and provides feedback while the command is being
processed. CSCOPE is especially useful in the design stage of a program or when
an unfamiliar program has to be analyzed. It can also be used to complement
"sdb" in debugging a program. 

Cscope Version 8.7 Enhancements You can use regular expressions (regcmp(3X)
regular expressions (see the UNIX(R) System V Programmer Reference Manual),
which are sightly different than egrep regular expressions) in these input
fields Find this C symbol: Find this function or #define: Find functions called
by this function: Find functions calling this function: Find this file: Find
files #including this file:

If there is a cscope.files file in the current directory, cscope will get the
list of files from it, as if you had typed
	cscope -i cscope.files
When searching for a C symbol, <global> references are displayed first to make
it easy to find the definition of a symbol. To speed up output, some startup
messages have been eliminated, curses(3X) is used, and the text of input fields
and mouse menus is shorter. The -b option only builds the cross-reference. Use
it when using cscope with the batch or at commands. The -n options (where n is
0-8) will go to input field n and search for the following text argument, e.g.
"-2 main" will find function main. C++ comments (// comment) are recognized.

The documentation for CSCOPE consists of a manual page.

Version : 8.7
Price for source : $ 300.00
Price for sublicensing : $ 1000.00
Size of source (K bytes) : 157
Size of object (on 3B20) : 341
Size of docs (K bytes) : 7
Language : C
Provider : Steffen, Joseph
Machines : AT&T 3B20, 3B2; DEC VAX, 11/70; IBM S370 Compat.
Operating systems : UNIX System V, UNIX System V VM; BSD
Dependencies/Restrictions : terminfo or curses libraries



More information about the Comp.sys.sgi mailing list