describe, descc, descu version 1.0.2. This version was updated

by Soenke Behrens.  See the readme for change details.
This commit is contained in:
gdr 1996-01-22 02:40:50 +00:00
parent 3a79f5a3a6
commit c6cf2a3fa4
13 changed files with 464 additions and 165 deletions

View File

@ -1,14 +1,14 @@
$Id: README,v 1.1 1996/01/22 01:37:59 gdr Exp $
$Id: README,v 1.2 1996/01/22 02:40:43 gdr Exp $
This is the README file for the describe package. This package is
designated as version 1.0.1, and consists of the following utilities:
designated as version 1.0.2, and consists of the following utilities:
describe v1.0.1 - show database entries describing the current
describe v1.0.2 - show database entries describing the current
status of programs
descc v1.0.1 - the describe source compiler
descc v1.0.2 - the describe source compiler
descu v1.0 - the describe source updater
descu v1.0.2 - the describe source updater
ABOUT DESCRIBE AND DESCC
========================
@ -21,9 +21,10 @@ different people are releasing these days. The reason it sat around on
my harddrive so long is I was having qualms about its designated role in
life. I wasn't sure exactly what I wanted it to do. Well, I've decided
to KISS for now: descc simply compiles the utility list, which I maintain,
into a (very) simple "database" located in /usr/local/lib/. The companion
utility 'describe' is used to fetch information about a particular utility
from this "database".
into a (very) simple "database" located in /usr/local/lib/
[alternatively, the full path given in the environment variable DESCDB will be
used, if it is set. sb]. The companion utility 'describe' is used to
fetch information about a particular utility from this "database".
descc is fairly limited, as is the "database" format itself. Part of the
KISS (or it wouldn't be out now) design philosophy ;). Usage is simple:
@ -81,7 +82,18 @@ CHANGES
This details changes to the entire distribution.
v1.1 May 1995
v1.02 October 1995
descc now circumvents a bug in ORCA/C's ftell() function.
describe can now find entries that are not all lower-case.
describe will now print the name of entries in the case
they were entered into the database.
descu now sorts the describe source file case-insensitive.
describe and descc can now find the database in a path given
by the environment variable DESCDB. If DESCDB is not set,
/usr/local/lib/describe is used, as before.
A new "Shell:" field has been added to the format of the database.
v1.01 May 1995
Initial release for descu.
Added -h and -v flags to describe and descc.
Common defines and typedefs were extracted to desc.h.
@ -102,9 +114,12 @@ AUTHORS
The original describe and descc utilities and the describe format were
written by James Brookes <jamesb@ecst.csuchico.edu>.
The descu utility and v1.1 modifications to describe and descc were by
The descu utility and v1.01 modifications to describe and descc were by
Devin Reade <gdr@myrias.ab.ca>.
v1.02 modifications to describe, descc and descu were by Soenke Behrens
<sbehrens@contech.demon.co.uk>.
LEGALESE
========

View File

@ -9,10 +9,11 @@
#define FIELD_LEN 9
#define NAME_LEN 34
#define MAX_LINE_LENGTH 81
#define FIELD_COUNT 6 /* number of fields below, not including comments */
#define FIELD_COUNT 7 /* number of fields below, not including comments */
#define NAME "Name: "
#define VERSION "Version: "
#define SHELL "Shell: "
#define AUTHOR "Author: "
#define CONTACT "Contact: "
#define WHERE "Where: "
@ -20,6 +21,7 @@
#define NAME_SHORT "Name:"
#define VERSION_SHORT "Version:"
#define SHELL_SHORT "Shell:"
#define AUTHOR_SHORT "Author:"
#define CONTACT_SHORT "Contact:"
#define WHERE_SHORT "Where:"

View File

@ -1,4 +1,4 @@
.TH DESCC 8 "System Administration" "7 May 1995" "Version 1.0.1"
.TH DESCC 8 "System Administration" "7 May 1995" "Version 1.0.2"
.SH NAME
descc \- the describe(1) source compiler
.SH SYNOPSIS
@ -19,12 +19,13 @@ and saves the result to the system describe database.
The describe source file consists of comments and records. A comment
is any line starting with the
.BR #
character. Each record consists of seven fields. The first
six consist of one line of text and begin with the following identifiers:
character. Each record consists of eight fields. The first
seven consist of one line of text and begin with the following identifiers:
.nf
Name: (The name of the program.)
Version: (The current version number.)
Shell: (The shell(s) the program was written for.)
Author: (The author or maintainer of the program.)
Contact: (How to contact the Author, typically an
email address.)
@ -38,16 +39,17 @@ a brief description of the program. The following is an example of
a complete record:
.nf
Name: descc
Version: 1.0.1
Name: describe
Version: 1.0.2
Shell: ORCA/Shell, GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/local/bin
FTP: ftp.cco.caltech.edu
Print a multi-line description obtained from the compiled
'describe' database; giving utility name, version, author,
author's contact, where the utility is, as well as where the
Print a multi-line description obtained from the compiled
'describe' database; giving utility name, version, intended shell,
author, author's contact, where the utility is, as well as where the
utility can be FTPd from on the InterNet.
.fi
@ -69,13 +71,22 @@ in the following format:
4 bytes: Long Int, offset of the \fBrecord\fR in file.
Records
7 variable-length NULL-terminated strings.
8 variable-length NULL-terminated strings.
.fi
.SH FILES
/usr/local/lib/describe \- the system
.B describe
database.
database. If the environment variable
.B DESCDB
is set, its value will be used instead.
.SH ENVIRONMENT
.IP DESCDB
Full path to the system describe database. If
.B DESCDB
is set, its value is used instead of the default location
/usr/local/lib/describe.
.SH AUTHOR
James Brookes <jamesb@ecst.csuchico.edu>.
.SH "SEE ALSO"

View File

@ -1,6 +1,10 @@
/* */
/* descc - compile info file into describe database file */
/* */
/* v1.0.2 - One bug removed. Recompiled to accomodate new */
/* SHELL line and DESCDB environment var */
/* Soenke Behrens [Sun Oct 22 1995] */
/* */
/* v1.0.1 - Added -h and -V flags [Sat May 06 1995] */
/* Extracted certain #defines to "desc.h" */
/* Now uses getopt for command line parsing. */
@ -26,7 +30,7 @@
/* */
/* Records */
/* */
/* 7 variable-length Null-terminated strings. */
/* 8 variable-length Null-terminated strings. */
/* */
#pragma optimize 15
@ -38,7 +42,7 @@
#include <assert.h>
#include "desc.h"
#define _VERSION_ "v1.0.1"
#define _VERSION_ "v1.0.2"
/* prototypes */
@ -114,6 +118,7 @@ int main (int argc, char **argv) {
int2 lines, namecount, i, j;
nameEntry nameStruct;
int c, errflag;
char *db_path;
/* initialize globals */
Vflag=0;
@ -125,6 +130,24 @@ int main (int argc, char **argv) {
assert(sizeof(int2)==2);
assert(sizeof(int4)==4);
/* Get database path: If DESCDB is set, use it,
otherwise use DATABASE */
if (getenv("DESCDB") == 0)
{
if ((db_path = strdup(DATABASE)) == 0)
{
fprintf(stderr,"couldn't allocate path variable\n");
exit (-1);
}
} else {
if ((db_path = strdup(getenv("DESCDB"))) == 0)
{
fprintf(stderr,"couldn't allocate path variable\n");
exit (-1);
}
}
/* parse command line */
while ((c = getopt(argc, argv, "hV")) != EOF) {
switch (c) {
@ -138,23 +161,29 @@ int main (int argc, char **argv) {
}
}
if (errflag || (argc-optind != 1))
{
free (db_path);
usage(basename(argv[0]));
}
/* open input and output files */
if ((buffer = malloc (MAX_LINE_LENGTH)) == NULL) {
fprintf(stderr,"couldn't allocate line buffer\n");
free (db_path);
exit (-1);
}
if ((FInPtr = fopen(argv[argc-1],"r")) == NULL) {
fprintf(stderr,"Error opening %s; exiting.\n",argv[argc-1]);
free (db_path);
free(buffer);
exit(1);
}
if ((FOutPtr = fopen(DATABASE,"wb+")) == NULL) {
fprintf(stderr,"Error opening database file %s; exiting.\n",DATABASE);
if ((FOutPtr = fopen(db_path,"wb+")) == NULL) {
fprintf(stderr,"Error opening database file %s; exiting.\n",db_path);
free (db_path);
free(buffer);
exit(1);
}
@ -164,13 +193,13 @@ int main (int argc, char **argv) {
namecount = 0;
/* space for # of array entries */
fwrite(&namecount,sizeof(namecount),1,FOutPtr);
fwrite((void *)&namecount,sizeof(namecount),1,FOutPtr);
while(mygets(buffer,&lines,FInPtr) != -1) {
if (!strncmp(buffer,NAME,FIELD_LEN)) { /* found a match */
strncpy(nameStruct.name,&buffer[FIELD_LEN],NAME_LEN-1);
nameStruct.name[NAME_LEN-1] = '\0';
fwrite(&nameStruct,sizeof(nameStruct),1,FOutPtr);
fwrite((void *)&nameStruct,sizeof(nameStruct),1,FOutPtr);
namecount++;
}
}
@ -181,21 +210,27 @@ int main (int argc, char **argv) {
exit(-1);
}
rewind(FInPtr);
fflush(FInPtr);
buffer[0] = '\0';
lines = 0;
fprintf(FOutPtr,"\t");
fputc('\t',FOutPtr);
/* Increment to first field */
while (strncmp(buffer,NAME,FIELD_LEN)) /* found a match! */
mygets(buffer,&lines,FInPtr);
{ /* BUGBUG 22/10/95 Soenke Behrens */
/* ORCA/C does not advance the file position indicator */
/* correctly after above fputc(). This tries to remedy */
/* the situation. Take out once library has been fixed */
fprintf(FOutPtr,"Junk");
fseek(FOutPtr,-4,SEEK_CUR);
}
/* Write out records and keep track of their file offsets */
for (i = 0; i < namecount; i++) {
record_locs[i] = ftell(FOutPtr);
/* print out <Version>, <Author>, <Contact>, <Where>, <FTP> */
/* print out <Version>, <Shell>, <Author>, <Contact>, <Where>, <FTP> */
for (j = 0; j < FIELD_COUNT-1; j++) {
buffer[FIELD_LEN] = '\0';
mygets(buffer,&lines,FInPtr);
@ -208,13 +243,13 @@ int main (int argc, char **argv) {
if (!strncmp(buffer,NAME,FIELD_LEN)) break;
fprintf(FOutPtr,"%s ",buffer);
}
fprintf(FOutPtr,"\n");
fputc('\n',FOutPtr);
}
endOfFile = ftell(FOutPtr);
fflush(FOutPtr); /*gdr 1*/
rewind(FOutPtr);
fwrite(&namecount,sizeof(namecount),1,FOutPtr);
fwrite((void *)&namecount,sizeof(namecount),1,FOutPtr);
fflush(FOutPtr); /*gdr 1*/
/* time to go through the record_locs array and backpatch in */
@ -225,12 +260,13 @@ int main (int argc, char **argv) {
fread(&nameStruct,sizeof(nameStruct),1,FOutPtr);
fseek(FOutPtr,-(sizeof(nameStruct)),SEEK_CUR);
nameStruct.offset = record_locs[i];
fwrite(&nameStruct,sizeof(nameStruct),(size_t) 1,FOutPtr);
fwrite((void *)&nameStruct,sizeof(nameStruct),(size_t) 1,FOutPtr);
fflush(FOutPtr);
}
fseek(FOutPtr,endOfFile,SEEK_SET);
fclose(FOutPtr);
free(db_path);
free(record_locs);
free(buffer);

View File

@ -0,0 +1,10 @@
Name: descc
Version: 1.0.2
Shell: ORCA/Shell, GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/sbin
FTP: ftp.cco.caltech.edu
Compile a source file into a 'describe' database file.

View File

@ -1,4 +1,4 @@
.TH DESCRIBE 1 "Commands and Applications" "7 May 1995" "Version 1.0.1"
.TH DESCRIBE 1 "Commands and Applications" "7 May 1995" "Version 1.0.2"
.SH NAME
describe \- show information about a program
.SH SYNOPSIS
@ -13,6 +13,7 @@ This information includes:
The name of the program;
The program version number;
The shell the program was written for;
The author (or the person currently maintaining the program);
Contact information for the author;
Where the utility should be installed;
@ -35,7 +36,16 @@ uses a database compiled by
.SH FILES
/usr/local/lib/describe \- the system
.B describe
database.
database. If the environment variable
.B DESCDB
is set, its value will be used instead.
.SH ENVIRONMENT
.IP DESCDB
Full path to the system describe database. If
.B DESCDB
is set, its value is used instead of the default location
/usr/local/lib/describe.
.SH AUTHOR
James Brookes <jamesb@ecst.csuchico.edu>.
.SH "SEE ALSO"

View File

@ -16,7 +16,7 @@
#include <getopt.h>
#include "desc.h"
#define _VERSION_ "v1.0.1"
#define _VERSION_ "v1.0.2"
/* prototypes */
@ -62,15 +62,24 @@ void myprintf(char *string, int wordwrap_size) {
void print_entry(FILE *FInPtr, long int index) {
char *buffer;
int i;
buffer = (char *) malloc (1024);
if ((buffer = (char *) malloc (1024)) == 0)
{
fprintf(stderr,"couldn't allocate buffer\n");
exit (-1);
}
fseek(FInPtr,index,SEEK_SET);
printf("%s",VERSION);
fgets(buffer,MAX_LINE_LENGTH,FInPtr);
printf("%s",buffer);
printf("%s",SHELL);
fgets(buffer,MAX_LINE_LENGTH,FInPtr);
printf("%s",buffer);
printf("%s",AUTHOR);
fgets(buffer,MAX_LINE_LENGTH,FInPtr);
printf("%s",buffer);
@ -103,8 +112,9 @@ int main (int argc, char **argv) {
int2 verbose, numOfEntries, cmp, offset1, offset2, check, i;
nameEntry nameStruct;
int c, errflag;
char *p;
char *p, *tmp;
char *db_path;
#ifdef STACK_CHECK
begin_stack_check();
#endif
@ -113,6 +123,24 @@ int main (int argc, char **argv) {
Vflag = FALSE;
errflag = FALSE;
/* Get database path: If DESCDB is set, use it,
otherwise use DATABASE */
if (getenv("DESCDB") == 0)
{
if ((db_path = strdup(DATABASE)) == 0)
{
fprintf(stderr,"couldn't allocate path variable\n");
exit (-1);
}
} else {
if ((db_path = strdup(getenv("DESCDB"))) == 0)
{
fprintf(stderr,"couldn't allocate path variable\n");
exit (-1);
}
}
while ((c = getopt(argc,argv,"hvV")) != EOF) {
switch (c) {
case 'v':
@ -128,17 +156,21 @@ int main (int argc, char **argv) {
}
}
if (errflag || (argc-optind != 1))
{
free (db_path);
usage(basename(argv[0]));
}
if ((FInPtr = fopen(DATABASE,"r")) == NULL) {
if ((FInPtr = fopen(db_path,"rb")) == NULL) {
perror("couldn't open database");
free (db_path);
exit(-1);
}
fread(&numOfEntries,2,1,FInPtr);
offset1 = 0;
offset2 = numOfEntries-1;
strcpy(searchName,argv[optind]);
i=0;
p = searchName;
@ -154,26 +186,41 @@ int main (int argc, char **argv) {
check = ((offset2-offset1)/2) + offset1;
fseek(FInPtr,2+(check*sizeof(nameEntry)),SEEK_SET);
fread(&nameStruct,sizeof(nameEntry),1,FInPtr);
if((tmp = strdup(nameStruct.name)) == 0)
{
fprintf(stderr,"couldn't copy name string\n");
free (db_path);
exit (-1);
}
p = nameStruct.name;
while (*p) {
*p = tolower(*p);
p++;
}
cmp = strcmp(nameStruct.name,searchName);
if (verbose)
printf(" checked %s\n",nameStruct.name);
printf(" checked %s\n",tmp);
if (cmp > 0) {
if (cmp > 0) { /* name bigger than searchName */
offset2 = check-1;
} else if (cmp < 0) {
} else if (cmp < 0) { /* name smaller than searchName */
offset1 = check+1;
} else {
if (verbose) {
printf("Found entry %s!\n",searchName);
printf("Found entry %s!\n",tmp);
#ifdef STACK_CHECK
printf("Stack: %d\n",end_stack_check());
#endif
exit(0);
free (db_path);
free (tmp);
exit(0);
}
printf("%s%s\n",NAME,searchName);
printf("%s%s\n",NAME,tmp);
free (db_path);
free (tmp);
print_entry(FInPtr,nameStruct.offset);
}
@ -182,6 +229,8 @@ int main (int argc, char **argv) {
#ifdef STACK_CHECK
printf("Stack: %d\n",end_stack_check());
#endif
free (db_path);
free (tmp);
exit(1);
}
}

View File

@ -0,0 +1,13 @@
Name: describe
Version: 1.0.2
Shell: ORCA/Shell, GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/local/bin
FTP: ftp.cco.caltech.edu
Print a multi-line description obtained from the compiled 'describe'
database; giving utility name, version, intended shell, author, author's
contact, where the utility is, as well as where the utility can be FTPd
from on the InterNet.

View File

@ -1,5 +1,5 @@
#=============================================================================
# List of shell applications for GNO/ME Last revision: 07 May 95
# List of shell applications for GNO/ME Last revision: 22 Oct 95
#=============================================================================
#
# About this file
@ -7,22 +7,28 @@
# This file is in human readable form, but is intended to be compiled with
# the program 'descc' into the 'describe' database. Just type 'descc
# <filename>', where <filename> is the name you saved this file to, and
# descc will compile the file into the file /usr/local/lib/describe. Make
# sure the directory structure '/usr/local/lib/' exists first! Information
# may be later culled from the file with the command 'describe <utility>'.
# descc will compile the file into the file /usr/local/lib/describe, or
# alternatively into a file named 'describe' in the path given by the
# environment variable DESCDB. Make sure the path that DESCDB points to
# or /usr/local/lib exist first! Information may be later culled from the
# file with the command 'describe <utility>'.
#
# While this file may be updated manually, new entries and updates may
# also be merged through the use of 'descu'.
#
# This file is sorted lexicographically based on the Name field. This
# means that any names starting with capital letters will appear before
# those starting with lower case letters.
# This file is sorted lexicographically, ignoring case, based on the
# Name field.
#
# Send additions/corrections to:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# James Brookes
# Online home of describe
# ~~~~~~~~~~~~~~~~~~~~~~~
# http://www.webzone1.co.uk/www/thesonkpage/describe.htm
# ftp://ftp.cco.caltech.edu/pub/apple2/shellutils/
#
# jamesb@ecst.csuchico.edu
# Updates and corrections may be submitted through the web page,
# or sent by email to sbehrens@contech.demon.co.uk.
#
# If you have trouble connecting to www.webzone1.co.uk,
# try webzone1.co.uk or 194.72.60.96.
#
# To obtain the version number of a file:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -34,17 +40,9 @@
# actually mean the original author of the program.
#==============================================================================
Name: DRWM
Version: 2.01
Author: Dave J. Roberts
Contact: dave@mary.iia.org
Where: /usr/X/bin
FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
Davis Rex Window Manager. A window manager for GNO.
Name: argv0
Version: 1.0
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -55,6 +53,7 @@ shell scripts with #!/... syntax. Runs s16 programs with arguments.
Name: aw30
Version: 1.0
Shell: GNO/ME
Author: Robert Hill
Contact: rhill@eecs.ukans.edu
Where: /usr/local/bin
@ -66,6 +65,7 @@ terminal types.
Name: bc
Version: 1.01
Shell: GNO/ME
Author: Frank Petroski
Contact:
Where: /usr/bin
@ -78,6 +78,7 @@ POSIX P1003.2/D11 draft standard. Copyright Free Software Foundation.
Name: bed
Version: 1.1.1
Shell: GNO/ME
Author: Phil Vandry
Contact: vandry@cam.org
Where: /usr/local/bin
@ -88,6 +89,7 @@ in the file. Intended for editing binary files.
Name: binprint
Version: 1.2
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -97,34 +99,28 @@ FTP:
Name: bison
Version: 1.19
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: schaf@meadow.muc.de
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ...
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/source/
A port of the FSF's yacc replacement. bison is part of the GNU project.
yacc is a parser generator (also known as "compiler compiler").
Name: booz
Version: 2.0
Version: 2.01
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: schaf@meadow.muc.de
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ...
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils
Unpacks files that were packed with Zoo 2.1 or earlier.
Name: cal
Version: x
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
FTP:
Prints a calendar for the current month or any month.
Name: calls
Version: 2.0 (16 Dec 93)
Shell: GNO/ME
Author: Ported by Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/local/bin
@ -134,28 +130,41 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu.
functions within a program. It's more flexible than Orca shell version.
Requires cpp.
Name: cal
Version: x
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
FTP:
Prints a calendar for the current month or any month.
Name: cclean
Version: 1.02
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
FTP: Part of occ package
For use with occ. Remove the lines ccprep put into a source file from that
source file. Part of the occ 1.12 distribution.
Name: ccprep
Version: 1.1
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
FTP: Part of occ package
For use with occ. Puts a "#line 2" statement into source files to
get around problems with occ 1.12 and ORCA/C 2.03.
Name: chat
Version: 1.0
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -166,6 +175,7 @@ for replies, etc..
Name: chmod
Version: 1.0
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /bin
@ -176,6 +186,7 @@ including the read, write, destroy, backup, and invisible bits.
Name: copycat
Version: 1.4.1
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/bin
@ -186,6 +197,7 @@ can be used as a simple dumb terminal program.
Name: cron
Version: x
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/sbin
@ -195,6 +207,7 @@ FTP: ...
Name: cu
Version: 1.0
Shell: GNO/ME
Author: Dave J. Roberts
Contact: daver@interactive.net
Where: /usr/local/bin
@ -204,6 +217,7 @@ A simple dialup utility.
Name: date
Version: 1.2
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -212,7 +226,8 @@ FTP: ...
Shows the date and time (optionally, continuously).
Name: descc
Version: 1.0.1
Version: 1.0.2
Shell: ORCA/Shell, GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/sbin
@ -221,18 +236,21 @@ FTP: ftp.cco.caltech.edu
Compile a source file into a 'describe' database file.
Name: describe
Version: 1.0.1
Version: 1.0.2
Shell: ORCA/Shell, GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/local/bin
FTP: ftp.cco.caltech.edu
Print a multi-line description obtained from the compiled 'describe'
database; giving utility name, version, author, author's contact, where the
utility is, as well as where the utility can be FTPd from on the InterNet.
database; giving utility name, version, intended shell, author, author's
contact, where the utility is, as well as where the utility can be FTPd
from on the InterNet.
Name: descu
Version: 1.0
Version: 1.0.2
Shell: ORCA/Shell, GNO/ME
Author: Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/sbin
@ -240,8 +258,19 @@ FTP: ftp.cco.caltech.edu
Update a 'describe' source file.
Name: dialup
Version: 1.1
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/sbin
FTP: ...
Run from inittab to handle modems on dialup lines.
Name: dial
Version: 1.0
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -250,17 +279,9 @@ FTP: ...
Uses your modem to dial telephone numbers stored in a database by name,
or looks up the numbers and reports without dialing.
Name: dialup
Version: 1.1
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/sbin
FTP: ...
Run from inittab to handle modems on dialup lines.
Name: dmake
Version: 1.0 (4 Jul 94)
Shell: GNO/ME
Author: Ported by Devin Reade.
Contact: gdr@myrias.ab.ca
Where: /usr/local/bin
@ -268,8 +289,19 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu.
A Unix-style make utility for automated compilation.
Name: DRWM
Version: 2.01
Shell: GNO/ME
Author: Dave J. Roberts
Contact: dave@mary.iia.org
Where: /usr/X/bin
FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
Davis Rex Window Manager. A window manager for GNO.
Name: dsort
Version: 1.0 (14 Jun 94)
Shell: GNO/ME
Author: Devin Reade.
Contact: gdr@myrias.ab.ca
Where: /usr/local/bin
@ -280,6 +312,7 @@ with msort.
Name: dsplit
Version: 1.0 (19 Dec 93)
Shell: GNO/ME
Author: Ported by Devin Reade.
Contact: gdr@myrias.ab.ca
Where: /usr/local/bin
@ -291,6 +324,7 @@ resource fork) file.
Name: eps
Version: 1.0
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/bin
@ -300,6 +334,7 @@ FTP: ...
Name: expr
Version: 1.1
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -310,6 +345,7 @@ scientific notation. Uses C like syntax.
Name: finger
Version: 1.1
Shell: GNO/ME
Author: Leslie M. Barstow III
Contact: wdphoenix@delphi.com
Where: /usr/bin
@ -322,32 +358,45 @@ further information.
Name: flex
Version: 2.38
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: schaf@meadow.muc.de
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ...
FTP: ftp://grind.isca.uiowa.edu/2/apple2/nodak/gs/shell.stuff/
A port of the FSF's lex replacement. flex is part of the GNU project.
lex is a tokenizer generator, to be used in conjunction with yacc. Note
that due to the way the FSF writes their code (yuck), flex has some problems
with ints being 16-bit instead of 32-bit on the GS. A version that fixes
these problems will be released as soon as the more annoying bugs are out
of ORCA/C 2.0.1.
with ints being 16-bit instead of 32-bit on the GS..
Name: fmake
Version: 1.0
Shell: ORCA/Shell, GNO/ME
Author: Felix Blank
Contact: schaf@meadow.muc.de
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ...
fmake is Unixish make utility. It only understands a small subset of make
fmake is a Unixish make utility. It only understands a small subset of make
commands, though, barely enough to maintain small projects. Written originally
by Felix Blank, now "maintained" by Soenke Behrens. The need for this utility
vanished with the advent of dmake.
by Felix Blank. The need for this utility vanished with the advent of dmake.
Name: fortune
Version: 1 (941115)
Shell: GNO/ME
Author: Douglas E. Mitton
Contact: dmitton@mulberry.com
Where: /usr/bin, /etc
FTP: grind.isca.uiowa.edu, GEnie A2Pro #4402
'fortune.shk' (71k) is a simple shell utility which displays
a random fortune. It contains a text based fortune collection.
The ORCA/C source is included. I ported this from a QNX2 shell
utility.
Name: ftn
Version: 1.1 (11 Oct 94)
Shell: GNO/ME
Author: Dave J. Roberts. Version 1.1 changes by Devin Reade.
Contact: daver@rush.cc.edu, droberts@chaos.bsu.edu
Where: /usr/local/bin
@ -357,6 +406,7 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
Name: getvers
Version: 1.2
Shell: GNO/ME
Author: Ian Schmidt
Contact: irsman@iastate.edu
Where: /usr/bin
@ -367,6 +417,7 @@ other information the author wishes to include, printing it to standard out.
Name: gzip
Version: 1.2.4 (Gno)
Shell: GNO/ME
Author: Joseph Lee
Contact: eaiu410@ea.oac.uci.edu
Where: /usr/local/bin
@ -375,17 +426,9 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
GNU zip -- compress or expand files. Ported from the Free Software
Foundation's gzip. Also has functionality of gunzip and gzcat.
Name: init
Version: 1.0
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
FTP: ...
Sends commands to the init daemon.
Name: initd
Version: 1.4
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/sbin
@ -394,8 +437,19 @@ FTP: ...
Starts and kills processes, maintains the system run level, and runs
syslogd (log daemon)
Name: init
Version: 1.0
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
FTP: ...
Sends commands to the init daemon.
Name: joinpara
Version: 1.0 (16 Dec 93)
Shell: GNO/ME
Author: Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/local/bin
@ -407,6 +461,7 @@ processor documents.
Name: last
Version: 1.1
Shell: GNO/ME
Author: Steve Reeves
Contact: Internet: reevess@cse.fau.edu, GEnie: S.REEVES2
Where: /usr/bin
@ -418,6 +473,7 @@ It is only useful with GNO's Multi-User package.
Name: machtype
Version: 1.4
Shell: GNO/ME
Author: Ian Schmidt
Contact: irsman@iastate.edu
Where: /usr/bin
@ -428,6 +484,7 @@ memory, versions of GNO, GS/OS, and the ROM, accelerator type if any, and more.
Name: makedmake
Version: 1.1.1 (16 Jan 94)
Shell: GNO/ME
Author: Ported by Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/local/bin
@ -439,6 +496,7 @@ This is a particularily brain-dead port that will likely be superceded.
Name: makewhatis
Version: 1.1 (29 May 94)
Shell: GNO/ME
Author: Devin Reade.
Contact: gdr@myrias.ab.ca
Where: /usr/sbin
@ -447,16 +505,18 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
Generates the whatis database used by apropos(1) and whatis(1).
Name: martian
Version: ??
Version: 1.0
Shell: GNO/ME
Author: Soenke Behrens
Contact: schaf@meadow.muc.de
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin or /usr/local/games
FTP: ...
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils/
Creates martian poetry in nroff format.
Name: mem
Version: 1.2
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -466,6 +526,7 @@ FTP: ...
Name: mkdir
Version: 1.2
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /bin
@ -475,6 +536,7 @@ FTP: ...
Name: mkfs
Version: 1.0
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -484,6 +546,7 @@ FTP: ...
Name: msort
Version: 1.0 (14 Jun 94)
Shell: GNO/ME
Author: Devin Reade.
Contact: gdr@myrias.ab.ca
Where: /usr/local/bin
@ -494,6 +557,7 @@ with dsort.
Name: mugs
Version: 3.0
Shell: GNO/ME
Author: Brian Tao
Contact: taob@io.org
Where: /usr/bin
@ -503,18 +567,19 @@ FTP: ionews.io.org:/pub/apple/16bit/GNO
processor. Utilities for creating message packets on the UNIX system
and delivering replies are included. MicroEMACS 3.11c is required.
Name: newuser
Version: 1.0
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/sbin
FTP: ...
Name: ndp
Version: 1.08
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils/
Create a home directory with basic gshrc for a new user, and add user
into /etc/passwd file for immediate access.
Merges a FIDO nodediff into a FIDO nodelist
Name: newuserv
Version: 1.0
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/sbin
@ -523,18 +588,31 @@ FTP: ...
Create a home directory with basic gshrc for new user, and add user
to /var/adm/newuser/newusers file for validation by the system operator.
Name: newuser
Version: 1.0
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/sbin
FTP: ...
Create a home directory with basic gshrc for a new user, and add user
into /etc/passwd file for immediate access.
Name: occ
Version: 1.12
Version: 1.13
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils/
Unixish front-end for ORCA/C. Particularly useful in combination with
dmake. Requires ORCA/C 2.0.3 (compiler version 2.0.2).
Name: parent
Version: 1.0
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -545,6 +623,7 @@ level process.
Name: phone
Version: 1.0.1
Shell: GNO/ME
Author: Robert Hill
Contact: rhill@eecs.ukans.edu
Where: /usr/bin
@ -555,6 +634,7 @@ split-screen format.
Name: rdial
Version: 1.1 (28 Feb 95)
Shell: GNO/ME
Author: Jeremy Rand.
Contact: <u8902848@muss.mcmaster.ca>
Where: /usr/local/bin
@ -564,6 +644,7 @@ Auto redial a system with a login script.
Name: rmdir
Version: 1.0 (28 Nov 94)
Shell: GNO/ME
Author: Devin Reade.
Contact: gdr@myrias.ab.ca
Where: /bin
@ -572,18 +653,32 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
Remove empty directories.
Name: rndname
Version: 4.0
Version: 4.1
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: schaf@meadow.muc.de
Where: /usr/local/bin or /usr/local/games
FTP: ...
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin or /usr/games
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils
Creates random names by a set of certain rules. Great if you have to come
up with names for your next RPG session and hate having to think up 20+
silly-sounding names all by yourself :)
Creates random names by a set of certain rules.
Name: rsound
Version: 1.1a
Shell: GNO/ME
Author: Douglas E. Mitton
Contact: dmitton@mulberry.com
Where: /usr/bin
FTP: grind.isca.uiowa.edu, GEnie A2Pro #4762
'GNO.rSound.SHK' (76K) is a shell utility which will list and
play any installed rSound in the '*:system:sounds' directory.
ORCA/C source is included as well as 2 home made rSound samples.
This program was written as an example with input from various
A2Pro personalities. "Add sounds to all your scripts, etc."
Name: rtf2text
Version: 1.0.6
Shell: GNO/ME
Author: Robert Hill
Contact: rhill@eecs.ukans.edu
Where: /usr/bin
@ -593,6 +688,7 @@ FTP: ...
Name: scpp
Version: 1.1 (15 Feb 94)
Shell: GNO/ME
Author: Ported by Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/bin
@ -604,6 +700,7 @@ to read by removing unnecessary code (such as that for other architectures).
Name: sendmail
Version: 1.1
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/lib/
@ -614,6 +711,7 @@ destinations.
Name: setvers
Version: 1.0.2
Shell: GNO/ME
Author: Ian Schmidt
Contact: irsman@iastate.edu
Where: /usr/bin
@ -624,6 +722,7 @@ other information the author wishes to include.
Name: su
Version: 1.0
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /bin
@ -633,6 +732,7 @@ FTP: ...
Name: sync
Version: x
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -642,6 +742,7 @@ FTP: ...
Name: tee
Version: 1.1 (23 Nov 93)
Shell: GNO/ME
Author: Devin Reade
Contact: gdr@myrias.ab.ca
Where: /bin
@ -652,6 +753,7 @@ in one or more text files.
Name: timelimit
Version: 1.1 (16 Dec 93)
Shell: GNO/ME
Author: Ported by Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/bin
@ -662,6 +764,7 @@ specified process a series of SIGINTs.
Name: tn
Version: 1.1 (11 Oct 94)
Shell: GNO/ME
Author: Dave J. Roberts. Version 1.1 changes by Devin Reade.
Contact: daver@rush.cc.edu, droberts@chaos.bsu.edu
Where: /usr/local/bin
@ -671,16 +774,18 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
Name: udl
Version: 1.14
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens, Devin Reade
Contact: sbehrens@contech.demon.co.uk, gdr@myrias.ab.ca
Where: /usr/local/bin
FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils/
Converts text between the CR, LF and CR/LF forms. Also available for Unix
machines, reasonably fast yet secure.
Name: uname
Version: 2.0.2
Shell: GNO/ME
Author: Ian Schmidt
Contact: irsman@drift.winternet.com
Where: /bin/
@ -691,34 +796,27 @@ other information such as your hostname if you are running the MU package.
Name: unarj
Version: 2.42
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: schaf@meadow.muc.de
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ...
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils/
Unpacks files that were packed with ARJ 2.41 or earlier.
Name: unpp
Version: 1.1
Shell: ORCA/Shell, GNO/ME
Author: Soenke Behrens
Contact: schaf@meadow.muc.de
Contact: sbehrens@contech.demon.co.uk
Where: /usr/local/bin
FTP: ...
FTP: ftp://ftp.cco.caltech.edu/pub/apple2/shellutils/
Uncompresses PowerPacker(tm) documents, which are created by them Amigoids.
Name: uptime
Version: 1.0
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/bin
FTP: ...
Reports the time, amount of time the system has been up, number of
users, and system load averages for the last 1, 5, and 15 minutes.
Name: uptimed
Version: 1.0
Shell: GNO/ME
Author: Robert Hill
Contact: rhill@eecs.ukans.edu
Where: /usr/sbin
@ -727,8 +825,20 @@ FTP: ...
Keeps track of system load averages for the uptime utility over the last
1, 5 and 15 minutes.
Name: uptime
Version: 1.0
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: /usr/bin
FTP: ...
Reports the time, amount of time the system has been up, number of
users, and system load averages for the last 1, 5, and 15 minutes.
Name: whereis
Version: v1.1 (2 Jan 93)
Shell: GNO/ME
Author: v1.1 update by Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/bin
@ -739,6 +849,7 @@ reports the location of source, executables, and man pages.
Name: wrap
Version: 1.1
Shell: GNO/ME
Author: Phillip Vandry
Contact: vandry@CAM.ORG
Where: /usr/bin
@ -749,6 +860,7 @@ data and is very fast.
Name: write
Version: 2.1
Shell: GNO/ME
Author: Leslie M. Barstow III
Contact: wdphoenix@delphi.com
Where: /usr/bin
@ -761,6 +873,7 @@ you enter a blank line.
Name: xargs
Version: 0.9 (3 Mar 95)
Shell: GNO/ME
Author: Jeremy Rand.
Contact: <u8902848@muss.mcmaster.ca>
Where: /usr/local/bin
@ -770,6 +883,7 @@ Pass parameters to a command through standard input.
Name: xbiff
Version: 1.0
Shell: GNO/ME
Author: James Brookes
Contact: jamesb@ecst.csuchico.edu
Where: */system/desk.accs/
@ -781,6 +895,7 @@ content region causes a title bar to appear, allowing the window to be moved.
Name: xclock
Version: 1.12
Shell: GNO/ME
Author: Dave J. Roberts
Contact: dave@mary.iia.org
Where: /usr/X/bin
@ -790,6 +905,7 @@ graphical analog time display unit
Name: xlogin
Version: 2.21
Shell: GNO/ME
Author: Dave J. Roberts
Contact: dave@mary.iia.org
Where: /usr/X/bin
@ -798,6 +914,7 @@ FTP: ftp.cco.caltech.edu, grind.isca.uiowa.edu
Name: zsh
Version: 2.0
Shell: GNO/ME
Author: Leslie M. Barstow III
Contact: wdphoenix@delphi.com
Where: /bin

View File

@ -1,4 +1,4 @@
.TH DESCU 8 "System Administration" "7 May 1995" "Version 1.0"
.TH DESCU 8 "System Administration" "7 May 1995" "Version 1.0.2"
.SH NAME
descu \- the describe(1) source updater
.SH SYNOPSIS
@ -31,13 +31,14 @@ field. If an entry in
is already in
.IR sourcefile ,
it replaces the original; otherwise the entry is appended. In both
cases, the output is sorted lexicographically, based on the
cases, the output is sorted lexicographically (ignoring case), based on
the
.BR Name:
field.
.LP
.BR descu
will create the file
.B describe.rej
.B descu.rej
in the current directory. This contains all records that were removed
from
.IR sourcefile .

View File

@ -10,7 +10,7 @@
* Copyright 1995 by Devin Reade for James Brookes' describe(1) utility.
* See the included README file and man page for details.
*
* $Id: descu.c,v 1.1 1996/01/22 01:38:05 gdr Exp $
* $Id: descu.c,v 1.2 1996/01/22 02:40:49 gdr Exp $
*/
#pragma optimize -1
@ -28,7 +28,7 @@
#include <getopt.h>
#include "desc.h"
#define _VERSION_ "v1.0.1"
#define _VERSION_ "v1.0.2"
#define MAX_BUFFER 65534
#define SLOTS_QUANTUM 20
#define REJECT_FILE "descu.rej"
@ -38,6 +38,7 @@ ssize_t read(int, void *, size_t);
#endif
char *strerror(int);
void convert (char *);
int my_stricmp (const char *cs, const char *ct);
char *versionStr = _VERSION_;
static char *header=NULL; /* comments before the first describe entry */
@ -251,7 +252,7 @@ void insert(char *buffer, int initial_buffer) {
/*
* sortArray - do a heapsort on <array> consisting of <slotsUsed> elements.
* The sort is based on the field array[i]->name, sorted
* lexicographically.
* lexicographically ignoring case.
*/
void sortArray(descEntry **array, int slotsUsed) {
@ -286,8 +287,8 @@ void sortArray(descEntry **array, int slotsUsed) {
i = l; /* set up to sift down element rra to its proper place */
j = l << 1;
while (j<=ir) {
if (j<ir && (strcmp(array[j]->name,array[j+1]->name)<0)) ++j;
if (strcmp(rra->name,array[j]->name)<0) { /* demote rra */
if (j<ir && (my_stricmp(array[j]->name,array[j+1]->name)<0)) ++j;
if (my_stricmp(rra->name,array[j]->name)<0) { /* demote rra */
array[i] = array[j];
i = j;
j += i;
@ -297,6 +298,27 @@ void sortArray(descEntry **array, int slotsUsed) {
}
}
/*
* int my_stricmp (const char *cs, const char *ct);
*
* Compare the two strings cs and ct case-insensitive. Return
* <0 if cs<ct, 0 if cs == ct, >0 if cs>ct.
*
*/
int my_stricmp (const char *cs, const char *ct)
{
char a, b;
while ((a = tolower(*cs)) && (b = tolower(*ct))) {
if (a < b) return -1;
if (a > b) return 1;
cs++; ct++;
}
if (*cs == *ct) return 0;
else if (*cs) return -1;
else return 1;
}
/*
* ns_strcmp (no-space string compare) -- compare two strings, ignoring

View File

@ -0,0 +1,10 @@
Name: descu
Version: 1.0.2
Shell: ORCA/Shell, GNO/ME
Author: Devin Reade
Contact: gdr@myrias.ab.ca
Where: /usr/sbin
FTP: ftp.cco.caltech.edu
Update a 'describe' source file.

View File

@ -15,17 +15,20 @@ INSTALL = /bin/cp
build: describe descc descu
descc: descc.o basename.o
descc: descc.o basename.o descc.r
@purge
$(CC) $(LDFLAGS) $< -o $@ $(LDLIBS)
copyfork descc.r descc
describe: describe.o basename.o
describe: describe.o basename.o describe.r
@purge
$(CC) $(LDFLAGS) $< -o $@ $(LDLIBS)
copyfork describe.r describe
descu: descu.o basename.o
descu: descu.o basename.o descu.r
@purge
$(CC) $(LDFLAGS) $< -o $@ $(LDLIBS)
copyfork descu.r descu
basename.o: basename.c
$(CC) -c $(CFLAGS) basename.c